[English](/README_EN.md) | [中文](/README_CN.md) | [فارسی](/README_IR.md) | [Türkmençe](/README_TK.md)

3dp-manager preview

![Version](https://img.shields.io/badge/version-2.2.0-blue.svg) ![Downloads](https://img.shields.io/badge/downloads-5.6k-blue) [![License](https://img.shields.io/badge/license-GPL%20V3-blue.svg?longCache=true)](https://www.gnu.org/licenses/gpl-3.0) [![Telegram](https://img.shields.io/badge/Telegram-26A5E4?style=flat&logo=telegram&logoColor=white)](https://t.me/denpiligrim_web) [![YouTube Channel Subscribers](https://img.shields.io/youtube/channel/subscribers/UCOv2tFFYDY4mXOM60PVz8zw)](https://www.youtube.com/@denpiligrim) # 3DP-MANAGER Утилита для автогенерации инбаундов к панели [3x-ui](https://github.com/MHSanaei/3x-ui), формирования единых подписок, управления несколькими 3x-ui нодами и настройки relay-перенаправления трафика с промежуточных серверов на основные. Начиная с версии 2.0.0 проект имеет графический интерфейс и простые пользовательские настройки. **Поддержать проект** - Банковским переводом: - :credit_card: Карта МИР: [finance.ozon.ru](https://finance.ozon.ru/apps/sbp/ozonbankpay/019e46e5-c08d-734a-a056-6b340969760d) - :credit_card: Карта MasterCard: `5395452209474530` - На электронный кошелек: - :moneybag: ЮМоney: `4100116897060652` - :moneybag: PayPal: `vasiljevdenisx@gmail.com` - Криптовалютой: - :coin: USDT | ETH (ERC20 | BEP20): `0x6fe140040f6Cdc1E1Ff2136cd1d60C0165809463` - :coin: USDT | TRX (TRC20): `TEWxXmJxvkAmhshp7E61XJGHB3VyM9hNAb` - :coin: Bitcoin: `bc1qctntwncsv2yn02x2vgnkrqm00c4h04c0afkgpl` - :coin: TON: `UQCZ3MiwyYHXftPItMMzJRYRiKHugr16jFMq2nfOQOOoemLy` - :coin: Bybit ID: `165292278` ## Описание Главная цель утилиты — сделать так, чтобы ваш трафик не выглядел одинаковым. 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-ui` v2.9.4 (и выше) - Root-доступ на сервере - Docker и Docker Compose; если их нет, установочный скрипт попробует установить их автоматически - Домен + SSL сертификат (опционально) --- ## Установка У вас должна быть установлена панель управления `3x-ui`, которую можно поставить командой: `bash <(curl -Ls https://raw.githubusercontent.com/mhsanaei/3x-ui/master/install.sh)` Установите проект на сервер командой: ```bash 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 bash <(curl -fsSL https://raw.githubusercontent.com/denpiligrim/3dp-manager/main/update.sh) ``` Краткое описание: подтягивает последние изменения, применяет совместимые исправления конфигурации, обновляет контейнеры и перезапускает сервис. ## Удаление Полное удаление сервиса: ```bash bash <(curl -fsSL https://raw.githubusercontent.com/denpiligrim/3dp-manager/main/delete.sh) ``` Краткое описание: удаляет контейнеры и файлы конфигурации, возвращая систему к состоянию до установки. --- ## Первый вход и доступы Логин и пароль администратора выводятся в конце установки. Если нужно посмотреть их повторно: ```bash 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 основной ноды: ```bash sudo ORIGIN_IP="IP_ADDRESS" bash -c "$(curl -sSL https://raw.githubusercontent.com/denpiligrim/3dp-manager/main/forwarding_install.sh)" ``` Краткое описание: добавляет правила перенаправления. ## Удаление перенаправления ```bash bash <(curl -fsSL https://raw.githubusercontent.com/denpiligrim/3dp-manager/main/forwarding_delete.sh) ``` Краткое описание: удаляет правила перенаправления. После удаления, чтобы изменения вступили в силу, перезапустите фаервол `ufw reload` и перезапустите систему `reboot` --- ## Сбор доменов из мульти-подписок Утилита извлекает домены из подписок и формирует `whitelist` для генератора. ```bash node get_domains.js ``` Краткое описание: добавьте ссылку на мульти-подписку в скрипт и запустите команду — на выходе получите список доменов. Необходим `Node.js` для работы скрипта. --- ## Замечания и текущие ограничения - Общий список доменов работает не у всех провайдеров, поэтому рекомендуется составить и использовать свой whitelist. --- ## Внести вклад Буду рад любому вкладу в разработку проекта! Простой процесс для контрибьюторов: 1. Форкните репозиторий на GitHub. 2. Создайте ветку с осмысленным именем, например `feature/add-README` или `fix/whitelist-load`. 3. Внесите изменения и добавьте короткое описание в коммите. 4. Запустите локально базовые проверки (если есть). 5. Отправьте ветку в ваш форк и создайте Pull Request в основной репозиторий. Советы: описывайте изменения в PR, указывайте цель и тестовые шаги. Если изменения большие — разделяйте на маленькие коммиты. --- ## Обсуждение - Телеграм: [@denpiligrim_web](https://t.me/denpiligrim_web) - Раздел Issues в данном репозитории