245 lines
8.7 KiB
Markdown
245 lines
8.7 KiB
Markdown
[Русский](/README.md) | [English](/README_EN.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>
|
||
|
||
  [](https://www.gnu.org/licenses/gpl-3.0) [](https://t.me/denpiligrim_web) [](https://www.youtube.com/@denpiligrim)
|
||
|
||
# 3DP-MANAGER
|
||
|
||
3DP-MANAGER 是一个用于为 [3x-ui](https://github.com/MHSanaei/3x-ui) 面板自动生成 inbound、创建统一订阅、管理多个 3x-ui 节点,并配置从中间服务器到源服务器的 relay 转发的工具。从 2.0.0 版本开始,项目提供图形界面和简单的用户设置。
|
||
|
||
**支持项目**
|
||
|
||
- 银行转账:
|
||
- :credit_card: MIR 卡:`2204320436318077`
|
||
- :credit_card: MasterCard:`5395452209474530`
|
||
- 电子钱包:
|
||
- :moneybag: YooMoney:`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 可从域名白名单中选择,也可以手动指定;
|
||
- 每个 inbound 都可以单独设置节点、relay 服务器、端口和旗帜。
|
||
|
||
所有连接会合并到一个具有静态 URL 的订阅中。3DP-MANAGER 通过 `3x-ui` 面板的公开 API 工作,不会直接干预面板内部。
|
||
|
||
次要目标是提高连接稳定性:客户端会收到多个连接选项,并可选择其中任意一个。一个订阅可以包含来自不同节点的 inbound、relay 服务器,以及作为自定义连接添加的外部链接。
|
||
|
||
此外,3DP-MANAGER 也可用于级联部署。转发服务会把订阅和流量转发配置到选定节点。
|
||
|
||
建议:
|
||
|
||
- 为订阅使用 HTTPS(域名 + SSL 证书)。
|
||
- 生成间隔设置为不少于 10 分钟;为了稳定性,建议每天一次(1440 分钟)。
|
||
- 在客户端设置更频繁的自动更新,例如每小时一次,以便与服务器保持同步。
|
||
|
||
## 功能
|
||
|
||
- 为一个或多个订阅生成多样化连接
|
||
- 创建具有静态 URL 的统一订阅
|
||
- 管理多个 `3x-ui` 节点
|
||
- 支持使用登录名/密码或 token 进行节点认证
|
||
- 根据面板 URL 自动检测节点 IP、国家和旗帜
|
||
- 可为每个 inbound 选择节点、relay 服务器、旗帜、SNI 和端口
|
||
- 支持固定端口或 `random`
|
||
- 支持自定义连接:可将现成的外部链接加入订阅
|
||
- 可为 Hysteria2 UDP 单独指定 `fullchain.pem` 和 `privkey.pem` 路径
|
||
- 支持自定义域名 `whitelist`
|
||
- 可选的自动 relay 转发配置
|
||
- Web UI 可通过 HTTP 或 HTTPS 安装:Let's Encrypt、自签名证书或自定义证书
|
||
|
||
## 要求
|
||
|
||
- Ubuntu 20.04 或更高版本,Debian 12.11 或更高版本
|
||
- `3x-ui` 面板 v2.8.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;
|
||
- 如果内存较低且没有 swap,则创建 2 GB 的 swap 文件;
|
||
- 询问 Web UI 访问模式:
|
||
- 通过 Let's Encrypt 使用 HTTPS;
|
||
- 使用自签名证书的 HTTPS;
|
||
- 使用自有证书的 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:`https://example.com:PORT`;
|
||
- HTTP:`http://SERVER_IP:PORT`。
|
||
|
||
如果启用了 `ufw`,安装脚本会开放 inbound 工作端口范围:TCP/UDP 的 `443`、`8443` 和 `10000-60000`。
|
||
|
||
---
|
||
|
||
## 节点
|
||
|
||
**节点** 页面用于连接一个或多个 `3x-ui` 面板。
|
||
|
||
每个节点需要设置:
|
||
|
||
- 名称;
|
||
- `3x-ui` 面板 URL;
|
||
- 节点 IP;
|
||
- 旗帜/国家;
|
||
- 认证类型:`password` 或 `token`;
|
||
- 是否为主节点。
|
||
|
||
输入 URL 后,应用会尝试自动检测节点 IP 和国家。旗帜会用于订阅中的连接名称,方便客户端区分服务器。
|
||
|
||
> [!NOTE]
|
||
> 主节点会作为订阅、inbound 和 relay 服务器的默认值。
|
||
|
||
---
|
||
|
||
## 订阅
|
||
|
||
**订阅** 页面用于管理静态订阅 URL 和 inbound 组成。
|
||
|
||
每个 inbound 可配置:
|
||
|
||
- 连接类型;
|
||
- 节点;
|
||
- 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`,轮换时会从可用端口范围或域名白名单中选择值。
|
||
|
||
---
|
||
|
||
## 安装转发服务
|
||
|
||
> [!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 上 fork 仓库。
|
||
2. 创建有意义的分支名,例如 `feature/add-README` 或 `fix/whitelist-load`。
|
||
3. 修改代码,并在 commit 中添加简短说明。
|
||
4. 如有本地检查,请运行它们。
|
||
5. 将分支推送到你的 fork,并向主仓库创建 Pull Request。
|
||
|
||
<sup>建议:在 PR 中说明更改、目标和测试步骤。如果更改较大,请拆分为较小的 commit。</sup>
|
||
|
||
---
|
||
|
||
## 讨论
|
||
|
||
- Telegram: [@denpiligrim_web](https://t.me/denpiligrim_web)
|
||
- 本仓库的 Issues 区
|