Clash Verge Rev规则配置教程(v2.x):添加、排序与不生效排查
简答:Clash Verge Rev v2.x添加自定义规则的最快路径是:Profiles→右键当前配置→编辑规则→选择前置添加→保存并重新加载→在连接详情或日志中查看命中规则。先确认配置已激活、当前为Rule模式,并把代理目标替换成配置中真实存在的策略组名称。本文按2026-10-21检索到的官方文档整理;本站是第三方使用指南站,不是相关客户端官方站。
定义:Clash Verge Rev规则配置,是通过域名、IP、进程或规则集等条件,将请求按顺序交给DIRECT、REJECT或实际存在的策略组处理。
先试这一步:v2.x添加规则的入口与速查表
在Clash Verge Rev v2.x中,先打开Profiles,找到已经激活的订阅配置,右键选择编辑规则,再添加前置规则。官方文档说明,编辑规则入口保存的自定义规则不会随着订阅更新而失效;规则按从上到下匹配,命中第一条符合条件的规则后停止。可查看Clash Verge自定义规则配置。
| 需求 | 优先选择 | 建议位置 | 验证方式 |
|---|---|---|---|
| 只处理一个完整域名 | DOMAIN | 前置添加 | 访问该域名,查看连接详情中的命中规则 |
| 处理主域名及其子域名 | DOMAIN-SUFFIX | 前置添加 | 分别测试主域名和子域名 |
| 按关键词匹配域名 | DOMAIN-KEYWORD | 前置添加 | 检查是否误匹配相似域名 |
| 按IP网段匹配 | IP-CIDR | 前置添加,可按需加no-resolve | 查看连接是否进入IP规则 |
| 按桌面应用分流 | PROCESS-NAME | 前置添加 | 核对实际进程名后重新发起请求 |
| 引用外部规则集合 | RULE-SET | 前置添加 | 确认对应的rule-providers已加载 |
| 处理剩余请求 | MATCH | 最后一条 | 查看未命中其他规则的连接 |
如果界面中没有“编辑规则”,先确认你右键的是配置文件而不是空白区域,并检查当前版本。不要把旧版截图中的菜单名称直接套到新版。
照做步骤:从订阅激活到命中验证
- 确认配置已导入并激活。在Profiles页面找到要修改的配置,确认它处于当前使用状态。未激活的订阅即使修改成功,也不会反映到正在运行的配置。
- 进入编辑规则。右键当前配置,选择“编辑规则”。单个订阅只需要增加少量规则时,优先使用这个可视化入口,不要直接修改远程订阅生成的YAML。
- 选择规则类型和目标。格式通常是
类型,匹配条件,目标策略。目标可以是DIRECT、REJECT或当前代理组页面中真实存在的策略组。 - 选择前置添加。自定义规则通常应放在订阅规则之前,尤其是订阅中已经存在较宽泛的直连规则或最后的
MATCH时。 - 保存并重新加载。保存后回到配置页面,执行重新加载、重新激活或切换配置,具体按钮名称以实际版本为准。
- 发起新请求验证。打开连接、日志或运行时配置页面,访问目标域名,查看请求域名、进程、命中规则和最终策略。只刷新旧网页,可能不会产生新的可验证连接。
Mihomo官方文档将运行模式区分为rule、global和direct;只有Rule模式才会按规则列表进行常规分流。可查看Mihomo通用配置文档。
v1.6.x、v1.7.x与v2.x:入口不要混用
| 版本范围 | 官方资料中的入口变化 | 使用建议 |
|---|---|---|
| v1.6.x | 仍可见旧版Merge配置和Script配置说法 | 按旧版资料操作前先备份配置,不能照搬v2.x菜单 |
| v1.7.x | Merge配置改名为扩展配置,Script配置改名为扩展脚本;v1.7.3变更记录提到支持可视化编辑订阅规则 | 优先寻找“扩展配置”“扩展脚本”或配置右键菜单中的编辑规则 |
| v2.x | 当前官方规则文档使用Profiles中右键“编辑规则”的流程 | 优先使用编辑规则入口,保存后重新加载并验证运行时结果 |
官方扩展文档明确记录了v1.7.x的名称变化,并说明prepend/append功能移动到订阅右键菜单的可视化编辑器;v2.0.0及后续历史记录也单独列出过版本变更。因此,看到“Merge里直接写prepend-rules”的旧教程时,不要默认它适用于当前版本。可查看Clash Verge扩展配置与脚本文档和Clash Verge Rev历史变更记录。
规则类型怎么选:DOMAIN、IP、进程和RULE-SET
| 类型 | 含义 | 示例 | 注意 |
|---|---|---|---|
DOMAIN | 匹配一个完整域名 | DOMAIN,api.example.com,DIRECT | 不会自动覆盖其他子域名 |
DOMAIN-SUFFIX | 匹配域名后缀及其子域名 | DOMAIN-SUFFIX,example.com,代理组名称 | 适合站点整体分流 |
DOMAIN-KEYWORD | 匹配域名中包含的关键词 | DOMAIN-KEYWORD,ads,REJECT | 范围较宽,可能匹配无关域名 |
GEOSITE | 按GeoSite数据集中的分类匹配 | GEOSITE,cn,DIRECT | 分类是否可用取决于当前数据集 |
IP-CIDR | 匹配IPv4地址或网段 | IP-CIDR,192.168.0.0/16,DIRECT,no-resolve | 网段要准确,避免范围过宽 |
GEOIP | 按目标IP所属地区代码匹配 | GEOIP,CN,DIRECT,no-resolve | 通常放在更具体的域名规则之后 |
PROCESS-NAME | 按桌面进程名称匹配 | PROCESS-NAME,example.exe,代理组名称 | 进程名必须与实际运行名称一致 |
RULE-SET | 引用规则提供者中的规则集合 | RULE-SET,example-set,代理组名称 | 需要先定义对应的rule-providers |
MATCH | 匹配所有前面未命中的请求 | MATCH,DIRECT | 应作为最后兜底 |
Mihomo官方路由规则文档列出了这些规则类型,并说明规则从上到下匹配、顶部优先级更高;RULE-SET还需要配置对应的规则提供者。可查看Mihomo路由规则文档和Mihomo规则提供者文档。
一套可改名的分流示例:直连、代理、拒绝和应用分流
下面只使用官方文档中能确认的规则类型。代理组名称必须替换为当前配置中真实存在的名称,不能直接写成未定义的“PROXY”或“Proxy”。
GEOSITE,category-ads-all,REJECT:将当前GeoSite数据集中属于该分类的域名交给拒绝策略。DOMAIN-SUFFIX,example.cn,DIRECT:示例站点及其子域名直连,需替换为你要处理的真实域名。DOMAIN-SUFFIX,service.example,代理组名称:指定站点交给实际存在的代理组。PROCESS-NAME,download-tool.exe,DIRECT:指定桌面进程直连,需替换为实际进程名。GEOIP,CN,DIRECT,no-resolve:放在更具体规则之后,作为较宽范围的IP地区判断。MATCH,DIRECT:最后处理其余未命中的请求。
顺序的核心是“具体规则在前、宽泛规则在后、MATCH最后”。如果把直连范围较宽的规则放在指定代理域名之前,指定域名可能先被直连规则命中。Mihomo官方文档对规则优先级和MATCH兜底有明确说明,可查看Mihomo路由规则文档。
no-resolve到底是什么?什么时候加?
no-resolve只适用于涉及目标IP的规则。Mihomo文档说明,当域名请求开始匹配目标IP规则时,内核可能触发DNS解析,以检查解析出的目标IP是否符合规则;加入no-resolve后,会跳过这一步DNS解析。也就是说,它不是“让规则更快”的通用开关,也不应机械添加到所有DOMAIN规则。
常见写法是IP-CIDR,192.168.0.0/16,DIRECT,no-resolve或GEOIP,CN,DIRECT,no-resolve。如果规则需要依赖解析出的目标IP来判断,就不要为了照抄示例而添加它。可查看Mihomo路由规则文档中的no-resolve说明。
扩展配置、扩展脚本和编辑规则怎么选
编辑规则:适合单个订阅增加少量前置或后置规则,是当前最直接的可视化入口。
扩展配置:适合对配置项进行YAML覆写或合并,例如调整DNS或其他配置字段。当前官方扩展文档没有把它描述为通用的规则数组前置/后置编辑器,因此不要直接照抄旧教程中的prepend-rules或append-rules字段。
扩展脚本:如果需要把规则数组与原配置合并,可用JavaScript读取原有config.rules,再通过数组拼接实现前置添加。官方示例使用config.rules = prependRule.concat(oldrules)的方式;这属于脚本方案,不是扩展配置中的YAML字段。可查看Clash Verge自定义规则脚本文档。
使用脚本前先复制原配置和脚本文本。升级后如果入口变化、配置无法加载或规则不再出现,先停用脚本并恢复备份,再检查当前版本文档。
规则不生效:按入口、顺序、策略组和日志排查
- 确认模式。在主界面的代理模式区域确认当前是Rule,而不是Global或Direct。
- 确认配置。在Profiles页面确认你编辑的是当前激活配置,而不是另一份未启用订阅。
- 确认位置。将测试规则暂时改为前置添加,并检查前面没有更宽泛的规则提前命中。
- 确认域名。在连接详情中查看真实请求域名,再决定使用DOMAIN还是DOMAIN-SUFFIX。一个网页可能同时请求主域名、接口域名和静态资源域名。
- 确认策略组。打开代理组页面,逐字核对名称,包括大小写、空格、符号和表情。名称不存在时,可能出现加载报错或规则无法应用,最终以配置校验和日志为准,不要直接推断为MATCH接管。
- 确认进程名。Windows可在任务管理器的“详细信息”查看进程名;macOS可在“活动监视器”查看;Linux可使用
ps -ef或pgrep -a 程序名核对。客户端和系统对进程识别的支持以实际版本为准。 - 确认已重载。保存后重新加载配置,再发起新的连接,不要只刷新旧页面。
- 区分公开报告和普遍结论。截至2026-10-21,官方仓库有用户报告v2.5.2中“编辑规则”未参与运行时合并的问题,该记录状态为Open。它只能说明存在公开报告;如果你使用该版本,应查看运行时规则是否真的出现新增条目,并以日志和版本复现结果为准。可查看Clash Verge Rev相关问题记录。
如果请求根本没有进入客户端,先检查系统代理或TUN等实际接管方式;不要把所有规则未命中都归因于TUN未开启。进入客户端后,再按匹配条件、规则顺序和策略组名称继续定位。
常见问题
Clash Verge Rev规则应该添加前置还是后置?
多数自定义规则选择前置添加。规则从上到下匹配,前置规则更容易先于订阅中的宽泛规则或MATCH生效;只有你明确希望订阅规则优先时,才考虑后置添加。
为什么DOMAIN和DOMAIN-SUFFIX容易选错?
DOMAIN只处理一个完整域名;DOMAIN-SUFFIX处理该域名及其子域名。只想分流一个接口时用DOMAIN,想覆盖主站及子域名时再用DOMAIN-SUFFIX。
GEOIP,CN,DIRECT为什么通常放在具体域名规则之后?
GEOIP按目标IP地区判断,覆盖范围通常比单个域名规则更宽。放在具体域名规则之前,可能让本应交给指定代理组的请求先被直连。
PROCESS-NAME规则一定要开启TUN吗?
不一定。关键是请求已经进入客户端,并且客户端或内核能够识别正确的进程名。系统代理和TUN是不同的流量接管方式,具体覆盖范围以系统和客户端实际状态为准。
订阅更新后自定义规则消失怎么办?
先确认是否直接修改了远程订阅生成的文件。优先使用当前版本的编辑规则入口;如果需要跨多个配置处理规则,使用有备份的扩展脚本,并在更新后重新加载、查看运行时规则。
策略组名称写错会怎样?
可能出现配置加载报错或规则无法应用,具体以配置校验结果和日志为准。打开代理组页面,逐字复制真实策略组名称,再重新加载配置。
常见问题
Clash Verge Rev规则应该添加前置还是后置?
多数场景选择前置添加,因为规则从上到下匹配,前置规则更容易先于订阅中的宽泛规则和MATCH生效。
为什么规则保存后还是不生效?
依次检查是否处于Rule模式、编辑的配置是否已激活、规则是否前置、域名类型是否正确、策略组名称是否存在,以及保存后是否重新加载并发起新请求。
no-resolve是什么意思?
它只适用于涉及目标IP的规则;遇到域名请求时,可跳过为匹配目标IP而触发的DNS解析。
v1.7.x和v2.x的规则入口一样吗?
不完全一样。v1.7.x将Merge改名为扩展配置,并将部分prepend/append能力移到订阅右键的可视化编辑器;v2.x应优先按当前官方文档使用Profiles中的编辑规则入口。
订阅更新后自定义规则消失怎么办?
不要直接修改远程订阅生成的YAML,优先使用编辑规则;需要跨配置合并规则时,备份后使用扩展脚本,并在更新后检查运行时规则。