项目地址(维护版 Fork):asdlokj1qpi233/subconverter · 原版:tindy2013/subconverter · 作者图文教程:blog.cmliussss.com/p/SUBAPI · 视频教程:CM喂饭 干货满满第 31 期(见文末)
订阅转换后端是代理生态里最容易被忽视、又最要命的一环:你在任何一个在线转换网站里粘贴自己的订阅链接,这条链接就等于交给了那个网站的维护者——他能看到你全部节点,等于你的机场账号半公开。SubConverter 是最主流的开源订阅转换程序,把它部署成自己的后端,转换这一步就只经过你自己的服务器。本文按 CM喂饭官方图文与 Fork 仓库的最新口径,把两种部署(免费容器 / VPS Docker)、核心用法和注意事项写全。提醒:本项目供学习与网络技术研究,请遵守当地法律法规。

先搞清:什么是订阅转换、前端和后端
- 订阅转换:把一种客户端格式的订阅(比如机场给的通用订阅)转换成另一种格式(Clash 的 YAML、sing-box 的 JSON、Surge/Loon/Quantumult X 的配置),并在转换时套用分流规则(哪些网站直连、哪些走代理)
- 后端:真正干转换活的程序,就是 SubConverter。它没有网页界面,只提供一个 API 地址;直接打开后端域名看不到页面是正常现象
- 前端:一个静态网页表单,你在里面填订阅链接、选目标格式、填后端地址,点生成就拼出转换链接。前端可以随便用公共的(比如肥羊的 suburl.v1.mk 或作者的 sub.cmliussss.com),因为真正接触你订阅的是后端——后端必须是自己的,前端无所谓
用哪个版本:原版 tindy2013/subconverter 更新维护频率不高,本教程按作者图文口径使用持续维护的 Fork(asdlokj1qpi233/subconverter)。千万注意一个易错点:Fork 的 GitHub 仓库名是 asdlokj1qpi233(带 233),而 Docker 镜像名是 asdlokj1qpi23/subconverter(少一个 3,只有 23)——部署时填镜像名,别照抄仓库名。
它能干什么
- 把订阅/节点链接转换成 clash、surge、loon、quantumultx(Quantumult X)、singbox(sing-box)、v2ray、trojan 等目标格式(完整支持列表见 Fork 仓库 README)
- 转换时套用外部配置(远程规则文件,最常用的是 ACL4SSR 的 ini 配置),实现国内外分流、去广告等规则
- 纯 API 服务,资源占用极小(0.2 核 CPU + 256MB 内存就能跑),适合塞在免费容器或小 VPS 上常驻
准备工作
- 无 VPS:一个 ClawCloudRun 账号。推荐用注册满 180 天以上的 GitHub 账号去注册 ClawCloudRun,每月有 $5 免费额度(平台政策,写稿时口径如此,后续以平台为准),跑这个后端绰绰有余
- 有 VPS:一台境外 VPS 并装好 Docker。必须境外的原因在下面部署须知里
- 一个域名(可选):绑上自己的域名更好记;官方图文用的是 HiDNS 免费域名,也可以先用平台分配的地址跑通
- 一个订阅转换前端页面(在线用现成的即可,不用部署)
部署须知(先看再动手)
- 本教程采用 Docker 容器化部署,两种方法跑的是同一个镜像
- ⚠️ 后端必须部署在境外:订阅链接本身可能被墙,后端要能正常拉取到订阅内容才能转换;部署在墙内等于白搭
- 后端没有访问密码这类概念,地址本身要低调保管,别公开分享你的后端地址给陌生人使用(那等于你替别人承担流量和风险)
部署方法一:ClawCloudRun 免费容器(无 VPS 首选)
- 登录 ClawCloudRun,进入控制台
- 点击 App Launchpad,再点右上角 Create App


- 按下表填写参数(截图为作者已标注版,照着填即可):
| 参数 | 填法 |
|---|---|
| Application Name | 随便起名,例如 subapi |
| Image Name | asdlokj1qpi23/subconverter(注意是 23,不是 233) |
| CPU | 0.2(自用足够;要做公益服务再往上加) |
| Memory | 256MB |
| Container Port | 25500 |

- 点击右上角 Deploy Application,等待部署完成

- 验证:浏览器访问
https://你的应用地址/version,能返回一行版本信息(形如subconverter vX.X.X backend)就说明部署成功

- (可选)在应用里绑定自己的域名,之后用域名访问后端
部署完成后的后端地址格式为:https://<应用名>.<区域>.clawcloudrun.com(区域如 ap-southeast-1),这个地址就是后面到处要填的「后端地址」。
部署方法二:VPS Docker(一行命令)
在境外 VPS 上执行:
docker run -d --restart=always -p 25500:25500 asdlokj1qpi23/subconverter:latest--restart=always保证机器重启或容器异常退出后自动拉起- 验证同样访问
http://你的VPS地址:25500/version - Fork 仓库另有 docker-compose 与二进制 Release 的部署方式,细节见其 README / README-docker
怎么使用:三种落地场景
后端本身没有界面,日常用它有三种姿势。
场景一:配订阅转换前端,手动转换
打开肥羊前端(suburl.v1.mk)或作者前端,把「后端地址」一栏换成你自己的后端地址,粘贴订阅链接、选目标格式,生成转换后的订阅地址给客户端用:

前端生成的链接本质就是下面这个 API 格式,理解它之后不用前端也能手拼:
https://你的后端地址/sub?target=<目标格式>&url=<订阅链接,需 URL 编码>&config=<外部配置地址>| 参数 | 说明 | |
|---|---|---|
target | 目标格式,如 clash、singbox、surge、loon、quantumultx、v2ray、trojan | |
url | 原始订阅链接或节点链接,必须先做 URL 编码;多个链接可用 `\ | ` 分隔(以官方文档为准) |
config | 外部配置(规则)文件的 URL;不填则用后端默认配置。常用 ACL4SSR 的 ini 配置实现分流 |
场景二:给 CF-Workers 系项目填 SUBAPI 变量
cmliu 的 CF-Workers 系项目(如 edgetunnel 的订阅转换、CF-Workers-SUB 汇聚订阅)都有一个 SUBAPI 变量,把它从默认值改成你自己的后端地址,这些项目的订阅转换就全走你自己的后端,不再经过公共后端:

配套阅读:《CF-Workers-SUB 自建汇聚订阅教程》——那篇的 SUBAPI 默认值正好可以换成本篇的自建后端。
场景三:OpenClash 里换自建后端
软路由 OpenClash 的订阅配置里,把订阅转换后端地址改成你的自建后端,路由器拉订阅转换时同样不经过第三方:

常见问题与检查维修
- 打开后端域名是空白/报错:正常。后端没有网页 UI,只有
/version和/sub这类 API 路径有返回;先用/version验证服务活着 - 转换失败或转出来的订阅是空的:按顺序查——后端是否在境外且能直连订阅源(在服务器上 curl 一下原订阅链接试试);
url参数有没有做 URL 编码;target是否拼写正确;config外部配置地址是否还能访问 - 前端生成链接没反应:多半是前端里填的后端地址不对(漏了 https、或填成了别人的后端),或后端被墙无法从你本地直连——换绑一个未被墙的域名,或给后端套一层 CDN
- ClawCloudRun 部署后打不开:检查 Container Port 是否 25500、Public Access(公网访问)是否开启、免费额度是否用完;平台侧 SSL 证书长时间 Pending 时,可参考作者的另一篇图文(给 ClawCloudRun 容器套 CDN 解决证书问题)
- 要不要给后端加访问控制:SubConverter 本身没有账号体系,靠的是地址保密;不要把后端地址发到公开场合,当公益后端运营前先想清流量成本
视频教程
资料来源
- 维护版 Fork 仓库 README(部署方式与支持格式):https://github.com/asdlokj1qpi233/subconverter
- 原版仓库:https://github.com/tindy2013/subconverter
- 作者图文教程(2026-11 核对):https://blog.cmliussss.com/p/SUBAPI/
还没有评论,来抢沙发。