CLASH 官网 · clashoffice.com
    配置技巧 2026-06-10 · 6 分钟阅读

    用 rule-providers 让分流规则自动更新,不用手动改配置

    如果你的 rules 字段已经堆到几十条甚至上百条,每次想加一个域名都要手动编辑文件,那是时候了解一下 rule-providers 了——它能把规则集托管成远程文件,客户端定时拉取即可。

    手写 rules 的问题在哪

    直接在 rules 里逐条写 DOMAIN-SUFFIXIP-CIDR 没有问题,但当规则数量上升到成百上千条(例如想精确区分「境内网站直连、境外网站代理」)时,会遇到两个麻烦:配置文件变得臃肿难以维护;规则本身需要持续更新(新增域名、修正误判),手动同步很容易遗漏。

    rule-providers 解决了什么

    rule-providers 把一整批规则托管成一个独立文件(本地或远程 URL),主配置里只需要引用它的名字,并设置一个更新间隔,客户端会按周期自动重新拉取,规则内容更新时你什么都不用做。

    # config.yaml 片段:定义一个规则集 rule-providers: reject: type: http behavior: domain url: "https://example.com/rules/reject.txt" path: ./rules/reject.yaml interval: 86400 # 在 rules 里引用它 rules: - RULE-SET,reject,广告拦截 - MATCH,节点选择

    behavior 字段决定规则格式

    • domain:规则集内容是域名列表,逐行一个域名或域名后缀。
    • ipcidr:规则集内容是 IP 段列表,逐行一个 CIDR。
    • classical:规则集内容可以是完整的匹配语法(和 rules 字段写法一致),最灵活但体积也最大。

    interval 决定多久拉取一次

    单位是秒,86400 就是 24 小时更新一次。规则集本身通常变化不会太频繁,设成每天或每几天更新一次即可,没必要设得过短,避免给规则集的服务器造成不必要的压力。

    常见用法:广告拦截 + 区域直连

    比较典型的组合是准备两个规则集:一个用于拦截广告与追踪域名(命中后指向 REJECT),一个用于识别境内网站与 IP 段(命中后指向 DIRECT),剩下的流量全部走代理策略组,这样只需要维护两份规则集,就能覆盖绝大多数分流需求。

    小提示:规则集文件本质就是纯文本,你完全可以自己维护一份放在自己的服务器或任意静态托管上,格式对应上 behavior 即可,不必依赖任何第三方服务商。

    多个规则集如何组合使用

    实际配置里往往不止一个规则集,常见的组合是:广告拦截规则集放在最前面优先判断,接着是境内直连规则集,然后才是各个代理策略组对应的分流规则,最后用 MATCH 兜底。rules 字段是自上而下逐条匹配的,命中即停止,所以顺序非常重要——如果把「全部走代理」的规则放在最前面,后面所有更精细的规则集都不会再被检查到。

    # 规则匹配顺序示例 rules: - RULE-SET,reject,广告拦截 - RULE-SET,direct,节点选择 - RULE-SET,proxy,节点选择 - MATCH,节点选择

    可以把这个顺序理解为「先排除、再兜底」:先处理明确要拦截或明确要直连的流量,剩下没被前面规则覆盖到的,才交给最后的 MATCH 走默认策略组。

    规则集的更新与迁移注意事项

    规则集文件下载后会缓存在 path 指定的本地路径,即便暂时断网,客户端依然能用上一次缓存的版本继续工作,不会因为拉取失败而导致规则全部失效。如果你换了设备或者重装了客户端,记得把 path 对应的缓存目录一起迁移过去,否则首次启动时会重新触发一次远程下载,网络不佳时可能会有短暂的规则缺失。

    另外,不同规则集之间的 behavior 必须与其内容格式匹配——用 domain 声明却提供了 classical 格式的内容会导致解析失败,客户端一般会在日志里给出明确的报错提示,修改后重启或等待下一次 interval 到期即可生效。

    小结

    rule-providers 把「规则内容」和「规则引用」拆开了:内容可以独立更新、独立维护,主配置文件只保留引用关系,长期来看会比一份几百行的 rules 列表清爽得多,也更方便多台设备共用同一套规则。

    看完就去试试?

    五大平台安装包都已在下载页列出,跟着教程页的步骤走一遍即可用上。

    前往下载页
    返回博客列表
    还没下载 Clash?点击前往官方下载页