[{"data":1,"prerenderedAt":158},["ShallowReactive",2],{"navigation":3,"\u002Fblog\u002Fsub-store-cloudflare":18,"\u002Fblog\u002Fsub-store-cloudflare-surround":155},[4],{"title":5,"path":6,"stem":7,"children":8,"page":17},"Blog","\u002Fblog","blog",[9,13],{"title":10,"path":11,"stem":12},"这个站上线了","\u002Fblog\u002Fhello","blog\u002Fhello",{"title":14,"path":15,"stem":16},"我把机场订阅聚合搬到了 Cloudflare 上","\u002Fblog\u002Fsub-store-cloudflare","blog\u002Fsub-store-cloudflare",false,{"id":19,"title":14,"author":20,"body":24,"date":146,"description":147,"extension":148,"image":149,"meta":150,"minRead":151,"navigation":152,"path":15,"seo":153,"stem":16,"__hash__":154},"blog\u002Fblog\u002Fsub-store-cloudflare.md",{"name":21,"avatar":22},"陈大黄",{"src":23,"alt":21},"\u002Favatar.jpg",{"type":25,"value":26,"toc":138},"minimark",[27,31,42,46,49,52,65,68,71,75,78,99,102,105,108,111,119,126,129,132,135],[28,29,30],"p",{},"我用机场有三四年了，中间也自己搭过 VPS 节点。一直有个挺烦人的事：手里三五条订阅，加上自己搭的几台，分散在客户端里要一条条加，分流规则每个客户端又得重配一遍。换设备、换客户端、给家里人装一次，就再来一遍。",[28,32,33,34,41],{},"后来我想，订阅这件事没必要在客户端散着管。把它收拢成一条链接，规则在服务端定死，客户端只管订阅，事情就清爽了。Sub-Store 那套思路我之前就用，但它跑在自己服务器上，我嫌养护麻烦。所以这次自己写了个跑在 Cloudflare 上的版本，叫 sub-store-cloudflare，开源在 ",[35,36,40],"a",{"href":37,"rel":38},"https:\u002F\u002Fgithub.com\u002Frealchendahuang\u002Fsub-store-cloudflare",[39],"nofollow","GitHub","。",[43,44,45],"h2",{"id":45},"它其实就干一件事",[28,47,48],{},"把多个订阅源揉成一条订阅。",[28,50,51],{},"具体说，你可以往里面塞几样东西：",[53,54,55,59,62],"ul",{},[56,57,58],"li",{},"几个机场的订阅链接",[56,60,61],{},"自己 VPS 上的节点文本（vless、trojan、ss、vmess 都行）",[56,63,64],{},"临时粘一段节点进来也行",[28,66,67],{},"这些进站后 Worker 会去拉、去重，按你给的规则筛一遍，再按需要改名、补国旗、解析域名。出来之后塞进一个组合订阅里，客户端订阅这一条就够了。",[28,69,70],{},"规则这块我放进了服务端。内置了几个常用的 Mihomo 模板，acl4ssr、loyalsoldier 白名单黑名单、ai-streaming 之类的，分流组、规则集都在云端配好。你把订阅丢进 mihomo \u002F clash、surge、sing-box、shadowrocket 这些客户端，下载下来就是带好分流规则的成品，那边不用再手动写规则、维护规则集 URL。",[43,72,74],{"id":73},"为什么非要放-cloudflare-上","为什么非要放 Cloudflare 上",[28,76,77],{},"原因很实在：",[53,79,80,87,93],{},[56,81,82,86],{},[83,84,85],"strong",{},"不要服务器。"," Workers + D1，免费额度对个人够用，服务器钱和养护都省了。",[56,88,89,92],{},[83,90,91],{},"workers.dev 那个域名本身就在墙外。"," 你客户端连过去抓订阅这一步是通的，不存在“服务器在境外、节点拉订阅还要梯子”这种套娃。",[56,94,95,98],{},[83,96,97],{},"部署完就是 Web 管理界面加一个下载端点。"," 手机换客户端也能开网页改配置。",[28,100,101],{},"技术栈我刻意保持小：Worker + Static Assets + D1 + Worker Secrets。KV、R2、Durable Objects、Queue、Cron 都不在核心路径里，能少一样少一样。",[43,103,104],{"id":104},"部署特意做了两条路",[28,106,107],{},"第一条是给想用的人：点仓库里的 Deploy to Cloudflare 按钮，Cloudflare 自己拉仓库、建 Worker、建 D1、问你要两个 token，部署完给你一个带 token 的管理链接。一步步来，不用碰命令行。",[28,109,110],{},"第二条是给我自己也给爱折腾的人：AI Agent 一键装。",[28,112,113,114,118],{},"仓库里带了 agent 协议（AGENTS.md + agent 里的 SKILL）。你把订阅源、要做的组合订阅、想用的规则模板写进一个本地配置文件，跑 ",[115,116,117],"code",{},"pnpm run install:cloudflare","，agent 会替你检查 Cloudflare 登录、建库、写 secret、迁移、部署、导入配置、验证链接，最后把管理链接和下载链接交到你手上。",[28,120,121,122,125],{},"我自己就是用这条路上的线，所以更推荐这条，省心。给 Codex \u002F Claude Code 用的时候，直接复制仓库里 ",[115,123,124],{},"agent\u002Finstall.prompt.md"," 那段提示词就行。",[43,127,128],{"id":128},"适合谁",[28,130,131],{},"直说：手里不止一个机场、再加上自己搭的几个节点、想合成一条订阅自用的，就是这个项目的目标人群。你就一个机场将就用，那真没必要上这个。",[28,133,134],{},"代码全开源，AGPL。前端的交互思路致敬了原版 Sub-Store，原版跑在容器里、覆盖更多客户端生态，我做的是更小的 Cloudflare-native 形态，方便自己改也方便直接部署，不是逐项复刻。",[28,136,137],{},"感兴趣的可以去仓库翻翻，README 写得挺全，照着部署就行。",{"title":139,"searchDepth":140,"depth":140,"links":141},"",2,[142,143,144,145],{"id":45,"depth":140,"text":45},{"id":73,"depth":140,"text":74},{"id":104,"depth":140,"text":104},{"id":128,"depth":140,"text":128},"2026-06-28","多个机场加自建节点揉成一条订阅，分流规则在服务端配好，客户端只管订阅。","md",null,{},4,true,{"title":14,"description":147},"R0__sjRt87IQbTlvilXapwLo5DCrMLbrUmAXJfL865E",[156,149],{"title":10,"path":11,"stem":12,"description":157,"children":-1},"陈大黄的个人站上线。放我的 Playbook、Agent Skill 和折腾记录。",1782658473949]