↓ 跳过正文
  1. Posts/

把多个机场聚合成一个订阅网关:Cloudflare + Sub-Store + Clash 自动分流实战

·2212 字·5 分钟· loading · loading · ·
HJP
作者
HJP
一个正在不断学习与成长的人。
目录

本文只讲方法:如何把多个机场的节点聚合成一个订阅链接,并按网站类型自动分流。所有密钥、域名、口令均为占位符 <...>,代码中请替换成你自己的真实值;文中不含任何可用凭据。

手里有好几个机场订阅?痛点通常是:

  • 每个机场节点质量参差,有的解锁强但贵、有的便宜但解锁差;
  • 每天在多个客户端之间手动切换,麻烦;
  • 家人朋友也想用,但不想给原始订阅链接。

这篇文章给出一套「三合一订阅网关」方案,最终效果:

  1. 一个订阅链接,Clash 导入即用;
  2. 按网站自动分流——Gemini/ChatGPT/Claude/Netflix 走解锁好的节点,YouTube/Google 走省流量的节点,国内网站直连;
  3. 普通使用者拿「访客口令」订阅,看不到任何后台密码。

整体架构
#

云端同步 Worker(定时拉取多个机场订阅 → 合并 → 精简 → 存 KV)
        ↓
网关(Sub-Store,部署在 Cloudflare Pages)
  ├─ /api/file/full   → 完整订阅(带全部策略组,管理员口令保护)
  └─ /guest/<口令>    → 访客订阅(给家人/朋友)
        ↓
Clash / Clash Verge 导入订阅 → 自动分流

核心思想:上游多个机场订阅 → 在 Cloudflare 上聚合 → 输出成 Clash 配置。你自己只维护一个订阅链接。

需要的 Cloudflare 资源
#

资源类型作用
网关Pages跑 Sub-Store,对外提供订阅
同步 WorkerWorker定时(如每 6 小时)拉取上游、合并生成配置、存 KV
KV(数据)KV存 Sub-Store 数据 / 同步结果
导航页Pages给人看的操作入口(不含任何敏感信息)

关键点:导航页只放操作入口按钮(订阅复制、后台跳转、同步状态),不放密码、不放带口令的链接——这层隔离很重要,避免一截图就泄露凭据。

第一步:聚合多个机场订阅
#

Sub-Store 后台可以添加多个「单条订阅」,再把它们组合成一个「组合订阅」。

  • 单条订阅:你手上的各个机场订阅 URL(如 A 机场、B 机场、C 机场)
  • 组合订阅:选「合并上面几个」,生成三合一

⚠️ 注意:部分机场订阅被 Cloudflare JS Challenge 保护,Worker 直连拉取会返回 403。解决办法:① 本地(住宅 IP)拉取后存对象存储;② 云端带 cf_clearance cookie(需定期刷新,例如每周一次)。

第二步:设计策略组(自动分流的核心)
#

导入订阅后,Clash 里会有多个策略组。日常使用什么都不用改——规则已经帮你分好流。你只需要认识 4 个常用组:

组作用什么时候碰
🔓 智能解锁解锁站专用(Gemini/ChatGPT/Claude/X/Netflix)解锁站不好用时 → 选「香港住宅」
🌐 省流组普通流量(YouTube/Google 默认走这,省钱)不用管
🎛️ 总开关手动挑任意节点想强制全走某节点时
🏠 香港住宅香港家宽节点(解锁最好)在「智能解锁」里选它

其余的组(流媒体、日本/新加坡/美国节点池、自动测速、全球直连、广告拦截、兜底)都是「自动挡下面的手动挡」——了解即可,默认不用碰。

三组规则逻辑:

  • 解锁站(AI / 流媒体)→ 走解锁质量好的节点(香港/新加坡/美国住宅)
  • 普通流量(YouTube / Google)→ 走便宜省流量的节点
  • 国内网站 → 直连(DIRECT)

第三步:Clash 导入
#

  1. 打开 Clash Verge → 订阅 → 添加
  2. 粘贴订阅链接(形如 https://<你的网关域名>/<管理员口令>/api/file/full)
  3. 导入后无需改动,规则自动分流

给家人/朋友:用访客订阅链接(每人一个口令),形如 https://<同步Worker>/guest/<口令>。他们看不到后台、也拿不到完整节点列表。

第四步:自动化同步
#

手动同步当然可以,但更省心的是让 Worker 定时跑:

  • 云端同步 Worker:Cron 每 6 小时自动拉取上游、合并、更新 KV。端点如 /sync(手动触发)、/status(看状态)、/cookie(刷 cookie)。
  • 本地兜底脚本(可选但推荐):部分机场云端拉不到(被 JS Challenge 拦),本地走住宅网络能稳定拉全。用一个计划任务(如每 6 小时,需电脑登录态)跑本地脚本拉全 → 上传对象存储 → 网关透传。

经验:本地兜底往往是唯一能稳定拉全所有节点的环节。保持电脑登录态或设置登录自动启动,避免云端只剩「无 cookie 的 20 节点」。

安全边界(公开部署必看)
#

这套系统一旦放到公网域名,安全设计不能省:

  1. 管理员口令保护完整订阅:完整链接带口令前缀,泄露也只是「能用订阅」,进不了后台。
  2. 导航页零敏感:按钮化入口,密码、带口令链接、API Token 一律不放。
  3. 访客口令隔离:每人一个口令,可随时撤销,且看不到后台。
  4. 真实凭据不下发:对象存储、KV、Worker 的密钥只在服务端环境变量/配置里,客户端只拿最终订阅。
  5. 改配置要同步两处:本地生成脚本和云端 Worker 的「策略组/规则生成函数」必须一致,否则两个订阅链接分组不同。

常见排障
#

症状原因 / 解决
订阅拉取 403 “Just a moment”机场 JS Challenge 拦截 → 刷新 cookie
节点数明显变少(只剩无 cookie 的机场)cookie 过期 → 刷新
同步报 429云端 Browser Rendering 免费额度用完(约 10 分钟/天)→ 等明天或减手动测试
导航页打不开检查 Pages 项目 + 域名 CNAME
本地同步失败检查本地代理是否正常

小结
#

把多个机场聚合成「一个网关 + 自动分流」,本质是用 Cloudflare 做一层聚合与调度:

  • 上游:多个机场订阅(质量互补)
  • 中间:Worker 定时同步 + Sub-Store 聚合
  • 下游:Clash 按规则自动分流,用户无感

整套方案免费(Cloudflare Free 额度足够个人/小群),维护成本主要在「cookie 每周刷新」和「本地兜底保活」。配好之后,日常就是导入一次、长期不用管。

文中所有 <...>(口令、域名、Token、KV 命名空间、本地路径)均为占位符,请替换成你自己的真实值后再部署。

相关文章