Clash 规则集(rule-providers)远程规则订阅怎么用

如果你的 rules 里手写了几百行域名,那真的没必要。规则集(rule-providers)允许你引用一份维护好的远程规则列表——比如"全部国内域名""全部广告域名"——配置文件瞬间清爽,规则还能自动更新。这篇讲清它怎么定义、怎么被规则引用。

为什么要用规则集

手写规则有两个痛点:列表长得离谱、网站变了你得自己改。规则集把"一类域名/IP"打包成一个文件挂在远程,你在 rules 里用一行 RULE-SET 引用它,并指定命中后走哪个策略组。列表由维护者更新,你这边自动同步。

远程规则集 cn-domains.yaml ads.yaml … 几千条域名 定时拉取 rule-providers 起个名字 cn behavior / interval 被引用 rules RULE-SET, cn,DIRECT

引用关系图远程列表 → 在 rule-providers 里登记 → rules 用 RULE-SET 引用。

三种 behavior 怎么选

behavior 告诉内核这份列表是什么格式,选错会解析失败:

behavior列表内容典型用途
domain纯域名清单国内域名、流媒体域名
ipcidrIP 段清单中国大陆 IP、内网段
classical带类型前缀的混合规则DOMAIN/IP/PROCESS 混写

另外 format 可选 yamltext,要和远程文件实际格式对上。现在也支持二进制 .mrs 格式,体积更小、加载更快,behavior 仍照内容选。

定义与引用(完整片段)

rule-providers:
  cn:
    type: http
    behavior: domain
    format: yaml
    url: "https://example.com/cn-domains.yaml"
    path: ./ruleset/cn.yaml
    interval: 86400
  ads:
    type: http
    behavior: domain
    url: "https://example.com/ads.yaml"
    path: ./ruleset/ads.yaml
    interval: 86400

rules:
  - RULE-SET,ads,REJECT        # 命中广告域名直接拒绝
  - RULE-SET,cn,DIRECT         # 命中国内域名走直连
  - MATCH,节点选择              # 其余走代理策略组

url 换成你信任的规则源即可。规则的匹配是从上到下、命中即停,所以顺序很重要——这点和手写规则一致,详见 自定义分流规则

更新间隔与缓存

interval 单位是秒,86400 就是一天一更。规则集会缓存到 path 指定的本地文件,断网时用缓存,不至于一断网规则就失效。改完配置记得在客户端里手动触发一次更新或重载。

常见坑

  • behavior 和文件内容不符:报解析错误。先确认远程列表是域名、IP 还是混合格式。
  • 拉不到规则集:和订阅一样,可能是更新时走了不通的代理,参考 订阅更新失败排查
  • 规则不生效:检查 RULE-SET 这行是否被前面更宽泛的规则提前命中了。
来源要可信:规则集决定了你的流量怎么分流,用来路不明的规则源有被植入异常规则的风险。尽量用知名开源规则项目。

先把客户端装上

规则集是 Mihomo 内核特性,到下载中心装好任一主流客户端即可使用。

前往 Clash 下载中心
⚠️ 免责声明:本文为开源软件使用教程,本站不提供任何节点、VPN 或机场服务。请遵守所在地区法律法规,合理合法使用网络工具。