Clash 规则集(rule-providers)远程规则订阅怎么用
如果你的 rules 里手写了几百行域名,那真的没必要。规则集(rule-providers)允许你引用一份维护好的远程规则列表——比如"全部国内域名""全部广告域名"——配置文件瞬间清爽,规则还能自动更新。这篇讲清它怎么定义、怎么被规则引用。
为什么要用规则集
手写规则有两个痛点:列表长得离谱、网站变了你得自己改。规则集把"一类域名/IP"打包成一个文件挂在远程,你在 rules 里用一行 RULE-SET 引用它,并指定命中后走哪个策略组。列表由维护者更新,你这边自动同步。
引用关系图远程列表 → 在 rule-providers 里登记 → rules 用 RULE-SET 引用。
三种 behavior 怎么选
behavior 告诉内核这份列表是什么格式,选错会解析失败:
| behavior | 列表内容 | 典型用途 |
|---|---|---|
domain | 纯域名清单 | 国内域名、流媒体域名 |
ipcidr | IP 段清单 | 中国大陆 IP、内网段 |
classical | 带类型前缀的混合规则 | DOMAIN/IP/PROCESS 混写 |
另外 format 可选 yaml 或 text,要和远程文件实际格式对上。现在也支持二进制 .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 这行是否被前面更宽泛的规则提前命中了。
来源要可信:规则集决定了你的流量怎么分流,用来路不明的规则源有被植入异常规则的风险。尽量用知名开源规则项目。
⚠️ 免责声明:本文为开源软件使用教程,本站不提供任何节点、VPN 或机场服务。请遵守所在地区法律法规,合理合法使用网络工具。