零基础入门:使用 Docker 打造专属的 Sub-Converter 订阅转换服务

### **零基础入门:使用 Docker 打造专属的 Sub-Converter 订阅转换服务** 您是否厌倦了公共订阅转换服务的不稳定或速度慢?本教程将手把手教您如何利用 Docker 技术,在自己的 VPS 服务器上轻松部署 Sub-Converter 后端和美观的前端 Web 界面,实现秒级转换,安全又私密。 #### **最终效果** * 一个通过 `IP:端口` 或 `域名` 访问的专属订阅转换网站。 * 一个强大的 Sub-Converter 后端服务,负责处理转换逻辑。 * 一个 Nginx Proxy Manager(NPM)面板,用于管理反向代理和一键申请 SSL 证书。 *** #### **第一步:准备工作 (Prerequisites)** 在开始之前,请确保您已具备以下条件: 1. **一台云服务器 (VPS)**:建议选择主流的 Linux 发行版,如 Ubuntu 20.04 / 22.04 或 Debian 11。这能确保教程中的命令有最好的兼容性。 2. **SSH 连接工具**:用于连接并管理您的服务器。 * **Windows 用户**:推荐使用 FinalShell [https://www.hostbuf.com/t/988.html](https://), MobaXterm [点击下载](https://mobaxterm.mobatek.net/) 或 Windows Terminal。 * **macOS 用户**:可以直接使用系统自带的“终端 (Terminal)”。 3. **(可选) 一个域名**:如果您希望通过 `sub.yourdomain.com` 这样的域名来访问服务,而不是用 `IP地址:端口` 的方式,那么您需要注册一个域名,并将其 DNS 解析托管到 Cloudflare [点击下载](https://www.cloudflare.com/)。这一步是可选的,但强烈推荐,因为它能让后续的 HTTPS 配置变得异常简单。 *** #### **第二步:配置服务器防火墙** 为了保证服务能被外界访问,我们需要在服务器的防火墙上“打开”相应的端口。这是一个良好的安全习惯,只开放必要的端口,而不是直接关闭防火墙。 以下命令以 Ubuntu/Debian 系统常用的 `ufw` 防火墙为例。登录您的服务器后,依次执行以下命令: ```bash # 允许 SSH 默认端口,防止断开连接 sudo ufw allow 22 # 允许 Nginx Proxy Manager 所需的端口 sudo ufw allow 80/tcp sudo ufw allow 443/tcp sudo ufw allow 81/tcp # 允许 Sub-Converter 后端服务端口 sudo ufw allow 25500/tcp # 允许 Sub-Converter 前端网页端口 sudo ufw allow 58080/tcp # 启用防火墙 sudo ufw enable ``` **命令解释:** * `ufw allow <端口号>/<协议>`:放行指定端口,`tcp` 是我们需要的协议。 * `ufw enable`: 启用防火墙规则。当提示 `Command may disrupt existing ssh connections` 时,输入 `y` 并回车即可。 *** #### **第三步:一键安装 Docker 和 Nginx Proxy Manager (NPM)** 为了简化部署,我们使用一个集成了 Docker、Docker-Compose 和 NPM 安装的自动化脚本。 1. **解释**: * **Docker**:一个容器化平台,可以将我们的服务(如 Sub-Converter)打包成一个独立的“集装箱”,让它在任何地方都能以相同的方式运行。 * **Nginx Proxy Manager (NPM)**:一个带有图形化界面的反向代理工具。它可以帮助我们轻松地将域名指向服务器上运行的服务,并能一键申请免费的 SSL 证书,让您的网站实现 `https://` 加密访问。 2. **执行安装命令**: 将下面这行完整的命令复制到您的 SSH 终端中,然后按回车执行。 ```bash sudo apt-get update && sudo apt-get install git -y && git clone https://github.com/slobys/npm.git && cd npm && chmod +x npm.sh && ./npm.sh ``` 这个命令会做以下几件事: * `apt-get update`: 更新系统软件包列表。 * `apt-get install git -y`: 安装 `git` 工具,用于下载脚本。 * `git clone ...`: 从 Github 下载预设好的 NPM 安装脚本。 * `cd npm`: 进入脚本目录。 * `chmod +x npm.sh`: 赋予脚本执行权限。 * `./npm.sh`: 运行安装脚本。 安装过程需要几分钟,请耐心等待。脚本会自动处理所有依赖项。 *** #### **第四步:部署 Sub-Converter 后端** 后端是执行订阅转换的核心程序。我们使用 Docker 来运行它。 复制并执行以下命令: ```bash docker run -d --restart=always --name subconverter -p 25500:25500 tindy2013/subconverter:latest ``` **命令解释:** * `docker run`: 运行一个 Docker 容器。 * `-d`: 让容器在后台(Detached)运行。 * `--restart=always`: 设置容器总是在退出或服务器重启后自动启动,确保服务高可用。 * `--name subconverter`: 为这个容器起一个好记的名字,方便日后管理。 * `-p 25500:25500`: 将服务器的 `25500` 端口映射到容器内部的 `25500` 端口。 * `tindy2013/subconverter:latest`: 指定要使用的 Docker 镜像,这是 Sub-Converter 的官方镜像。 *** #### **第五步:部署 Sub-Converter 前端网页 (Sub-Web)** 现在,我们来部署一个漂亮的前端界面,这样就不需要手动拼接复杂的 URL 了。 复制并执行以下命令: ```bash docker run -d --restart=always --name subweb -p 58080:80 careywong/subweb:latest ``` **命令解释:** * `--name subweb`: 为前端容器命名为 `subweb`。 * `-p 58080:80`: 将服务器的 `58080` 端口映射到容器内部的 `80` 端口。 * **注意**:您可以将 `58080` 修改为您喜欢的任何未被占用的端口,例如 `8080`。如果修改,请确保在第二步的防火墙规则中也允许了您修改后的端口。 * `careywong/subweb:latest`: 这是目前最受欢迎的 Sub-Converter 前端之一 `sub-web` 的 Docker 镜像。 *** #### **第六步:访问和配置** 恭喜您,至此所有服务都已成功部署!现在可以通过以下地址访问它们: * **Nginx Proxy Manager 管理面板**: `http://<你的服务器IP>:81` * **Sub-Web 前端页面**: `http://<你的服务器IP>:58080` **首次配置 Sub-Web:** 1. 打开浏览器,访问 `http://<你的服务器IP>:58080`。 2. 点击页面右上角的 **设置**(齿轮图标)。 3. 在 **后端地址** 一栏中,填入您 Sub-Converter 后端的地址:`http://<你的服务器IP>:25500`。 4. 点击保存,页面会自动刷新。现在,您的前端已经成功连接到了后端,可以开始使用了! #### **(进阶) 第七步:配置域名和 SSL 加密** 如果您拥有一个域名,可以通过 NPM 轻松实现 `https://sub.yourdomain.com` 访问,并自动隐藏端口号。 1. **域名解析**:前往您的域名服务商(如 Cloudflare),添加一条 `A` 记录,将您的子域名(如 `sub`)解析到您的服务器 IP 地址。 2. **登录 NPM**:访问 `http://<你的服务器IP>:81`。 * 默认管理员邮箱: `admin@example.com` * 默认密码: `changeme` * 首次登录会强制要求您修改邮箱和密码,请务必修改并妥善保管。 3. **添加代理主机**: * 点击 `Hosts` -> `Proxy Hosts` -> `Add Proxy Host`。 * 在 **Details** 标签页: * **Domain Names**: 输入您的域名,如 `sub.yourdomain.com`。 * **Scheme**: `http` * **Forward Hostname / IP**: 输入 `127.0.0.1` (代表服务器本机)。 * **Forward Port**: 输入 `58080` (或者您在第五步中设置的前端端口)。 * 勾选 `Block Common Exploits`。 * 切换到 **SSL** 标签页: * **SSL Certificate**: 选择 `Request a new SSL Certificate`。 * 勾选 `Force SSL` 和 `HTTP/2 Support`。 * **Email Address for Let's Encrypt**: 输入您的真实邮箱。 * 勾选 `I Agree to the Let's Encrypt Terms of Service`。 * 点击 **Save**。 NPM 会自动为您申请 SSL 证书并配置反向代理。等待几十秒后,您就可以通过 `https://sub.yourdomain.com` 来访问您的专属订阅转换服务了!

发表评论

0 评论