跳到主内容
Clash刘备
上手教程 Clash刘备 编辑部

Clash Verge 规则配置:写了规则却不生效怎么排查

规则明明写上去了,流量还是走错路径。这篇讲清 Clash 规则不生效的几个真实原因:匹配顺序被前面的规则截胡、MATCH 兜底吃掉后续、域名规则遇上直连 IP、规则集覆盖了自定义规则,以及每种情况怎么验证。

发布:2026 年 8 月 4 日 约 2 分钟读完
本文目录(8 节 · 约 2 分钟) +
  1. 01 先确认一件事:你在规则模式吗
  2. 02 原因一:被前面的规则截胡了
  3. 03 原因二:MATCH 后面的规则永远不会执行
  4. 04 原因三:域名规则拦不住直接用 IP 的请求
  5. 05 原因四:更新订阅把你的改动覆盖了
  6. 06 原因五:改了但没重新加载
  7. 07 通用的验证手法:看日志
  8. 08 还是不对的话

写规则不难,难的是写完发现没用。这篇只讲一件事:规则加上去了但流量没按预期走,怎么找出原因。

如果你还不清楚规则、规则集、策略组分别是什么,先看 分流规则入门

先确认一件事:你在规则模式吗

全局模式下所有规则都不生效,因为全局的意思就是「不看规则,全部走代理」。同理直连模式也不看规则。

这是最常见也最容易被忽略的原因。在「代理 / Proxies」页确认当前是规则模式(Rule),再往下排查。

原因一:被前面的规则截胡了

Clash 按配置里规则的先后顺序从上往下匹配,命中第一条就停止。所以你把规则加在文件末尾,很可能永远轮不到它。

举例:配置里已经有一条覆盖面很广的规则集(比如「所有国外域名走代理」),你在它后面加一条「某个域名走直连」,那条永远不会命中——因为流量在上面那条规则集就已经被处理掉了。

验证方法:把你的规则移到规则列表的最前面,重启内核再试。如果这样就生效了,说明问题确实是顺序。

正确做法:自定义规则要放在规则集之前,而不是追加在末尾。

原因二:MATCH 后面的规则永远不会执行

规则列表最后通常有一条 MATCH,策略组FINAL,策略组,意思是「以上都没命中的,全部按这个走」。

它是兜底规则,必须在最后一行。写在它后面的任何规则都是死代码——MATCH 会匹配一切,不可能漏到后面。

检查你的自定义规则是不是不小心加到了 MATCH 下面。

原因三:域名规则拦不住直接用 IP 的请求

DOMAIN-SUFFIXDOMAIN-KEYWORD 这类规则只在流量带着域名过来时才可能命中。如果程序直接向 IP 发起连接(不做 DNS 解析),域名规则一条都匹配不上,最后落到 MATCH 兜底。

这也是为什么有些软件「明明加了域名规则还是走错」。

处理办法:改用 IP-CIDR 按 IP 段匹配,或者对该程序用 PROCESS-NAME 按进程名匹配(部分平台支持)。IP-CIDR 规则如果不希望触发 DNS 解析,注意 no-resolve 参数的位置。

原因四:更新订阅把你的改动覆盖了

这是最容易反复踩的一条。 你直接改了订阅拉下来的那份配置文件,然后点了「更新订阅」——服务商那份配置重新下载,你的改动没了。

订阅配置是服务商的文件,不是你的。要让自定义规则活下来,用客户端提供的覆写 / Merge / Script 之类的机制,把你的规则单独放一份,由客户端在每次加载时合并进去。具体入口各客户端叫法不同,Clash Verge Rev 在订阅卡片的右键菜单里。

判断是不是这个原因很简单:改完立刻生效、更新一次订阅就失效,那就是它。

原因五:改了但没重新加载

有些改动需要重启内核才会读取。改完配置后:

  1. 手动切换一次订阅配置,或者
  2. 完全退出客户端再启动

不确定的话,看客户端日志里有没有重新加载配置的记录。

通用的验证手法:看日志

上面五种情况都可以用同一个办法确认——打开客户端的日志面板,然后访问目标网站,日志会显示这条连接匹配到了哪条规则、走了哪个出站。

这比反复猜测有效得多。日志里显示的匹配规则和你期望的不一致,就能立刻定位是顺序问题还是规则类型问题。

还是不对的话

其余现象在 报错排查索引 里按现象归了类。

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

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

相关文章

第一次用 Clash?先挑客户端,再照教程走一遍

按你的系统在客户端库里挑一款(新手基本就是 Verge Rev / CMFA / Karing),照「新手入门」把订阅导入、模式选对、需要时再开 TUN。遇到连不上就翻报错排查,十有八九是模式或时间的小问题。