Photo by Unsplash
692 字
3 分钟
跨平台分流规则维护指南:rconvert仓库自动化构建实践
跨平台分流规则维护指南:自动化构建的艺术
维护一套好用的分流规则是个体力活。市面上开源的规则库不少,但格式各异——Surge、Clash、Quantumult X、小火箭,每个平台都有自己的语法。手动转换、去重、更新,不出一个月就会崩溃。
我的解决方案是 rconvert。这个仓库的核心逻辑很简单:融合上游优秀规则 + 自动格式转换 + 定时构建。
项目架构
rconvert 用 GitHub Actions 每三天早上6点自动运行一次。整个流程包括:
- 拉取多个上游规则源
- 子域名去重(把
a.example.com和b.example.com合并成example.com) - 格式转换输出
- 推送到仓库并同步到 Cloudflare 镜像
构建时间从最初的十几分钟优化到了现在的3分钟左右。
支持的规则类型
目前稳定输出的规则包括:
| 规则名称 | 用途 | 条目数 |
|---|---|---|
| 去广告完整版 | 合并 blackmatrix7、毒奶、sukka 规则 | ~10万条 |
| 去广告实验版 | 完整版 + EasyPrivacy + 额外规则 | ~20万条 |
| CDN 分流 | 合并 sukka 的 CDN 规则 | ~1000条 |
| 大流量分流 | CDN + 流媒体 + 文件分享站 | ~4000条 |
| 国内直连 | sukka + blackmatrix7 国内域名 | ~4000条 |
| 文件分享站 | 国外网赚网盘列表(手动维护) | ~300条 |
使用建议4、5、6号规则是为流量紧张的用户设计的。如果你每月有几TB流量,直接跳过这些,用完整版即可。
格式转换说明
rconvert 的核心脚本 r.cmd 支持自动识别多种输入格式:
- DOMAINSET
- RULESET
- Quantumult X
- Clash YAML
- AdBlock DNS
输出时统一转换为4种格式,方便不同平台使用:
fin.txt - Rule-set 格式(Surge/Clash)fin-qx.txt - Quantumult X 格式fin.yaml - Clash Rule Provider 格式fin-adb.txt - AdBlock DNS 格式订阅地址
GitHub raw 地址:
https://raw.githubusercontent.com/DoingDog/rconvert/main/a2/fin.txtCloudflare 镜像(国内推荐):
https://r.awsl.app/a2/fin.txt其他规则替换路径中的 a2 即可:
a1- 实验版去广告cdn- CDN 规则big-data- 大流量分流dirt- 国内直连
示例配置
Quantumult X 配置示例:
[filter_remote]https://r.awsl.app/a2/fin.txt, tag=去广告, force-policy=reject, enabled=true
[rewrite_remote]https://r.awsl.app/static/main/Adb-unblock.list, tag=去广告白名单, enabled=trueClash 配置使用 Rule Provider:
rule-providers: adblock: type: http behavior: domain url: "https://r.awsl.app/a2/fin.yaml" path: ./ruleset/adblock.yaml interval: 86400
rules: - RULE-SET,adblock,REJECT自定义构建
fork 仓库后可以修改 r.cmd 和 ini 目录下的上游规则链接。GitHub Actions 工作流在 .github/workflows 目录,定时配置每3天运行一次:
schedule: - cron: '0 6 */3 * *'注意事项这是个人自用的极端拦截规则列表,拦截力度很大。如果某些网站访问异常,检查是否被规则误杀,可以提交 issue 或自行添加到白名单。
参考链接
- 项目地址:https://github.com/DoingDog/rconvert
- QX 配置示例:https://github.com/DoingDog/qxprofile/blob/main/Profile.ini
- 上游规则致谢:blackmatrix7 / 毒奶 / sukka
跨平台分流规则维护指南:rconvert仓库自动化构建实践
https://im.awsl.app/posts/networking/032-rconvert-rules/