few fixes

This commit is contained in:
Den Piligrim
2025-12-27 18:16:04 +03:00
parent fa3e984189
commit 88cc96a75d
5 changed files with 37 additions and 23 deletions
+3 -3
View File
@@ -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
View File
@@ -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
+7 -7
View File
@@ -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
View File
@@ -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
#################################
+1 -1
View File
@@ -19,7 +19,7 @@ need_root() {
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