进阶

Clash 规则分流详解:把 rules 写明白的实用思路

如果说节点是 Clash 的"四肢",那规则(rules)就是它的"大脑"。同样一批节点,规则写得好不好,直接决定了你的上网体验是顺畅精准,还是处处别扭。这篇文章不堆砌晦涩术语,而是带你理清规则的工作机制,并给出一套可以直接复用的编排思路。

规则是怎么匹配的?

记住一句话:规则自上而下逐条匹配,命中即停止。Clash 会拿当前连接的目标,从第一条规则开始依次比对,一旦某条规则命中,就立刻按它指定的策略执行,后面的规则不再看。

这个机制带来一个重要推论:顺序决定一切。把更"具体"的规则放在前面,更"宽泛"的放在后面;否则宽泛的规则会提前命中,让后面的具体规则永远轮不到。这是新手最容易踩的坑。

一条规则长什么样?

每条规则的基本格式是 类型,匹配值,策略。比如 DOMAIN-SUFFIX,google.com,PROXY 的意思是:凡是以 google.com 结尾的域名,都走名为 PROXY 的策略组。这里的"策略"可以是某个策略组、某个具体节点,也可以是内置的 DIRECT(直连)或 REJECT(拒绝)。

常用规则类型速查

类型说明示例
DOMAIN完整域名精确匹配DOMAIN,www.google.com,PROXY
DOMAIN-SUFFIX域名后缀匹配(最常用)DOMAIN-SUFFIX,google.com,PROXY
DOMAIN-KEYWORD域名包含关键词DOMAIN-KEYWORD,google,PROXY
IP-CIDRIP 网段匹配IP-CIDR,192.168.0.0/16,DIRECT
GEOIP按国家/地区匹配 IPGEOIP,CN,DIRECT
PROCESS-NAME按进程名匹配PROCESS-NAME,Telegram,PROXY
MATCH兜底,匹配所有剩余流量MATCH,PROXY

其中 DOMAIN-SUFFIX 使用频率最高,因为它能用一条规则覆盖一个域名下的所有子域名。而 MATCH 是"兜底规则",永远放在最后一行,负责处理前面所有规则都没命中的流量。

一套经典的规则编排顺序

实战中,推荐按"从私有到公有、从具体到宽泛"的顺序组织规则:

  1. 局域网与私有地址:用 IP-CIDR 把内网地址直连,避免代理本地设备;
  2. 需要拒绝的域名:广告、追踪类用 REJECT 直接屏蔽;
  3. 明确要走代理的服务:用 DOMAIN-SUFFIX 把海外服务指向代理;
  4. 明确要直连的服务:国内常用站点用 DOMAIN-SUFFIX 指向直连;
  5. 按地理位置兜底GEOIP,CN,DIRECT 把剩余的国内 IP 直连;
  6. 最终兜底MATCH 把其它所有流量交给代理。
rules 示例
rules:
  - IP-CIDR,192.168.0.0/16,DIRECT
  - DOMAIN-KEYWORD,ad,REJECT
  - DOMAIN-SUFFIX,google.com,PROXY
  - DOMAIN-SUFFIX,bilibili.com,DIRECT
  - GEOIP,CN,DIRECT
  - MATCH,PROXY

规则集(rule-providers):更省心的做法

逐条手写规则既费力又难维护。社区里有大量现成的规则集(rule-providers),把成百上千条规则打包成一个可远程更新的文件,你只需引用它,并定期自动更新即可。比如把"国内域名集合""广告屏蔽集合"分别引入,再用少量规则指定它们的走向,配置会清爽很多,也更易维护。

调试规则的小技巧

REJECT 与广告屏蔽

规则的策略除了直连和代理,还有一个很实用的 REJECT,意思是直接拒绝这个连接。它最常见的用途就是屏蔽广告与追踪域名:当某个广告域名命中 REJECT 规则时,请求会被直接掐断,页面里的广告位自然就加载不出来,既清爽又省流量。配合社区维护的广告域名规则集一起使用,去广告的效果尤其明显。

规则与策略组的配合

规则里指定的"策略",很多时候并不是直接写某个具体节点,而是写一个策略组的名字。这样做的最大好处是解耦:规则只负责回答"这类流量交给哪个组",而具体用组里的哪个节点,由你在界面上随时切换。举个例子,你可以建一个名为"流媒体"的策略组,把相关规则统统指向它,之后想换节点时只需在这个组里点一下,所有流媒体流量就一起切换了,完全不必逐条去改规则。

新手常见的错误示范

最典型的错误就是顺序写反。比如把 GEOIP,CN,DIRECTMATCH 放到了某条具体代理规则的前面,结果流量提前被这条宽泛规则命中,那条本该生效的具体规则永远轮不到,表现出来就是"明明写了规则却不起作用"。请牢记:越具体的越靠前,兜底的永远放最后。另一个高频问题是缩进错误——YAML 对缩进极其敏感,多一个空格或少一个空格,都可能导致整份配置加载失败。

小结

规则的核心就八个字:顺序在前,具体优先。先排好"私有 → 拒绝 → 代理 → 直连 → 兜底"的骨架,再借助规则集填充细节,你的分流就能既精准又好维护。想看每种规则类型的完整说明,可查阅 使用文档 · 规则类型速查

规则这套东西,看懂原理之后其实并不难,真正难的是耐心地把它打磨到贴合自己的使用习惯。建议你从一份成熟的模板规则起步,再根据日常遇到的"该走代理却直连了""该直连却绕了代理"等情况逐步微调,几次之后,你的规则就会越来越顺手、越来越懂你。规则是 Clash 里最值得花时间的部分,一旦理顺,长期都能受益。


继续阅读