本文只讲方法:如何把多个机场的节点聚合成一个订阅链接,并按网站类型自动分流。所有密钥、域名、口令均为占位符
<...>,代码中请替换成你自己的真实值;文中不含任何可用凭据。
手里有好几个机场订阅?痛点通常是:
- 每个机场节点质量参差,有的解锁强但贵、有的便宜但解锁差;
- 每天在多个客户端之间手动切换,麻烦;
- 家人朋友也想用,但不想给原始订阅链接。
这篇文章给出一套「三合一订阅网关」方案,最终效果:
- 一个订阅链接,Clash 导入即用;
- 按网站自动分流——Gemini/ChatGPT/Claude/Netflix 走解锁好的节点,YouTube/Google 走省流量的节点,国内网站直连;
- 普通使用者拿「访客口令」订阅,看不到任何后台密码。
整体架构#
云端同步 Worker(定时拉取多个机场订阅 → 合并 → 精简 → 存 KV)
↓
网关(Sub-Store,部署在 Cloudflare Pages)
├─ /api/file/full → 完整订阅(带全部策略组,管理员口令保护)
└─ /guest/<口令> → 访客订阅(给家人/朋友)
↓
Clash / Clash Verge 导入订阅 → 自动分流核心思想:上游多个机场订阅 → 在 Cloudflare 上聚合 → 输出成 Clash 配置。你自己只维护一个订阅链接。
需要的 Cloudflare 资源#
| 资源 | 类型 | 作用 |
|---|---|---|
| 网关 | Pages | 跑 Sub-Store,对外提供订阅 |
| 同步 Worker | Worker | 定时(如每 6 小时)拉取上游、合并生成配置、存 KV |
| KV(数据) | KV | 存 Sub-Store 数据 / 同步结果 |
| 导航页 | Pages | 给人看的操作入口(不含任何敏感信息) |
关键点:导航页只放操作入口按钮(订阅复制、后台跳转、同步状态),不放密码、不放带口令的链接——这层隔离很重要,避免一截图就泄露凭据。
第一步:聚合多个机场订阅#
Sub-Store 后台可以添加多个「单条订阅」,再把它们组合成一个「组合订阅」。
- 单条订阅:你手上的各个机场订阅 URL(如 A 机场、B 机场、C 机场)
- 组合订阅:选「合并上面几个」,生成三合一
⚠️ 注意:部分机场订阅被 Cloudflare JS Challenge 保护,Worker 直连拉取会返回 403。解决办法:① 本地(住宅 IP)拉取后存对象存储;② 云端带
cf_clearancecookie(需定期刷新,例如每周一次)。
第二步:设计策略组(自动分流的核心)#
导入订阅后,Clash 里会有多个策略组。日常使用什么都不用改——规则已经帮你分好流。你只需要认识 4 个常用组:
| 组 | 作用 | 什么时候碰 |
|---|---|---|
| 🔓 智能解锁 | 解锁站专用(Gemini/ChatGPT/Claude/X/Netflix) | 解锁站不好用时 → 选「香港住宅」 |
| 🌐 省流组 | 普通流量(YouTube/Google 默认走这,省钱) | 不用管 |
| 🎛️ 总开关 | 手动挑任意节点 | 想强制全走某节点时 |
| 🏠 香港住宅 | 香港家宽节点(解锁最好) | 在「智能解锁」里选它 |
其余的组(流媒体、日本/新加坡/美国节点池、自动测速、全球直连、广告拦截、兜底)都是「自动挡下面的手动挡」——了解即可,默认不用碰。
三组规则逻辑:
- 解锁站(AI / 流媒体)→ 走解锁质量好的节点(香港/新加坡/美国住宅)
- 普通流量(YouTube / Google)→ 走便宜省流量的节点
- 国内网站 → 直连(DIRECT)
第三步:Clash 导入#
- 打开 Clash Verge → 订阅 → 添加
- 粘贴订阅链接(形如
https://<你的网关域名>/<管理员口令>/api/file/full) - 导入后无需改动,规则自动分流
给家人/朋友:用访客订阅链接(每人一个口令),形如 https://<同步Worker>/guest/<口令>。他们看不到后台、也拿不到完整节点列表。
第四步:自动化同步#
手动同步当然可以,但更省心的是让 Worker 定时跑:
- 云端同步 Worker:Cron 每 6 小时自动拉取上游、合并、更新 KV。端点如
/sync(手动触发)、/status(看状态)、/cookie(刷 cookie)。 - 本地兜底脚本(可选但推荐):部分机场云端拉不到(被 JS Challenge 拦),本地走住宅网络能稳定拉全。用一个计划任务(如每 6 小时,需电脑登录态)跑本地脚本拉全 → 上传对象存储 → 网关透传。
经验:本地兜底往往是唯一能稳定拉全所有节点的环节。保持电脑登录态或设置登录自动启动,避免云端只剩「无 cookie 的 20 节点」。
安全边界(公开部署必看)#
这套系统一旦放到公网域名,安全设计不能省:
- 管理员口令保护完整订阅:完整链接带口令前缀,泄露也只是「能用订阅」,进不了后台。
- 导航页零敏感:按钮化入口,密码、带口令链接、API Token 一律不放。
- 访客口令隔离:每人一个口令,可随时撤销,且看不到后台。
- 真实凭据不下发:对象存储、KV、Worker 的密钥只在服务端环境变量/配置里,客户端只拿最终订阅。
- 改配置要同步两处:本地生成脚本和云端 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 命名空间、本地路径)均为占位符,请替换成你自己的真实值后再部署。







