面向 Clash Meta / Mihomo 的分流规则库,以及无需自建服务器的多订阅发布方案。
它会把多个订阅链接转换为一份可直接导入客户端的 Clash Meta 配置,并按服务、地区和广告拦截规则生成策略组。规则、订阅凭据与发布地址均由你的个人 Fork 管理。
建议先 Fork 本仓库。上游仓库提供规则基线;个人 Fork 才是你配置订阅、修改规则和保存发布地址的地方。
| 你的订阅情况 | 该用什么 | 最终得到什么 |
|---|---|---|
| 订阅地址已经返回 Clash YAML | 原生模板 | 客户端直接拉取代理和规则 |
| Base64、混合协议、机场私有格式,或多个订阅链接 | 自动发布(推荐) | 每 6 小时更新的一份完整 Clash Meta 配置 |
| 需要网页管理、即时更新或自定义域名 | 自建部署 | 自己托管的订阅转换与发布服务 |
config/subconverter.ini 是转换器的输入文件,不能直接导入 Clash Meta / Mihomo 客户端。
GitHub Actions 会每 6 小时通过你指定的公共 subconverter 服务拉取全部订阅、过滤和重命名节点、应用规则、校验结果,再把有变化的配置写入一个私有 Gist。你只需把这个 Gist 的 Raw 文件地址添加到客户端一次。
订阅链接
→ GitHub Actions
→ 公共 subconverter
→ 分流规则与策略组
→ YAML 校验
→ 私有 Gist
→ Clash Meta / Mihomo 客户端
-
Fork 本仓库。如果 Actions 尚未启用,进入你自己的 Fork 仓库的 Actions 页面,并按提示启用工作流。
-
创建一个私有 Gist,新建文件并命名为
clash-meta.yaml。该文件会保存完整节点配置,请不要在公共位置分享。 -
创建一个可编辑此 Gist 的 GitHub 访问令牌。使用经典个人访问令牌时,只需授予
gist权限;可在 个人访问令牌页面 创建。 -
在你的 Fork 中打开 Settings → Secrets and variables → Actions,创建以下四个 Actions secrets:
名称 填写内容 SUBSCRIPTION_URLS每行一个订阅链接;空行和以 #开头的行会忽略SUBCONVERTER_URL你信任的公共 subconverter 基础地址,例如 https://converter.example;不要填写末尾的/subGIST_ID第 2 步创建的 Gist ID GIST_TOKEN第 3 步创建的访问令牌 -
可选:在同一页面的 Variables 新建
GIST_FILENAME,以修改 Gist 内文件名;默认是clash-meta.yaml。 -
打开 Actions → Publish Clash Meta config → Run workflow,手动运行一次。
-
运行成功后,在 Gist 中复制
clash-meta.yaml的 Raw 地址,并将其作为订阅地址添加到 Clash Meta / Mihomo 客户端。
- 工作流按
17 */6 * * *触发,也可以随时手动运行;新任务会取消尚未完成的旧任务。 - 每次都会逐个请求公共转换器预检订阅;单个来源未通过时会间隔重试两次,仍失败才跳过,再将成功来源交给同一服务聚合。最终 YAML 必须包含
proxies、proxy-groups和rules;日志只显示来源序号、计数和脱敏诊断。 - 只要至少一个订阅转换成功,工作流就会用可用来源发布;内容没有变化时不会写入 Gist。全部来源、聚合转换、校验或发布失败时,Gist 会保留上一份可用配置。
公共转换服务会收到订阅链接及其查询参数。请只使用你信任、明确承诺不记录请求且支持外部 config URL 的实例;不要将 Gist 令牌传给转换服务。
如果你的订阅本身就是 Clash YAML,可使用 原生模板。它内置规则提供者、策略组和规则顺序,但不会转换通用或 Base64 订阅。
- 下载或复制 模板文件。
- 将
proxy-providers.subscription.url改为你的 Clash YAML 订阅地址。 - 将模板内的
chinnsenn/ClashCustomRule/master替换为你的 GitHub 用户名、Fork 仓库名和分支名。 - 导入客户端;规则 payload 会从你的 Fork 更新,因此后续添加的个人规则会生效。
通用/Base64 订阅、多机场聚合和节点重命名请使用上面的自动发布方案。
默认配置涵盖以下方向:
- 常用服务:Telegram、YouTube、Google、Gemini、OpenAI、Anthropic、DeepSeek、GitHub、Cloudflare、TikTok、X、Spotify 等。
- 流媒体与游戏:Netflix、Disney+、Prime Video、Apple TV+、Bilibili、巴哈姆特、Steam、Epic、Nintendo 等。
- 网络与隐私:国内/国外媒体、直连、广告拦截、应用净化、AdBlock 与隐私防护。
- 节点选择:全局手动选择、自动测速、故障转移,以及港、台、日、新、美、韩等地区自动组。
规则会按配置中的顺序匹配;更具体的服务规则位于通用规则之前。生成后的配置可在客户端中按策略组选择节点或 DIRECT。
| 想调整什么 | 修改位置 | 说明 |
|---|---|---|
| 新增少量个人域名、IP 或经典规则 | providers/ | 每个文件只保留 YAML 的 payload: 列表 |
| 服务分流、策略组、节点过滤和名称重命名 | config/subconverter.ini | 自动发布方案的唯一规范配置 |
| 原生模板的 rule-provider、策略组与规则顺序 | config/clash-meta.yaml | 仅影响原生模板方案 |
在 subconverter 配置 末尾找到注释掉的 rename= 示例,取消注释后:
- 把
机场A改为订阅名称中可识别的关键字。 - 把
机场 A改为想在客户端显示的名称。 - 再次运行工作流,新的节点名会随 Gist 配置发布。
rule_provider_config.yaml 是旧 Raw 地址的兼容副本;如仍在使用该旧入口,修改后请同步更新它。
修改 providers/、策略组或原生模板后,在仓库根目录运行:
python3 -m pip install -r requirements-dev.txt
./scripts/validate-config.sh
python3 tests/test_native_template.py它会检查 provider YAML、rule-provider 行为、subconverter 规则与策略组引用、兼容副本同构性,以及原生模板与自动发布方案的服务覆盖一致性。
本仓库负责组合、排序、策略组与自动发布;服务级分流主要来自长期维护的公开规则库,个人 Fork 适合保存自己的补充规则。
| 规则库 | 用途 | 本项目中的用法 |
|---|---|---|
| MetaCubeX meta-rules-dat | Mihomo 基础分类、GeoSite、GeoIP | 原生模板可使用 .mrs 格式 |
| ACL4SSR | Clash 基础分流补充 | 适合作为 subconverter 输入 |
| blackmatrix7 ios_rule_script | 流媒体、AI、金融、社交等服务级分流 | 通过 subconverter 转换为 Clash 规则 |
| Loyalsoldier clash-rules | 直连、代理、拒绝、私有网络等基础类别 | 用于基础分类补充 |
Clash Meta 原生 rule-providers 只能接收 Clash provider YAML 或 MetaCubeX .mrs。Surge 和 Quantumult X 规则应交给 subconverter 转换,不要直接填入原生模板。
- 订阅链接仅保存在 GitHub Actions secrets 和临时运行环境中;工作流不会上传含节点配置的 artifact。
- Gist Raw 地址可读取完整节点凭据。请只将它保存在受控客户端中,不要公开发布或截图分享。
- 地址或令牌泄露后,应更换机场订阅、创建新的私有 Gist,并撤销旧令牌。
- 私有 Gist 依赖“持有链接即可访问”的模式,适合低暴露场景;需要更严格访问控制时请使用自建、带认证的 HTTPS 地址。
当你需要可视化管理订阅、即时生效或受认证的发布地址时,可以部署以下单向流程:
sub-store(订阅录入、过滤、重命名)
→ subconverter(规则应用与格式转换)
→ 私有 Gist 或受认证 HTTPS 地址
→ Clash Meta / Mihomo 客户端
subconverter 默认服务端口为 25500。建议将服务放在反向代理后的内网环境,入口启用 HTTPS 和身份认证;订阅与令牌使用环境变量保存,备份配置和数据,日志仅保留脱敏状态。
如果曾使用公共转换站,建议按以下顺序迁移:Fork 本仓库 → 配置 Actions secrets 与私有 Gist → 手动运行工作流 → 在客户端导入 Gist Raw 地址 → 确认节点和策略组正常更新 → 从旧服务撤销订阅记录。
providers/ 个人规则 payload 数据源
config/subconverter.ini 转换规则、策略组、过滤与重命名
config/clash-meta.yaml 可直接导入的原生 Clash Meta 模板
scripts/publish-config.sh 经公共转换服务聚合订阅、校验并发布到 Gist
scripts/validate-config.* 离线配置一致性校验
requirements-dev.txt 本地校验所需的 Python 依赖
tests/ 原生模板与校验命令的回归测试
.github/workflows/ 定时与手动发布工作流
- 2026-08:移除旧网页转换、旧规则文件和 Surge/Stash 附加模块,改为 Clash Meta + GitHub Actions + 私有 Gist 工作流。