Clash Verge Rev 规则冲突怎么解决?
简答:改了 YAML 仍走错线路时,先别继续堆规则:打开连接面板确认命中项。命中 MATCH 通常先查顺序,命中正确但出站错误要查策略组,订阅更新后规则消失要改用 prepend 或扩展配置;只有这些都正常,再单变量检查 DNS、Fake-IP 与 TUN。
定义:Clash Verge Rev 规则冲突,是指同一请求可能符合多条分流条件,但因规则先后、规则集、策略组或 DNS 处理方式不同,最终结果与预期不一致。
先用 30 秒速查卡定位,不要立即重写 YAML
改了规则却仍然走错线路时,先打开 Clash Verge Rev 的连接面板或日志页面,重新访问同一个域名,记录命中规则、策略组和最终出站。以下判断只改变一个变量,避免把规则、节点和 DNS 同时改乱。
| 连接面板现象 | 优先检查 | 下一步 | 判定标准 |
|---|---|---|---|
命中 MATCH | 规则顺序、规则是否合并 | 查看运行时配置,把精确规则放到宽泛规则和 MATCH 前面 | 重新访问后命中目标规则,而不是 MATCH |
| 命中规则正确,但出站错误 | 代理组当前选择 | 手动固定一个已知可用节点 | 规则、策略组和最终节点三项一致 |
| 订阅更新后自定义规则消失 | 是否直接修改了订阅缓存 | 使用“编辑规则”或扩展配置,并优先使用 prepend | 更新订阅后,自定义规则仍出现在运行时配置中 |
| 关闭 TUN 后结果改变 | DNS、Fake-IP、TUN 或其他代理软件 | 保持规则和策略组不变,只对照 TUN 状态 | 只有 TUN 开关变化时结果稳定改变 |
- 清理或关闭当前旧连接,重新访问同一个完整域名。
- 在连接面板记录目标域名、命中规则类型、策略组和最终出站。
- 只修改一项,例如只移动规则顺序,再重新访问。
- 将修改前后的连接记录对照,确认到底是哪一层发生变化。
Clash Verge Rev 的界面字段和入口会随版本、语言与系统变化。官方仓库的界面字段包含编辑规则、编辑代理组、扩展配置和扩展脚本等功能,具体入口以当前安装版本显示为准,可参考Clash Verge Rev 官方仓库界面字段。
先确认运行时配置:编辑器里有规则,不代表核心已经使用
排查规则冲突时,不能只看编辑器中的文字。应在当前订阅卡片的右键菜单或相关配置菜单中寻找“运行时配置”“查看配置”或相近名称,入口以当前版本界面为准,然后搜索目标域名、规则行或自定义标记。
Windows、macOS 和 Linux 的配置文件目录可能不同,因此不要直接套用其他系统的路径。优先使用客户端提供的运行时配置入口;如果当前版本没有明显入口,可在连接面板观察实际命中结果。macOS 用户在官方仓库用户 Issue 中可以看到一个具体的运行时配置文件路径示例,但该路径只适用于对应系统和安装方式,不能当作 Windows 或 Linux 的通用路径,详情见官方仓库中的用户 Issue #7875。
可用一个不会影响真实访问的唯一标记做核对,例如先在规则编辑器中加入一条测试规则,再激活当前订阅,检查运行时配置中是否出现该标记。若编辑器中有、运行时配置中没有,优先怀疑合并入口或版本问题;若运行时配置中有但连接面板不命中,再查规则顺序。
Issue #7875 明确描述的是 Clash Verge Rev v2.5.2 中订阅“编辑规则”卡片未参与运行时合并的用户报告,并提到降级到 v2.5.1 后恢复。它是针对特定版本的官方仓库用户 Issue,不代表所有版本都会出现同一问题。遇到类似现象时,应先核对自己安装的版本,再考虑切换到客户端已有的扩展配置机制,而不是直接断定规则写错。
规则顺序怎么修:精确规则放前面,MATCH 必须兜底
Mihomo 的规则按列表从上到下检查,MATCH 会匹配前面没有命中的请求。官方规则文档还说明,涉及目标 IP 的规则在进行域名匹配时可能触发 DNS 解析;加入 no-resolve 可以跳过这一步,适用于不希望该条 IP 类规则触发解析的场景,详见Mihomo 官方路由规则文档。
常见顺序可以理解为:单个域名或明确后缀规则,之后是规则集或较宽泛规则,再之后是 GEOIP,最后是 MATCH。下面只演示两种域名规则的写法,实际配置时通常二选一,不需要同时保留:
prepend:
- 'DOMAIN,example.com,Proxy'
prepend:
- 'DOMAIN-SUFFIX,example.com,Proxy'
DOMAIN 只针对一个完整域名;DOMAIN-SUFFIX 覆盖该域名及其子域名。若你只想处理 api.example.com,不要直接写成过宽的后缀;若需要覆盖多个子域名,再选择后缀规则。目标代理组名称必须是当前配置中真实存在的名称。
| 错误写法 | 问题 | 修正方式 |
|---|---|---|
MATCH 写在自定义规则前 | 请求已经被兜底规则提前接收 | 把自定义规则放在 MATCH 前 |
| 同时写 DOMAIN 和 DOMAIN-SUFFIX,却没有明确范围 | 规则重复,后者可能扩大匹配范围 | 按目标范围二选一 |
| 策略组名称写成不存在的名称 | 规则可能无法按预期交给目标组 | 从当前代理组列表复制准确名称 |
GEOIP,CN,DIRECT 放在精确域名规则前 | 目标 IP 规则可能先命中,精确域名规则无法执行 | 先放精确规则,再放 GEOIP 兜底 |
| 不需要解析却使用 IP 类规则触发解析 | 可能让 DNS 结果影响判断 | 根据需求使用 no-resolve,并单独验证 DNS |
一个更完整的前置规则示例可以写成:
prepend:
- 'DOMAIN,api.example.com,Proxy'
- 'GEOIP,CN,DIRECT,no-resolve'
上例中的 DOMAIN 与 GEOIP 是不同用途:前者处理指定域名,后者处理目标 IP 的地理分类。不要把示例中的策略组名直接照搬到不存在的配置中。
正确的可复制模板:使用 prepend,而不是顶层 rules
如果你是在订阅卡片的“编辑规则”入口中增加规则,编辑器通常使用 prepend、append、delete 这类增强结构,而不是把完整订阅配置中的顶层 rules: 原样粘贴进去。Clash Verge Rev 官方仓库的规则编辑器代码会读取并保存这些字段,示例可参考官方仓库规则编辑器实现。
可先用下面的最小模板测试。把 example.com 和 Proxy 替换成你要匹配的域名和当前配置中的真实代理组:
prepend:
- 'DOMAIN-SUFFIX,example.com,Proxy'
如果还需要删除原订阅中的某条规则,再根据当前版本编辑器生成的模板添加 delete;不要凭记忆编写删除格式。官方仓库规则编辑器当前代码同时处理 prepend、append 和 delete,但不同版本的界面入口和模板提示可能存在差异,应以编辑器自动生成的格式为准。
- 右键当前正在使用的订阅,寻找“编辑规则”或相近入口。
- 确认编辑对象是当前激活的订阅,不是其他订阅或全局配置。
- 把单条测试规则放入
prepend,先不要同时添加多条规则。 - 保存后重新激活配置,关闭旧连接,再访问目标域名。
- 在运行时配置或连接面板中确认规则是否出现并命中。
官方仓库的用户讨论也建议将自定义规则保存在独立的扩展位置,而不是直接修改下载后的订阅内容;直接修改订阅缓存,更新时可能被远端内容覆盖。该讨论还指出,规则通常从上到下匹配,因此自定义规则应放在可能提前命中的规则前面,详见Clash Verge Rev 官方仓库用户讨论。这属于用户讨论中的操作建议,不应当替代当前版本的界面提示。
命中规则正确但仍打不开:单独核对策略组和模式
规则只决定请求交给哪个策略目标,策略组再决定实际使用哪个节点。因此,连接面板显示命中自定义规则,并不等于请求已经通过你想要的节点。
- 在代理组页面找到该规则指向的策略组。
- 暂时手动固定一个已知可用节点,避免自动选择、故障转移或筛选条件干扰。
- 重新访问同一个域名,查看最终出站是否发生变化。
- 若固定节点后恢复,优先处理策略组选项或节点链路,而不是继续改规则。
也可以用模式做诊断对照:规则模式用于检查实际命中;全局模式用于验证某个代理组能否访问;直连模式用于确认本地网络是否可以直接访问。每次只切换一个模式或策略目标,并记录连接面板结果。全局模式不能证明规则已经正确,只能帮助区分“规则问题”和“指定代理组或节点问题”。
| 规则命中 | 最终出站 | 优先判断 |
|---|---|---|
| 错误或为 MATCH | 任意 | 规则顺序、规则是否合并 |
| 正确 | DIRECT | 策略组选择或规则目标填写错误 |
| 正确 | REJECT | 策略组、规则目标或订阅规则内容 |
| 正确 | 固定节点 | 节点链路、DNS、目标服务或本地网络 |
DNS、IP-CIDR、GEOIP 与 Fake-IP:规则为什么会影响解析
IP 类规则与 DNS 不是完全独立的。Mihomo 官方规则文档说明,涉及目标 IP 的规则在域名匹配开始时可能触发 DNS 解析;no-resolve 可跳过该次解析。DNS 官方文档则说明,nameserver-policy 可以为域名指定解析服务器,并支持域名通配形式,详见Mihomo 官方 DNS 配置文档。
因此,出现“规则命中正确但域名解析异常”时,应把规则和 DNS 分开测试。下面是一个结构完整的示例,域名和 DNS 地址仅作格式演示,实际值应根据你的网络和配置填写:
dns:
enable: true
nameserver-policy:
'+.example.com':
- 223.5.5.5
'geosite:cn':
- system
nameserver-policy 的具体键和值要与当前 Mihomo 内核支持的格式一致。不要同时修改规则、Fake-IP、DNS 和节点,否则无法判断是哪一项造成差异。
- 保持目标域名和策略组不变,只关闭 TUN,使用客户端代理端口或系统代理复测。
- 如果关闭 TUN 后恢复,继续检查 TUN 权限、服务模式、其他代理软件和 VPN 是否同时接管流量。
- 如果只在 Fake-IP 模式异常,只切换 Fake-IP 相关设置,其他内容保持不变。
- 如果配置了
nameserver-policy,确认目标域名是否匹配了更具体的策略,并确认指定 DNS 可被当前网络访问。 - 清理旧连接后重新访问,避免把缓存结果当成新配置结果。
Windows、macOS 和 Linux 的差异主要体现在权限、服务模式、系统代理接管方式和配置文件位置。Windows 重点检查系统代理、TUN 权限与其他代理软件;macOS 重点检查服务模式和系统网络代理;Linux 重点检查桌面环境的系统代理、TUN 权限以及是否存在其他透明代理。具体菜单和文件目录无法脱离版本与安装方式统一指定,应以当前客户端界面和运行时配置为准。
保存、重载和验证:避免改完仍在看旧连接
规则修改后,至少要完成“保存、重新激活、关闭旧连接、重新发起请求、查看命中结果”五步。只切换页面或继续复用旧连接,不能证明新规则已经执行。
- 保存:确认编辑器没有未保存提示,并检查 YAML 缩进和引号。
- 重新激活:重新选择或激活当前订阅,让扩展配置参与合并。
- 清理旧连接:关闭目标域名相关连接,避免旧连接状态干扰判断。
- 重新访问:只访问同一个完整域名,不要同时打开多个站点。
- 检查结果:在连接面板确认命中规则、策略组和最终出站。
- 更新订阅复核:手动更新一次订阅,再确认
prepend规则仍存在于运行时配置。
如果订阅更新后规则消失,优先检查是否直接编辑了下载内容,或当前编辑规则卡片是否参与了运行时合并。官方仓库曾记录 v2.5.2 的特定用户报告,因此遇到“编辑器有、运行时没有”的现象时,应先核对版本并使用运行时配置做事实判断,而不是继续增加规则数量。
最终保留一条失败记录和一条成功对照记录,至少写下:完整域名、命中规则、策略组、最终出站、规则模式或全局模式、TUN 状态、Fake-IP 状态以及 DNS 模式。这样比反复重写整份订阅更容易定位问题。
常见问题
为什么我把规则放在最后,却完全没有生效?
通常是前面已有更宽泛的规则,或者 MATCH 已经提前命中。先在连接面板确认实际命中项,再把精确的 DOMAIN 或 DOMAIN-SUFFIX 规则放到相关规则集、GEOIP 和 MATCH 之前。
订阅卡片里应该粘贴 rules 还是 prepend?
如果使用“编辑规则”这类规则增强入口,应优先按照当前编辑器生成的模板使用 prepend、append、delete 结构。顶层 rules: 是完整运行时配置中的字段,不能不加判断地原样粘贴到规则增强编辑器中。
DOMAIN 和 DOMAIN-SUFFIX 应该怎么选?
只处理一个完整域名时使用 DOMAIN;需要覆盖该域名及其子域名时使用 DOMAIN-SUFFIX。两者不必为了“保险”同时添加,应根据连接面板记录到的真实域名范围选择。
为什么规则命中了,网站还是打不开?
这不一定是规则冲突。先检查规则指向的策略组是否选中了 DIRECT、REJECT 或失效节点,再手动固定一个节点复测。若节点无误,再单独检查 DNS、Fake-IP、TUN 和目标服务。
GEOIP 规则为什么可能和 DNS 有关?
GEOIP、IP-CIDR 等目标 IP 规则可能需要先解析域名才能判断目标 IP;Mihomo 文档说明,加入 no-resolve 可以跳过该次解析。是否使用应结合实际规则需求验证,不能把它当成所有 DNS 异常的通用修复。
Windows、macOS、Linux 的排查入口一样吗?
不一定。界面语言、服务模式、TUN 权限和配置文件目录都可能不同。优先从当前版本的订阅右键菜单、连接面板和运行时配置入口操作;无法确认文件目录时,不要直接套用其他系统的路径。
常见问题
为什么我把规则放在最后,却完全没有生效?
通常是前面已有更宽泛的规则,或者 MATCH 已经提前命中。先在连接面板确认实际命中项,再把精确规则放到相关规则集、GEOIP 和 MATCH 之前。
订阅卡片里应该粘贴 rules 还是 prepend?
使用编辑规则入口时,应优先按照当前编辑器模板使用 prepend、append、delete 结构。顶层 rules 是完整运行时配置字段,不能不加判断地原样粘贴到规则增强编辑器中。
DOMAIN 和 DOMAIN-SUFFIX 应该怎么选?
只处理一个完整域名时使用 DOMAIN;需要覆盖该域名及子域名时使用 DOMAIN-SUFFIX。两者不必同时添加,应根据连接面板记录的真实域名范围选择。
为什么规则命中了,网站还是打不开?
先检查规则指向的策略组是否选中了 DIRECT、REJECT 或失效节点,再固定一个节点复测。若节点无误,再单独检查 DNS、Fake-IP、TUN 和目标服务。
GEOIP 规则为什么可能和 DNS 有关?
GEOIP、IP-CIDR 等目标 IP 规则可能需要先解析域名才能判断目标 IP;Mihomo 文档说明,no-resolve 可以跳过该次解析。是否使用应结合实际规则需求验证。
Windows、macOS、Linux 的排查入口一样吗?
不一定。界面语言、服务模式、TUN 权限和配置文件目录都可能不同。优先使用当前版本的订阅菜单、连接面板和运行时配置入口,不要直接套用其他系统的路径。