项目地址:cmliu/CF-Workers-SUB · 作者图文教程:cmliussss.com/p/CF-Workers-SUB · 视频教程:CM喂饭 干货满满第 28 期 / 第 13 期(见文末)· 配套阅读:《自建订阅转换后端 SubConverter》

节点一多,订阅管理先崩溃:自建的几个节点链接、两三个机场订阅、朋友分享的临时节点,散落在客户端里一条条维护。CF-Workers-SUB 干的就是汇聚这一件事——把多个节点链接和多个订阅链接合并成一条你自己的订阅,客户端只订这一条;它还能依托订阅转换后端把汇聚结果适配成 Clash / sing-box 等不同格式,并套用你自己的分流规则。本文按官方图文与仓库 README 写全 Pages / Workers 两种部署、全部变量和注意事项。提醒:本项目供学习与网络技术研究,请遵守当地法律法规。

CF-Workers-SUB(官方图)
CF-Workers-SUB(官方图)

它能干什么

  • 节点链接自动转 base64 订阅:把 vless://、vmess://、trojan://、ss:// 等分享链接打包成标准 base64 订阅
  • 多订阅汇聚:多个机场订阅 + 多个自建节点合并为一个订阅地址,客户端只维护这一条
  • 自动适配客户端格式:依托订阅转换后端(SUBAPI),同一条汇聚订阅可输出 Clash、sing-box、Surge、Loon 等格式
  • 自定义分流规则:转换时套用外部配置文件(SUBCONFIG),用你自己的分流而不是机场给的简单规则
  • 访客订阅与 TG 通知:可另发一条访客 TOKEN 给别人用(GUEST),订阅被访问时可 Telegram 通知你

准备工作

  • 一个 Cloudflare 账号(免费计划即可)
  • 一个 GitHub 账号(Pages 部署要先 Fork 仓库)
  • 一个域名(可选但推荐):绑自定义域后地址更好记;Pages 部署要给 Pages 项目绑次级域名(不要用根域名)
  • 一个订阅转换后端:默认用作者的公共后端(SUBAPI.cmliussss.net),想彻底不经第三方,就先按《自建订阅转换后端 SubConverter》搭一个自己的,再填到 SUBAPI 变量里

部署方法一:Pages 部署

  1. 在 GitHub 上 Fork CF-Workers-SUB 仓库(顺手点 Star)
  2. Cloudflare 控制台 → Pages →「连接到 Git」,选中你 Fork 的仓库,「开始设置」并部署
  3. 绑定 KV:项目「设置 → 绑定」添加 KV 命名空间绑定,变量名填 KV(没有命名空间就新建一个);绑定后需要重新部署一次生效
  4. 设置快速订阅入口:项目环境变量添加 TOKEN,值就是你的订阅入口路径,例如填 auto,订阅地址即 https://你的域名/auto。强烈建议把默认值改掉,换成只有你知道的词——入口路径就是钥匙,猜中即可管理你的汇聚内容
  5. 绑自定义域(推荐):Pages 项目「自定义域」填次级域名(如 sub.example.com),按提示到域名 DNS 处添加 CNAME 记录指向 CF-Workers-SUB.pages.dev,点「激活域」
  6. 访问 https://你的域名/<TOKEN 的值> 打开管理页(见下节)

部署方法二:Workers 部署

  1. Cloudflare 控制台创建一个新的 Worker
  2. 把仓库 _worker.js 的全部内容粘贴进在线编辑器并部署
  3. 修改入口:Workers 版不用环境变量,直接在代码里改 mytoken 的赋值,例如 let mytoken = 'auto'; 改成你自己的入口词,订阅地址即 https://你的Worker域名/<mytoken 的值>
  4. 同样绑定变量名为 KV 的 KV 命名空间(「设置 → 绑定」)
  5. 访问 https://你的Worker域名/<入口> 打开管理页

Pages 版改配置在变量里改、Workers 版在代码里改,这是两种方法唯一的本质区别;长期用、想跟作者更新选 Pages + GitHub。

添加节点与订阅(管理页用法)

打开 /<TOKEN> 就是汇聚管理页,页面顶部会列出各格式的订阅地址,中间是汇聚编辑框:

CF-Workers-SUB 管理页(项目官方截图,地址与节点为官方演示数据)
CF-Workers-SUB 管理页(项目官方截图,地址与节点为官方演示数据)
  • 在编辑框里粘贴你的内容,一行一个:节点分享链接(vless://、vmess://、trojan://、ss:// 等)和订阅链接(https:// 开头)可以混着放,点保存
  • 拿订阅:页面上方有现成的地址——自适应订阅地址(按客户端自动识别格式)、Base64 订阅(/<TOKEN>?b64)、Clash 订阅(?clash)、sing-box 订阅(?sb)、Surge(?surge)、Loon(?loon),把对应的一条填进客户端即可
  • 没有绑 KV 时,也可以把链接清单直接写在 LINK 变量里(见变量表);绑了 KV 后以管理页内容为准,LINK 变量不再使用

变量全表

变量名示例必填说明
TOKENauto✅汇聚订阅的入口路径,例如 /auto。务必改成自己的词
GUESTtest❌访客订阅 TOKEN,例如 /sub?token=<你的GUEST值>,给别人用的只读入口
LINK多条链接换行分隔❌无 KV 时的链接清单,可同时放多个节点链接与多个订阅链接;添加 KV 后此变量不再使用
TGTOKEN机器人 token❌Telegram 通知的机器人凭证(需先在 Telegram 注册 Bot 获取)
TGID数字 ID❌接收通知的 Telegram 用户或群组数字 ID,与 TGTOKEN 配套
SUBNAMECF-Workers-SUB❌订阅名称(客户端里显示的名字)
SUBAPISUBAPI.cmliussss.net❌订阅转换后端地址;换成自建后端就填自己的,见配套文章
SUBCONFIGACL4SSR 的 ini 地址❌订阅转换配置文件,默认 ACL4SSR_Online_MultiCountry.ini(多国分流规则)

注意事项(官方 CAUTION 与实测经验)

  • 24 小时临时订阅:非 base64 的汇聚转换时,它会先生成一个 24 小时有效的临时订阅再提交给转换后端——这是为了防止你的汇聚地址在转换环节泄露。副作用是:转换类订阅地址依赖后端实时生成,别把它当成永久静态文件理解
  • 汇聚规模别贪大:节点池太大时转换后端处理慢,Clash 等客户端拉订阅容易超时。几百个节点以内为宜,明显用不上的机场和节点先清掉
  • 入口即钥匙:TOKEN(或 Workers 版的 mytoken)同时是管理入口,泄露等于别人能改你的汇聚清单;订阅地址也不要发到公开场合
  • 改完变量记得重新部署:Pages 改环境变量/KV 绑定后要重新部署才生效,这一点和 edgetunnel 等同类项目一致

常见问题与检查维修

  • 打开 /<TOKEN> 不是管理页:先确认 TOKEN 值与访问路径完全一致(大小写敏感);Pages 部署确认变量加在生产环境且已重新部署;Workers 部署确认改的是代码里的 mytoken 并已部署
  • 保存后订阅里没有新加的节点:确认 KV 绑定的变量名是 KV、绑到了当前项目;如果没绑 KV 而是用 LINK 变量,注意链接之间用换行分隔
  • Clash 拉订阅超时/失败:多为汇聚规模过大或转换后端慢——先缩小汇聚清单试;再把 SUBAPI 换成自建后端(公共后端高峰期排队是常态)
  • 转换格式不对:检查客户端拿的是哪条地址(?clash / ?sb 等后缀别拿错);分流规则不对则是 SUBCONFIG 配置文件的问题,换回默认 ACL4SSR 配置验证
  • 访客订阅:只发 GUEST 生成的访客地址,不要把主 TOKEN 地址给别人

视频教程

在 YouTube 打开原视频 ↗

资料来源

  • 项目仓库 README 与变量说明(2026-11 核对):https://github.com/cmliu/CF-Workers-SUB
  • 作者图文教程:https://cmliussss.com/p/CF-Workers-SUB
  • 配套自建后端:见本站《自建订阅转换后端 SubConverter》