Clash Verge Rev规则不生效怎么办?按连接记录快速排查
简答:Clash Verge Rev规则不生效时,不要先改YAML:先确认当前配置已激活并处于Rule模式,再到Connections查看目标请求是否出现、命中了哪条规则以及最终出口。无连接记录通常是系统代理或TUN未接管;显示DIRECT、REJECT或错误代理组,则重点检查规则顺序、策略组名称和DNS。
定义:Clash Verge Rev规则分流,是由Mihomo按照配置中的规则从上到下匹配请求,并将请求交给DIRECT、REJECT或已存在的代理策略组。
先做这4步:用Connections判断到底是哪一环失效
先不要同时修改规则、DNS和TUN。按照“配置是否生效—请求是否被接管—命中哪条规则—最终走哪条出口”的顺序检查,通常比反复刷新网页更快定位。
| 观察结果 | 说明 | 下一步 |
|---|---|---|
| 没有连接记录 | 目标应用的请求没有进入Clash Verge Rev,或测试动作没有真正产生网络请求。 | 先检查系统代理;需要接管不遵循系统代理的应用时,再检查TUN和服务权限。 |
| 命中DIRECT | 当前规则把请求分配到直连,未必代表客户端故障。 | 检查是否有更靠前的DOMAIN、DOMAIN-SUFFIX、RULE-SET或MATCH规则提前命中。 |
| 命中REJECT | 请求被规则拒绝。 | 检查广告、拦截或自定义拒绝规则,并暂时停用相关规则做对照。 |
| 命中代理组但超时 | 规则可能已经生效,问题转移到代理组、节点或连接本身。 | 在同一代理组内切换一个已知可用节点,再重复同一请求。 |
| 命中规则但出口不对 | 规则匹配了,但第三列策略名称或代理组选择不是预期结果。 | 核对策略名称是否与当前配置完全一致,并检查策略组当前选择。 |
- 在Profiles中确认目标订阅是当前正在使用的配置,不要只编辑了未激活的配置。
- 在Proxies中确认模式为Rule,而不是Global或Direct。Rule按规则匹配;Global使用全局策略;Direct绕过代理。
- 打开System Proxy并访问一个确定会产生请求的页面,再到Connections按时间或域名查找记录。
- 记录Rule、策略组和最终出口;修改后关闭旧连接,重新发起一次请求,只比较新的记录。
Clash Verge Rev文档说明,系统代理只覆盖遵循操作系统代理设置的应用;Connections可用于确认请求是否进入客户端及最终路由。查看配置文件与代理模式说明
有连接记录但规则不命中:先查顺序、写法和MATCH
Mihomo规则从上到下匹配,靠前规则优先级更高;MATCH会匹配所有未被前面规则处理的请求。因此,自定义规则如果放在过宽的规则后面,或者放在MATCH之后,通常不会按预期生效。查看Mihomo规则类型与匹配顺序
常见写法可以按下面的范围选择:
- DOMAIN:精确匹配一个域名,例如
DOMAIN,api.example.com,代理组名。 - DOMAIN-SUFFIX:匹配域名后缀,例如
DOMAIN-SUFFIX,example.com,代理组名,可覆盖主域名及其子域名。 - DOMAIN-KEYWORD:匹配域名中包含的关键词,范围更宽,误匹配可能性也更高。
- IP-CIDR:目标已经表现为IP地址或确实需要按地址段匹配时使用;不要把域名直接填进IP-CIDR。
- MATCH:兜底规则,应放在规则列表末尾附近,不要把需要优先处理的自定义规则放在它之后。
域名规则填写域名本身,不要写https://、路径或端口。假如Connections显示的真实请求是api.example.com,优先用该实际域名测试,而不是凭网页首页猜测。一个网页可能同时请求登录接口、静态资源、CDN和API,首页能打开不代表所有请求都命中了同一规则。
修改后必须重新加载配置并重新发起请求。仅在编辑器里看到规则文字,不代表它已经进入Mihomo运行时配置;应以新的Connections记录中的Rule和最终出口为准。
自定义规则怎么加才不会被订阅更新覆盖
不要直接改远程订阅缓存文件。订阅刷新时,远程配置可能被重新下载,直接写入的内容会丢失。Clash Verge Rev用户指南区分了Remote、Local、Script和Merge等配置类型,并说明增强配置会参与主配置处理。查看Clash Verge Rev用户指南
- 打开Profiles,找到当前正在使用的订阅卡片。
- 右键该订阅,优先使用与规则编辑相关的入口,添加前置规则。
- 选择正确的规则类型,填写Connections中观察到的域名或IP,再选择当前配置中真实存在的代理组,或选择DIRECT、REJECT。
- 保存后刷新或重新激活配置,关闭旧连接,再重复原来的访问动作。
- 在Connections中确认新请求命中了新增规则,并且最终出口符合预期。
策略组名称必须完全一致,包括大小写、空格和符号。规则第三列不能随意写一个不存在的名称;如果组名来自订阅,更新后还可能发生变化,所以每次订阅更新后都应重新确认当前配置中的实际名称。
旧教程中常见的prepend-rules写法不能直接当作所有版本的通用操作。Clash Verge Rev项目仓库曾记录过该字段在扩展配置中未按预期插入运行规则的问题,因此应优先以当前版本的规则编辑入口和运行时Connections结果为准。查看相关项目问题记录
没有连接记录:区分系统代理、TUN和应用本身
如果Connections完全没有新记录,先不要判断“规则失效”。更常见的边界是请求根本没有进入客户端。
- 浏览器有记录,终端或其他应用没有记录:该应用可能不遵循系统代理设置。可以先为应用单独配置代理;如果确实需要接管更多系统流量,再检查TUN是否启用。
- 浏览器也没有记录:确认System Proxy已开启,并检查系统代理地址是否指向当前客户端端口;同时退出其他可能改写系统代理的网络工具。
- TUN无法开启:检查客户端是否需要服务模式、管理员权限或系统网络权限。不同系统的菜单名称和权限要求可能不同,不要把Windows步骤直接套到macOS或Linux。
- 只有某个网页功能失败:回到Connections查看实际失败的域名。登录、播放、验证码和API可能是不同域名,不能只根据首页连接结果判断。
系统代理和TUN的覆盖范围不同:系统代理主要覆盖主动遵循系统代理设置的应用,TUN用于接管更多网络流量,但通常涉及额外权限和虚拟网卡。启用TUN后,应先用Connections确认目标应用确实产生了记录,再继续判断规则。
规则命中仍然不对:再检查DNS、Fake-IP和规则集
当Connections已有记录,但域名显示异常、规则集命中不稳定或同一应用出现不同出口时,才进入DNS和规则集检查。不要一开始就大范围修改DNS配置。
- 确认目标请求显示的是域名还是IP。若请求只显示IP,单纯增加DOMAIN规则可能无法覆盖该请求,需要继续检查DNS、嗅探或应用连接方式。
- 如果使用IP-CIDR规则,先确认地址段确实对应目标服务;
no-resolve用于跳过目标IP规则触发的DNS解析,应按当前配置和实际需求使用,不是所有域名规则都要添加。 - 检查Rule Provider是否更新成功、名称是否与
RULE-SET引用一致,以及规则集的behavior和format是否与文件格式匹配。Mihomo文档列出了HTTP、file、inline等provider类型及domain、ipcidr、classical等行为类型。查看Mihomo rule-provider说明 - 临时停用一条可疑的规则集或DNS覆写,重新发起同一请求。一次只改一个变量,避免无法判断是哪项修改产生影响。
- 如果修改后仍无变化,重新激活当前配置并清理旧连接;以新的Connections记录作为验证边界。
Fake-IP、DNS覆写、GEO数据和远程规则集的实际字段支持取决于当前Mihomo核心、客户端版本及配置合并方式。本文不把某个字段写成所有版本都适用;遇到配置报错时,应先恢复最近一次可工作的配置,再按当前核心文档逐项添加。
一份可回滚的最短排查清单
- 备份:先保留当前能启动的配置,不要直接覆盖原订阅文件。
- 基础检查:确认当前订阅已激活、模式为Rule、代理组和节点可见。
- 最小操作:打开System Proxy,只测试一个浏览器请求。
- 观察结果:在Connections记录域名、Rule、策略组和最终出口。
- 现象分流:无记录查接管;DIRECT或REJECT查规则顺序;代理组超时查节点;域名异常再查DNS和Fake-IP。
- 回滚:每次只保留一个改动。若配置无法加载,停用最近添加的规则、规则集或扩展配置,恢复到上一份可工作的配置。
验证标准应保持克制:浏览器能打开,只能证明这一次请求成功;连接记录出现,只能证明请求进入客户端;单次访问成功,也不能推出长期稳定性。要确认规则真正生效,至少应在修改前后对同一请求比较Rule和最终出口。
常见问题
Clash Verge Rev全局模式能用,Rule模式不能用,怎么办?
Global模式主要用于验证当前选择的代理策略或节点是否能建立连接,Rule模式则依赖规则列表。先在Rule模式下打开Connections,确认请求命中了哪条规则;如果显示DIRECT、REJECT或错误代理组,再按顺序检查规则优先级、MATCH位置和策略组名称。
为什么我添加了DOMAIN-SUFFIX规则,网页还是直连?
先确认填写的是域名而不是带有协议、路径或端口的URL,再确认规则位于会提前命中的规则之前,并且第三列填写的是当前配置中真实存在的策略组。修改后要重新加载配置、关闭旧连接,再产生一条新请求验证。
直接修改订阅里的rules为什么过一会儿又失效?
远程订阅更新可能会重新下载并覆盖原配置。更稳妥的做法是使用当前激活订阅的规则编辑入口或其他受当前版本支持的增强配置,将自定义规则放在订阅规则之前,并在更新后重新检查Connections。
规则页面里能看到规则,是否代表规则已经生效?
不代表。规则列表只说明配置中存在该文本,不能证明目标请求命中了它。应以Connections中新发起请求的Rule、策略组和最终出口为准;如果没有连接记录,则先解决流量未进入客户端的问题。
需要为了规则不生效马上打开TUN吗?
不需要。先用System Proxy测试浏览器等遵循系统代理的应用,确认基础请求能进入Connections。只有目标应用不遵循系统代理,或确实需要接管更多系统流量时,才继续检查TUN、服务模式和系统权限。
相关阅读
参考资料
- Clash Verge Rev User Guide(clashvergerev.com)
- Mihomo Route Rules Documentation
- Mihomo Rule Provider Documentation
- Clash Verge Rev issue: prepend-rules in merge configuration