跳到主内容
机场工具箱
报错解释 机场工具箱 编辑部

rules 最后为什么一定要写 MATCH,不写会怎样

MATCH 是 Clash 规则列表的兜底项,决定没有命中任何规则的流量走哪里。不写它不一定报错,但会导致「大部分网站正常、个别网站莫名其妙不走代理」这类难查的问题。本文说明它的作用、白名单与黑名单两种写法,以及规则顺序为什么重要。

发布:2026 年 7 月 19 日 约 2 分钟读完
本文目录(7 节 · 约 2 分钟) +
  1. 01 规则是从上往下逐条匹配的
  2. 02 不写 MATCH 会发生什么
  3. 03 两种写法对应两种思路
  4. 04 FINAL 和 MATCH 是一回事吗
  5. 05 顺带说规则顺序的另外两个坑
  6. 06 检查你的规则
  7. 07 小结

一句话结论:MATCH 匹配所有前面没命中的流量,是规则列表的最后一道兜底。 不写它,未命中的流量走什么策略取决于客户端的默认行为,而不同客户端的默认值不一样——这就是「同一份配置在两个客户端上表现不同」的常见来源。

规则是从上往下逐条匹配的

Clash 的 rules 是有序列表,一条流量进来后从第一条开始比对,命中第一条就停止,不再往下看。

rules:
  - DOMAIN-SUFFIX,google.com,节点选择
  - DOMAIN-SUFFIX,github.com,节点选择
  - GEOIP,CN,DIRECT
  - MATCH,节点选择

访问 google.com 时命中第一条,走「节点选择」;访问一个国内 IP 时前两条不匹配、第三条命中,直连;访问一个既不在前三条范围内的地址时,前三条都不命中,落到 MATCH 上。

MATCH 的匹配条件是「什么都匹配」,所以它必须放在最后。放在中间的话,它后面的所有规则永远不会被执行到——这是个静默的错误,配置能跑,但一部分规则形同虚设。

不写 MATCH 会发生什么

不一定报错。多数客户端会用一个内置默认值兜底,但这个默认值:

  • 各客户端不一致(有的默认直连,有的默认走全局策略)
  • 同一客户端的不同版本也可能变
  • 通常不会在界面上明示

结果就是一类很难查的问题:大部分网站正常,某几个网站行为诡异。因为常用网站都被前面的规则覆盖了,只有那些没被任何规则命中的冷门域名,才会掉进这个不确定的兜底里。

更麻烦的是这类问题往往不稳定复现——换个网络环境、换个客户端版本,表现就变了。

两种写法对应两种思路

白名单模式:默认走代理

rules:
  - GEOIP,CN,DIRECT
  - DOMAIN-SUFFIX,cn,DIRECT
  - MATCH,节点选择

意思是「国内的直连,其余全部走代理」。适合主要用途是访问境外服务的人。缺点是国内一些用了境外 CDN 的服务可能被误判走代理,反而变慢。

黑名单模式:默认直连

rules:
  - DOMAIN-SUFFIX,google.com,节点选择
  - DOMAIN-SUFFIX,youtube.com,节点选择
  - MATCH,DIRECT

意思是「只有列出来的走代理,其余全部直连」。适合只想让特定几个服务走代理的人,对国内访问零影响。缺点是要自己维护清单,漏了的网站就不走代理。

机场提供的订阅配置绝大多数是白名单模式,因为对普通用户来说「能上就行」比「精确控制」重要。

FINAL 和 MATCH 是一回事吗

在 Clash 系配置里,FINALMATCH 的旧写法,作用相同。新配置一律用 MATCHFINAL 只在很老的配置里还能见到。如果你的配置里两个都有,那是拼接配置时留下的重复兜底——后面那条永远不会执行。

顺带说规则顺序的另外两个坑

一、把宽泛的规则放在了具体规则前面

rules:
  - GEOIP,CN,DIRECT
  - DOMAIN-SUFFIX,example.cn,节点选择   # ← 永远不会命中
  - MATCH,节点选择

如果 example.cn 解析到国内 IP,第一条 GEOIP,CN 就把它拦下直连了,第二条根本轮不到。规则要按「从具体到宽泛」排列。

二、GEOIP 规则会触发 DNS 解析

GEOIP 判断的是 IP 归属地,而请求里给的往往是域名,所以客户端必须先把域名解析成 IP 才能判断。这意味着 GEOIP 规则之前的所有域名类规则应该尽量把常用域名拦住,否则会产生大量额外的 DNS 查询,也可能因为 DNS 污染导致判断错误。

检查你的规则

把配置粘进配置校验器,它会检查:rules 最后一条是不是 MATCH、每条规则的字段数是否足够(GEOIP,CN 这样少了策略名的写法会被指出来)、以及每条规则指向的策略组是否真实存在。

工具在浏览器本地运行,配置不会上传。

小结

  • MATCH 是兜底,必须在最后一条
  • 不写它不一定报错,但会导致难查的偶发问题
  • MATCH,DIRECT 是黑名单思路,MATCH,策略组 是白名单思路
  • 规则从具体到宽泛排列,宽泛的放前面会让后面的规则失效

照着做一遍,比再看十篇都有用

先挑好客户端,遇到连不上再回来排查。

相关文章

配置报错、链接看不懂?粘进来看一眼

不用注册、不用填订阅地址,把出问题的配置或看不懂的节点链接直接粘进对应工具,结果当场显示。全部计算在你的浏览器里完成,粘贴的内容不会上传到任何地方——页面加载完之后断网,工具照样能用。