few fixes
This commit is contained in:
@@ -34,7 +34,7 @@
|
||||
|
||||
Все подключения объединяются в одну подписку со статичным URL. Бот работает с панелью `3x-ui` и не вмешивается в её работу напрямую, используя открытое API панели.
|
||||
|
||||
Вторичная цель — стабильность подключения: клиент получает 10 вариантов поключений и может выбрать любое из них.
|
||||
Вторичная цель — стабильность подключения: клиент получает 10 вариантов подключений и может выбрать любое из них.
|
||||
|
||||
Дополнительно: бот можно использовать в каскадной схеме. Сервис перенаправления автоматически настроит переадресацию подписки и трафика к основному серверу.
|
||||
|
||||
@@ -130,7 +130,7 @@ cd /opt/3dp-manager && docker compose exec node env | grep SUB_URL | cut -d'=' -
|
||||
node get_domains.js
|
||||
```
|
||||
|
||||
<small>Краткое описание: добавьте ссылку на мульти-подписку в скрипт и запустите команду — на выходе получите список доменов. Неободим `Node.js` для работы скрипта.</small>
|
||||
<small>Краткое описание: добавьте ссылку на мульти-подписку в скрипт и запустите команду — на выходе получите список доменов. Необходим `Node.js` для работы скрипта.</small>
|
||||
|
||||
## Использование собственного белого списка
|
||||
|
||||
@@ -141,7 +141,7 @@ node get_domains.js
|
||||
cd /opt/3dp-manager && docker cp ./app/my_whitelist.txt node:/app/my_whitelist.txt
|
||||
```
|
||||
|
||||
<small>Краткое описание: добавляет ваш файл доменов в контейнер приложения. Чтобы сразу же сгенерировать инбаунды с новыи списком, выполните `docker exec -it node sh` и затем `node index.js`.</small>
|
||||
<small>Краткое описание: добавляет ваш файл доменов в контейнер приложения. Чтобы сразу же сгенерировать инбаунды с новым списком, выполните `docker exec -it node sh` и затем `node index.js`.</small>
|
||||
|
||||
---
|
||||
|
||||
|
||||
+5
-3
@@ -76,7 +76,10 @@ async function getFreePort(used) {
|
||||
while (true) {
|
||||
const p = Math.floor(Math.random() * (60000 - 10000)) + 10000;
|
||||
if (used.has(p)) continue;
|
||||
if (await isPortFree(p)) return p;
|
||||
if (await isPortFree(p)) {
|
||||
used.add(inbound.port);
|
||||
return p;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -187,8 +190,7 @@ async function rotate() {
|
||||
|
||||
for (const b of builders) {
|
||||
const domain = pickDomain(whitelist);
|
||||
const inbound = await b(domain);
|
||||
usedPorts.add(inbound.port);
|
||||
const inbound = await b(domain);
|
||||
const idOrPass = inbound.settings ? JSON.parse(inbound.settings).clients?.[0]?.id || JSON.parse(inbound.settings).clients?.[0]?.password : "";
|
||||
|
||||
// Build the link depending on the protocol
|
||||
|
||||
@@ -300,19 +300,19 @@ if command -v docker >/dev/null 2>&1; then
|
||||
else
|
||||
log "Docker не найден, будет установлен из официального репозитория"
|
||||
# Add Docker's official GPG key:
|
||||
sudo apt update
|
||||
sudo apt install ca-certificates curl
|
||||
sudo install -m 0755 -d /etc/apt/keyrings
|
||||
apt update
|
||||
apt install ca-certificates curl
|
||||
install -m 0755 -d /etc/apt/keyrings
|
||||
if [[ "$ID" == "ubuntu" ]]; then
|
||||
curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc || die "Ошибка добавления ключа Docker"
|
||||
else
|
||||
curl -fsSL https://download.docker.com/linux/debian/gpg -o /etc/apt/keyrings/docker.asc || die "Ошибка добавления ключа Docker"
|
||||
fi
|
||||
sudo chmod a+r /etc/apt/keyrings/docker.asc
|
||||
chmod a+r /etc/apt/keyrings/docker.asc
|
||||
|
||||
# Add the repository to Apt sources:
|
||||
CODENAME=${UBUNTU_CODENAME:-$VERSION_CODENAME}
|
||||
sudo tee /etc/apt/sources.list.d/docker.sources <<EOF
|
||||
tee /etc/apt/sources.list.d/docker.sources <<EOF
|
||||
Types: deb
|
||||
URIs: https://download.docker.com/linux/$ID
|
||||
Suites: $CODENAME
|
||||
@@ -320,9 +320,9 @@ Components: stable
|
||||
Signed-By: /etc/apt/keyrings/docker.asc
|
||||
EOF
|
||||
|
||||
sudo apt update
|
||||
apt update
|
||||
|
||||
sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
|
||||
apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
|
||||
systemctl enable docker
|
||||
systemctl start docker
|
||||
fi
|
||||
|
||||
+21
-9
@@ -88,7 +88,7 @@ echo
|
||||
# Check login
|
||||
if ! command -v curl >/dev/null 2>&1; then
|
||||
echo "❌ curl не установлен. Установите curl и повторите попытку"
|
||||
echo " sudo apt install -y curl"
|
||||
echo " apt install -y curl"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
@@ -156,7 +156,7 @@ IP_JSON=$(curl -s --fail http://ip-api.com/json/ || true)
|
||||
|
||||
if ! command -v jq >/dev/null 2>&1; then
|
||||
echo "❌ Не найден jq. Для работы скрипта необходимо установить jq."
|
||||
echo " sudo apt install -y jq"
|
||||
echo " apt install -y jq"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
@@ -197,19 +197,19 @@ if command -v docker >/dev/null 2>&1; then
|
||||
else
|
||||
log "Docker не найден, будет установлен из официального репозитория"
|
||||
# Add Docker's official GPG key:
|
||||
sudo apt update
|
||||
sudo apt install ca-certificates curl
|
||||
sudo install -m 0755 -d /etc/apt/keyrings
|
||||
apt update
|
||||
apt install ca-certificates curl
|
||||
install -m 0755 -d /etc/apt/keyrings
|
||||
if [[ "$ID" == "ubuntu" ]]; then
|
||||
curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc || die "Ошибка добавления ключа Docker"
|
||||
else
|
||||
curl -fsSL https://download.docker.com/linux/debian/gpg -o /etc/apt/keyrings/docker.asc || die "Ошибка добавления ключа Docker"
|
||||
fi
|
||||
sudo chmod a+r /etc/apt/keyrings/docker.asc
|
||||
chmod a+r /etc/apt/keyrings/docker.asc
|
||||
|
||||
# Add the repository to Apt sources:
|
||||
CODENAME=${UBUNTU_CODENAME:-$VERSION_CODENAME}
|
||||
sudo tee /etc/apt/sources.list.d/docker.sources <<EOF
|
||||
tee /etc/apt/sources.list.d/docker.sources <<EOF
|
||||
Types: deb
|
||||
URIs: https://download.docker.com/linux/$ID
|
||||
Suites: $CODENAME
|
||||
@@ -217,9 +217,9 @@ Components: stable
|
||||
Signed-By: /etc/apt/keyrings/docker.asc
|
||||
EOF
|
||||
|
||||
sudo apt update
|
||||
apt update
|
||||
|
||||
sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
|
||||
apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
|
||||
systemctl enable docker
|
||||
systemctl start docker
|
||||
fi
|
||||
@@ -382,6 +382,18 @@ http {
|
||||
EOF
|
||||
fi
|
||||
|
||||
# ufw
|
||||
if LC_ALL=C ufw status 2>/dev/null | grep -q "Status: active"; then
|
||||
echo "UFW найден и активен. Открываем порты..."
|
||||
ufw allow 443/tcp
|
||||
ufw allow 443/udp
|
||||
ufw allow 8443/tcp
|
||||
ufw allow 8443/udp
|
||||
ufw allow "$NGINX_PORT"/tcp
|
||||
ufw allow 10000:60000/tcp
|
||||
ufw allow 10000:60000/udp
|
||||
fi
|
||||
|
||||
#################################
|
||||
# RUN
|
||||
#################################
|
||||
|
||||
Reference in New Issue
Block a user