subconverter 搭建教程:用 Docker 部署自己的订阅转换后端
subconverter 是开源的订阅转换后端。在线转换时,订阅链接和其中的节点信息都会发给后端服务器,所以自己部署一个后端是最稳妥的做法。官方提供了 Docker 镜像 tindy2013/subconverter。
用 docker run 部署#
官方 Docker 文档给出的命令:
# 后台运行容器,把容器内的 25500 端口映射到主机的 25500 端口
docker run -d --restart=always -p 25500:25500 tindy2013/subconverter:latest
# 检查运行状态
curl http://localhost:25500/version
如果返回 subconverter vx.x.x backend 这样的版本信息,说明容器已经正常运行。
用 docker compose 部署#
services:
subconverter:
image: tindy2013/subconverter:latest
container_name: subconverter
ports:
- "15051:25500"
restart: always
这个例子把容器的 25500 端口映射到主机的 15051 端口,访问时要用 15051。
调用方式#
subconverter 默认监听 25500 端口。基本调用格式:
http://127.0.0.1:25500/sub?target=clash&url=订阅链接&config=外部配置地址
| 参数 | 说明 |
|---|---|
target | 必填,目标客户端类型,如 clash、surge&ver=4、quanx、loon |
url | 机场订阅或节点分享链接,需要 URLEncode,多个用 | 分隔 |
config | 外部配置地址,需要 URLEncode,例如 ACL4SSR 的 ACL4SSR_Online.ini |
emoji | 节点名是否加 Emoji,默认 true |
udp | 是否开启 UDP,默认 false |
scv | 是否关闭 TLS 证书检查,默认 false |
部署公开服务时注意#
文档中 pref 配置的 [common] 部分有两个和安全相关的选项:
api_mode:设为 true 时,防止直接加载本地订阅或直接提供本地文件,访问这些内容需要带上&token=。文档说明它多用于部署公共订阅转换服务。api_access_token:访问/getprofile等相对隐私接口时使用的 token。
要修改 Docker 里的 pref 配置,官方文档给出的方法是通过 /updateconf 接口上传,或者基于官方镜像写一个 Dockerfile,把自己的文件复制到容器内的 /base/ 目录。
把后端开放到公网之前,建议在前面加一层 HTTPS 反向代理,并设置好上述 token。
常见问题
- subconverter 用 Docker 怎么部署?
- 运行 docker run -d --restart=always -p 25500:25500 tindy2013/subconverter:latest,再用 curl http://localhost:25500/version 检查,返回版本信息即表示运行正常。
- subconverter 默认端口是多少?
- 默认监听 25500 端口。