Files
3dp-manager/README.md
T
Den Piligrim 26f3bb2934 v2.2.0
2026-05-21 22:58:29 +03:00

245 lines
14 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
[English](/README_EN.md) | [中文](/README_CN.md) | [فارسی](/README_IR.md) | [Türkmençe](/README_TK.md)
<p><img src="https://denpiligrim.ru/storage/images/3dp-manager.png" alt="3dp-manager preview"></p>
![Version](https://img.shields.io/badge/version-2.2.0-blue.svg) ![Downloads](https://img.shields.io/badge/downloads-5.1k-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: Карта МИР: `2204320436318077`
- :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.
<sup>Краткое описание: запускает интерактивный скрипт установки, подготавливает окружение и разворачивает контейнеры проекта.</sup>
## Обновление
Обновление до последней версии:
```bash
bash <(curl -fsSL https://raw.githubusercontent.com/denpiligrim/3dp-manager/main/update.sh)
```
<sup>Краткое описание: подтягивает последние изменения, применяет совместимые исправления конфигурации, обновляет контейнеры и перезапускает сервис.</sup>
## Удаление
Полное удаление сервиса:
```bash
bash <(curl -fsSL https://raw.githubusercontent.com/denpiligrim/3dp-manager/main/delete.sh)
```
<sup>Краткое описание: удаляет контейнеры и файлы конфигурации, возвращая систему к состоянию до установки.</sup>
---
## Первый вход и доступы
Логин и пароль администратора выводятся в конце установки. Если нужно посмотреть их повторно:
```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)"
```
<sup>Краткое описание: добавляет правила перенаправления.</sup>
## Удаление перенаправления
```bash
bash <(curl -fsSL https://raw.githubusercontent.com/denpiligrim/3dp-manager/main/forwarding_delete.sh)
```
<sup>Краткое описание: удаляет правила перенаправления. После удаления, чтобы изменения вступили в силу, перезапустите фаервол `ufw reload` и перезапустите систему `reboot`</sup>
---
## Сбор доменов из мульти-подписок
Утилита извлекает домены из подписок и формирует `whitelist` для генератора.
```bash
node get_domains.js
```
<sup>Краткое описание: добавьте ссылку на мульти-подписку в скрипт и запустите команду — на выходе получите список доменов. Необходим `Node.js` для работы скрипта.</sup>
---
## Замечания и текущие ограничения
- Общий список доменов работает не у всех провайдеров, поэтому рекомендуется составить и использовать свой whitelist.
---
## Внести вклад
Буду рад любому вкладу в разработку проекта! Простой процесс для контрибьюторов:
1. Форкните репозиторий на GitHub.
2. Создайте ветку с осмысленным именем, например `feature/add-README` или `fix/whitelist-load`.
3. Внесите изменения и добавьте короткое описание в коммите.
4. Запустите локально базовые проверки (если есть).
5. Отправьте ветку в ваш форк и создайте Pull Request в основной репозиторий.
<sup>Советы: описывайте изменения в PR, указывайте цель и тестовые шаги. Если изменения большие — разделяйте на маленькие коммиты.</sup>
---
## Обсуждение
- Телеграм: [@denpiligrim_web](https://t.me/denpiligrim_web)
- Раздел Issues в данном репозитории