English | 中文 | فارسی | Türkmençe

3DP-MANAGER
Утилита для автогенерации инбаундов к панели 3x-ui, формирования единых подписок, управления несколькими 3x-ui нодами и настройки relay-перенаправления трафика с промежуточных серверов на основные. Начиная с версии 2.0.0 проект имеет графический интерфейс и простые пользовательские настройки.
Поддержать проект
- Банковским переводом:
- :credit_card: Карта МИР: finance.ozon.ru
- :credit_card: Карта MasterCard:
5395452209474530
- На электронный кошелек:
- :moneybag: ЮМоney:
4100116897060652 - :moneybag: PayPal:
[email protected]
- :moneybag: ЮМоney:
- Криптовалютой:
- :coin: USDT | ETH (ERC20 | BEP20):
0x6fe140040f6Cdc1E1Ff2136cd1d60C0165809463 - :coin: USDT | TRX (TRC20):
TEWxXmJxvkAmhshp7E61XJGHB3VyM9hNAb - :coin: Bitcoin:
bc1qctntwncsv2yn02x2vgnkrqm00c4h04c0afkgpl - :coin: TON:
UQCZ3MiwyYHXftPItMMzJRYRiKHugr16jFMq2nfOQOOoemLy - :coin: Bybit ID:
165292278
- :coin: USDT | ETH (ERC20 | BEP20):
Описание
Главная цель утилиты — сделать так, чтобы ваш трафик не выглядел одинаковым. 3DP-MANAGER генерирует по заданному интервалу набор подключений с разными параметрами:
- протоколы:
vless,vmess,shadowsocks,hysteria2,trojan; - порты:
443,8443(фиксированные) и случайные из диапазона10000-60000; - транспорт:
tcp,websocket,grpc,xhttp; - SNI берутся из белого списка доменов (whitelist) или задаются вручную;
- нода, relay-сервер, порт и флаг могут настраиваться отдельно для каждого инбаунда.
Все подключения объединяются в одну подписку со статичным URL. 3DP-MANAGER работает с панелью 3x-ui и не вмешивается в её работу напрямую, используя открытое API панели.
Вторичная цель — стабильность подключения: клиент получает несколько вариантов подключений и может выбрать любой из них. В одну подписку можно добавлять инбаунды с разных нод, использовать relay-серверы и добавлять собственные внешние ссылки как кастомные подключения.
Дополнительно: 3DP-MANAGER можно использовать в каскадной схеме. Сервис перенаправления автоматически настроит переадресацию подписки и трафика к выбранной ноде.
Рекомендации:
- Используйте HTTPS для подписки (домен + SSL сертификат).
- Интервал генерации задавайте ≥ 10 минут; для стабильности рекомендуется — раз в сутки (1440 минут).
- В клиенте установите автообновление чаще (например, каждый час), чтобы была синхронизация с сервером.
Возможности
- Генерация разнообразных подключений для одной или нескольких подписок
- Формирование единой подписки со статичным URL
- Управление несколькими нодами
3x-ui - Авторизация нод по логину/паролю или токену
- Автоопределение IP, страны и флага ноды по URL панели
- Выбор ноды, relay-сервера, флага, SNI и порта для каждого инбаунда
- Поддержка фиксированного порта или значения
random - Кастомные подключения: можно добавить готовую внешнюю ссылку в подписку
- Отдельные пути к
fullchain.pemиprivkey.pemдля Hysteria2 UDP - Поддержка кастомного
whitelistдоменов - Автоматическая настройка relay-перенаправления трафика (опционально)
- Установка Web UI через HTTP или HTTPS: Let's Encrypt, self-signed или свои сертификаты
Требования
- Ubuntu 20.04 (и выше), Debian 12.11 (и выше)
- Панель
3x-uiv2.9.4 (и выше) - Root-доступ на сервере
- Docker и Docker Compose; если их нет, установочный скрипт попробует установить их автоматически
- Домен + SSL сертификат (опционально)
Установка
У вас должна быть установлена панель управления 3x-ui, которую можно поставить командой: bash <(curl -Ls https://raw.githubusercontent.com/mhsanaei/3x-ui/master/install.sh)
Установите проект на сервер командой:
bash <(curl -fsSL https://raw.githubusercontent.com/denpiligrim/3dp-manager/main/install.sh)
Во время установки скрипт:
- проверит ОС, root-доступ, Docker и Docker Compose;
- при нехватке RAM создаст swap-файл 2 GB, если swap отсутствует;
- предложит выбрать режим доступа к Web UI:
- HTTPS через Let's Encrypt;
- HTTPS с self-signed сертификатом;
- HTTPS со своими сертификатами;
- HTTP без шифрования;
- сгенерирует случайный порт Web UI;
- сгенерирует логин и пароль администратора;
- развернёт контейнеры
postgres,backendиfrontend.
После завершения установки в терминале будут показаны URL, логин и пароль. Сразу смените пароль в настройках 3DP-MANAGER.
Краткое описание: запускает интерактивный скрипт установки, подготавливает окружение и разворачивает контейнеры проекта.
Обновление
Обновление до последней версии:
bash <(curl -fsSL https://raw.githubusercontent.com/denpiligrim/3dp-manager/main/update.sh)
Краткое описание: подтягивает последние изменения, применяет совместимые исправления конфигурации, обновляет контейнеры и перезапускает сервис.
Удаление
Полное удаление сервиса:
bash <(curl -fsSL https://raw.githubusercontent.com/denpiligrim/3dp-manager/main/delete.sh)
Краткое описание: удаляет контейнеры и файлы конфигурации, возвращая систему к состоянию до установки.
Первый вход и доступы
Логин и пароль администратора выводятся в конце установки. Если нужно посмотреть их повторно:
grep -E "ADMIN_LOGIN|ADMIN_PASSWORD" /opt/3dp-manager/docker-compose.yml | sed 's/^[ \t]*//; s/^- //'
Web UI доступен по адресу, который показал установщик, например:
https://example.com:PORTдля HTTPS;http://SERVER_IP:PORTдля HTTP.
Если включён ufw, установщик открывает рабочие диапазоны портов для инбаундов: 443, 8443 и 10000-60000 для TCP/UDP.
Ноды
Раздел Ноды позволяет подключить одну или несколько панелей 3x-ui.
Для каждой ноды указываются:
- название;
- URL панели
3x-ui; - IP ноды;
- флаг/страна;
- тип авторизации:
passwordилиtoken; - признак основной ноды.
После ввода URL приложение пытается определить IP и страну ноды автоматически. Флаг используется в названиях подключений внутри подписки, чтобы в клиенте было проще отличать серверы.
[!NOTE] Основная нода используется как значение по умолчанию для подписок, инбаундов и relay-серверов.
Подписки
Раздел Подписки управляет статичными URL подписок и составом инбаундов.
Для каждого инбаунда можно настроить:
- тип подключения;
- ноду;
- relay-сервер;
- флаг;
- порт: конкретное число
1-65535илиrandom; - SNI: конкретный домен или
random; - готовую внешнюю ссылку для типа
custom.
Для hysteria2-udp можно указать отдельные пути к сертификату и ключу:
certificateFile, например/root/cert/example.com/fullchain.pem;keyFile, например/root/cert/example.com/privkey.pem.
Если порт или SNI указаны как random, значение будет выбрано при ротации из доступного диапазона или whitelist доменов.
Установка сервиса перенаправления (forwarding)
[!WARNING]
Сервис перенаправления работает на промежуточном сервере
Сервис перенаправления позволяет проксировать входящие порты с промежуточного сервера на выбранную ноду. В Web UI такие серверы настраиваются в разделе Relay серверы и могут быть привязаны к конкретной ноде.
Relay-сервер можно добавить по IP или домену. Если указан домен, backend попытается определить IP автоматически.
Для ручной установки forwarding на промежуточном сервере замените IP_ADDRESS на IP основной ноды:
sudo ORIGIN_IP="IP_ADDRESS" bash -c "$(curl -sSL https://raw.githubusercontent.com/denpiligrim/3dp-manager/main/forwarding_install.sh)"
Краткое описание: добавляет правила перенаправления.
Удаление перенаправления
bash <(curl -fsSL https://raw.githubusercontent.com/denpiligrim/3dp-manager/main/forwarding_delete.sh)
Краткое описание: удаляет правила перенаправления. После удаления, чтобы изменения вступили в силу, перезапустите фаервол ufw reload и перезапустите систему reboot
Сбор доменов из мульти-подписок
Утилита извлекает домены из подписок и формирует whitelist для генератора.
node get_domains.js
Краткое описание: добавьте ссылку на мульти-подписку в скрипт и запустите команду — на выходе получите список доменов. Необходим Node.js для работы скрипта.
Замечания и текущие ограничения
- Общий список доменов работает не у всех провайдеров, поэтому рекомендуется составить и использовать свой whitelist.
Внести вклад
Буду рад любому вкладу в разработку проекта! Простой процесс для контрибьюторов:
- Форкните репозиторий на GitHub.
- Создайте ветку с осмысленным именем, например
feature/add-READMEилиfix/whitelist-load. - Внесите изменения и добавьте короткое описание в коммите.
- Запустите локально базовые проверки (если есть).
- Отправьте ветку в ваш форк и создайте Pull Request в основной репозиторий.
Советы: описывайте изменения в PR, указывайте цель и тестовые шаги. Если изменения большие — разделяйте на маленькие коммиты.
Обсуждение
- Телеграм: @denpiligrim_web
- Раздел Issues в данном репозитории