Bocchi

Clash Verge 配置规则:添加自定义规则、优先级与生效排查

更新于 2026-10-31 · bocchi.icu

简答:在 Clash Verge Rev 中,通常应右键订阅配置并选择“编辑规则”,把自定义规则放在前置规则中,再确认规则目标使用的是订阅里真实存在的代理组名称。规则按从上到下匹配,第一条命中后停止,MATCH 必须放在最后。本文为第三方使用指南,不代表相关项目官方。

定义:Clash Verge 配置规则,就是用域名、IP、端口或进程等条件,把流量分别交给 DIRECT、REJECT 或指定代理组处理。

先试这一步:5 步添加并验证自定义规则

  1. 先备份当前订阅配置,避免规则写错后难以回滚。
  2. 在配置文件列表中右键目标订阅,选择“编辑规则”;官方文档说明,这里的规则不会因为订阅更新而失效,具体入口可参考Clash Verge Rev 自定义规则文档。
  3. 优先选择“前置规则”添加自定义内容。前置规则会排在订阅规则之前,适合覆盖某个域名、应用或局域网地址。
  4. 把规则目标替换成订阅中实际存在的代理组名称;如果名称不存在,规则即使语法正确,也可能无法按预期选择策略。
  5. 保存后访问目标网站或启动目标应用,再到规则页面搜索域名,确认规则内容已经出现在最终配置中。浏览器能打开只能说明当前访问成功,不能单独证明指定规则已经命中。

停止条件:如果“编辑规则”入口不存在、保存时报错或代理组下拉列表为空,先不要继续堆叠规则,应回到订阅是否已成功导入、配置是否被选中以及代理组是否存在这三个基础问题。

规则应该放哪里:前置、后置与订阅规则的区别

位置执行关系适合场景注意事项
前置规则排在订阅规则之前覆盖某个域名、应用或局域网流量优先级高,规则写得过宽可能提前截获流量
后置规则排在订阅规则之后补充订阅中没有覆盖的条件前面的订阅规则可能已经先命中
订阅规则由订阅内容提供作为基础分流配置直接改原始订阅内容,更新后可能被覆盖

官方文档建议将自定义配置放在前置规则中,因为规则会从上到下依次匹配,前面的规则优先级更高。实际使用时,不要只看规则是否存在,还要看它排在什么位置以及前面是否已经有更宽泛的匹配条件。

例如,下面两条规则的覆盖范围不同:DOMAIN,example.com,DIRECT只匹配完整域名;DOMAIN-SUFFIX,example.com,DIRECT还会匹配其子域名。规则类型的差异可参照Clash Verge Rev 文档仓库中的规则说明。

常见规则类型:先掌握这 9 种写法

规则类型作用示例
DOMAIN匹配一个完整域名DOMAIN,example.com,DIRECT
DOMAIN-SUFFIX匹配域名及其子域名DOMAIN-SUFFIX,example.com,代理组
DOMAIN-KEYWORD匹配域名中包含的关键词DOMAIN-KEYWORD,ads,REJECT
GEOSITE按站点集合匹配域名GEOSITE,cn,DIRECT
GEOIP按目标 IP 所属地区匹配GEOIP,CN,DIRECT
IP-CIDR匹配 IP 地址段IP-CIDR,192.168.0.0/16,DIRECT
DST-PORT按目标端口匹配DST-PORT,443,代理组
PROCESS-NAME按进程名匹配应用流量PROCESS-NAME,example.exe,代理组
RULE-SET引用已配置的规则集合RULE-SET,自定义集合,代理组

上述规则类型来自 Clash Verge Rev 文档和 mihomo 路由规则文档。更完整的语法边界、规则集合和附加参数说明,可查看mihomo 路由规则文档。

DOMAIN、DOMAIN-SUFFIX、DOMAIN-KEYWORD 的选择建议:只想处理单个完整域名时用 DOMAIN;想覆盖一个主域名及其子域名时用 DOMAIN-SUFFIX;只有在确认关键词不会误伤其他域名时才用 DOMAIN-KEYWORD。关键词规则范围较宽,适合明确的通用标记,不适合随意填写短词。

可直接改写的配置示例

下面示例只展示规则结构,代理组名称必须替换为你的订阅中真实存在的名称。示例中的“代理组”不是固定名称,也不代表所有配置都包含该组。

  • 局域网直连:IP-CIDR,192.168.0.0/16,DIRECT
  • 指定域名直连:DOMAIN,example.com,DIRECT
  • 主域名及子域名交给代理组:DOMAIN-SUFFIX,example.com,代理组
  • 阻断明确的广告关键词:DOMAIN-KEYWORD,ads,REJECT
  • 按站点集合分流:GEOSITE,cn,DIRECT
  • 按应用进程分流:PROCESS-NAME,example.exe,代理组
  • 默认兜底:MATCH,代理组

重要:DIRECT表示直连,REJECT表示阻断,第三种写法是订阅中已有的代理组名称。官方规则说明明确指出,MATCH 会匹配所有请求,因此应放在规则列表最后;如果把它提前,后面的规则通常不会再有机会命中。

规则不生效:按“语法—顺序—策略—连接”排查

  1. 先查语法:每条规则通常由规则类型、匹配内容和策略目标组成,逗号数量、括号或缩进异常都可能导致配置无法保存。先删除刚添加的复杂规则,只保留一条简单的 DOMAIN 规则测试。
  2. 再查顺序:规则是从上到下匹配,第一条符合条件的规则会停止继续匹配。若前面已有 DOMAIN-SUFFIX 或 GEOSITE 规则,后面的单域名规则可能不会命中。
  3. 再查代理组:检查目标名称是否与代理组列表完全一致,包括空格、符号和大小写。不要把示例中的“代理组”直接照搬。
  4. 再查最终配置:在规则页面搜索目标域名、策略名称或规则类型,确认修改后的内容已进入当前选中的配置。只在编辑窗口看到内容,不等于当前运行配置已经加载。
  5. 最后查连接链路:如果规则已命中但仍无法访问,再排查节点、DNS、系统代理或 TUN 等基础连接问题,不要继续修改规则。规则只决定流量走哪种策略,不会自动修复节点或网络本身的问题。

对于 IP 类规则,mihomo 文档还说明,部分目标 IP 匹配可能触发 DNS 解析;如果需要避免该行为,可了解 no-resolve 参数,但它只适用于相应的目标 IP 规则,不能随意添加到所有规则后面。

配置前后的自查清单

  • 备份:保留修改前的配置,出现无法启动或网页无法访问时先回滚。
  • 范围:优先从单个域名开始,不要一开始就使用过宽的关键词或兜底规则。
  • 位置:需要覆盖订阅规则时放前置;只想补充缺失条件时再考虑后置。
  • 策略:DIRECT、REJECT 或代理组名称必须与实际目标一致。
  • 验证:分别检查规则是否保存、是否进入当前配置、是否命中、命中后连接是否正常。
  • 回滚:删除最近添加的规则后重新测试,一次只改一个变量,便于定位问题。

如果只是希望让某个网站走直连或指定代理,通常不需要同时改 DNS、TUN 和多组规则。先完成最小规则验证,再根据实际现象扩展配置,排查效率更高。

本文结论与边界

Clash Verge 配置规则的核心不是规则越多越好,而是明确匹配对象、放置位置和策略目标。最稳妥的路径是:备份配置,进入“编辑规则”,优先添加一条前置规则,确认代理组名称,再通过规则页面和实际连接结果验证。

本文未对任何订阅服务的速度、可用性、价格或排名作判断;如果某个代理组名称、节点能力或当前网络状态无法从你的配置中核实,应以实际界面和日志为准。

常见问题

Clash Verge 配置规则应该放前置还是后置?

需要覆盖订阅中的已有规则时,优先放前置规则;只想补充订阅没有覆盖的条件时,可以考虑后置规则。因为规则从上到下匹配,前面的规则优先级更高。

为什么我添加了 DOMAIN 规则却没有生效?

常见原因包括规则前面已经有更宽泛的匹配、目标配置不是当前正在运行的配置、代理组名称不存在,或访问请求没有按预期经过该规则。先搜索最终规则列表,再检查规则顺序和实际策略。

DOMAIN 和 DOMAIN-SUFFIX 有什么区别?

DOMAIN 用于匹配完整域名;DOMAIN-SUFFIX 用于匹配某个域名后缀及其子域名。只处理一个具体域名时用 DOMAIN,需要覆盖主域名和子域名时再用 DOMAIN-SUFFIX。

MATCH 为什么必须放在最后?

MATCH 是兜底规则,会匹配所有请求。如果它出现在其他规则前面,后续规则可能没有机会命中,因此通常应将其放在规则列表末尾。

规则已经命中,但网页还是打不开怎么办?

规则命中只说明流量选择了某个策略,不等于节点、DNS、系统代理或 TUN 已经正常。此时应停止继续堆叠规则,转而检查对应策略的连接状态、日志和基础网络链路。

相关阅读

参考资料

  1. Clash Verge Rev Docs:自定义规则(clashverge.dev)
  2. clash-verge-rev.github.io:rules.md