v2ray节点购买

Clash Meta 设置规则:Rule 模式、策略组与 YAML 示例

更新于 2026-10-24 · v2ray.tattoo

简答:设置 Clash Meta 规则,先切到 Rule 模式,再让规则末尾的策略组名称与 proxy-groups 完全一致;自定义规则放在 MATCH 前,并通过连接日志或 /rules 接口确认实际命中。

定义:Clash Meta/Mihomo 规则是由匹配类型、匹配内容和目标策略组成的路由条件,内核按 rules 从上到下检查并将请求交给对应策略。

先按这三步设置:Rule、策略组、规则顺序

最快的设置路径是:第一步,把运行模式切换为 Rule;第二步,检查每条规则最后的策略名称是否真实存在于 proxy-groups 或可用代理中;第三步,把自定义规则放在 MATCH 之前,再通过连接日志验证。mihomo 文档将 rule 定义为基于规则匹配,global 为全局代理,direct 为全局直连。General configuration|mihomo docs

本文与 mihomo 项目及相关客户端开发者无隶属关系,Clash Meta、Mihomo 以及不同客户端的菜单名称可能存在差异,实际字段和界面应以当前客户端及内核文档为准。

先检查什么正常表现不正常时怎么改
运行模式界面显示 Rule,或配置中为 mode: rule从 Global 或 Direct 切回 Rule
策略组名称规则末尾名称能在策略组中找到复制实际名称,避免大小写、空格或符号不一致
规则顺序具体域名、IP 或应用规则在 MATCH 前将 MATCH 移到规则列表最后
流量入口连接日志能看到正在测试的域名或应用检查系统代理、代理端口、TUN 和权限

mihomo 官方文档说明,规则从上到下匹配,越靠前优先级越高;但 UDP 请求在代理节点不支持 UDP 时,可能继续向下匹配,因此不能只看规则文字,还要看实际日志。Route Rules|mihomo docs

一份可加载的 YAML 示例:节点和策略组都要对齐

下面模板包含一个最小的 proxies 节点占位,因此结构比只写“节点A”更完整。Node-Example 是示例节点名,必须替换为订阅中实际存在的节点名称;PROXY、Final 也是示例策略组名,规则中引用时必须保持完全一致。示例域名同样要替换为你要测试的域名。

mode: rule proxies: - name: Node-Example type: socks5 server: proxy.example.com port: 1080 proxy-groups: - name: PROXY type: select proxies: - Node-Example - DIRECT - name: Final type: select proxies: - PROXY - DIRECT rules: - DOMAIN,login.example.com,PROXY - DOMAIN-SUFFIX,example.com,DIRECT - DOMAIN-KEYWORD,ads,REJECT - IP-CIDR,192.168.0.0/16,DIRECT,no-resolve - PROCESS-NAME,app.exe,PROXY - MATCH,Final

这个示例不能直接连接真实网络,因为服务器地址、端口和认证信息只是占位内容;它的用途是检查 YAML 层级、策略组引用和规则顺序。加载前至少替换 proxy.example.com、1080 和 Node-Example,或者直接把示例节点替换为订阅已有节点。

行或字段作用何时需要删改
mode: rule启用基于规则的分流只想全局代理或全局直连时才改为其他模式
proxies定义可被策略组引用的出站节点使用订阅节点时替换为订阅中的真实名称
name: PROXY定义规则可以引用的策略组名称改名后必须同步修改所有规则末尾的名称
DOMAIN只匹配指定完整域名需要覆盖子域名时改用 DOMAIN-SUFFIX
DOMAIN-SUFFIX匹配域名及其子域名只想匹配单个完整域名时不要扩大范围
PROCESS-NAME按进程名分流必须替换为系统实际进程名或 Android 支持的包名
MATCH处理前面没有匹配到的请求通常保留在最后,不能放在自定义规则前

策略组的 name 是必填项,proxies 可以引用出站代理或其他策略组。因此,规则末尾写了一个不存在的名称,即使规则格式本身正确,也可能无法按预期选择出站。proxy-groups configuration|mihomo docs

常见需求一行规则速查

下面的规则只展示语法和使用方向,不代表示例域名一定属于某种地区或服务。复制前先确认策略组名称、应用进程名和网段都符合自己的环境。

需求示例规则注意事项
局域网直连IP-CIDR,192.168.0.0/16,DIRECT,no-resolve需要覆盖其他私有网段时,另加 10.0.0.0/8 或 172.16.0.0/12
指定网站直连DOMAIN-SUFFIX,intranet.example.com,DIRECT会覆盖该域名及其子域名
指定网站交给代理组DOMAIN-SUFFIX,service.example.com,PROXYPROXY 必须是真实存在的策略组
指定应用代理PROCESS-NAME,app.exe,PROXYWindows 需替换实际 exe 名;Android 可使用支持的包名形式
拒绝广告关键词DOMAIN-KEYWORD,ads,REJECT匹配范围较宽,误拦截时改为 DOMAIN 或 DOMAIN-SUFFIX
最终兜底MATCH,Final放在 rules 最后一行

DOMAIN 匹配完整域名;DOMAIN-SUFFIX 匹配域名后缀,例如 example.com 可以匹配 www.example.com,但不会匹配 content-example.com;DOMAIN-KEYWORD 按关键词匹配,范围更宽。Route Rules|mihomo docs

GEOSITE 适合调用 Geosite 中的域名分类,GEOIP 按目标 IP 的国家代码匹配,IP-CIDR 按 IP 网段匹配,RULE-SET 则调用外部或本地规则集。使用这些规则时,要确认对应 GEO 数据或 rule-provider 已存在,不能只复制规则行。Route Rules|mihomo docs Rule-Providers|mihomo docs

Clash Verge Rev 中怎样添加规则,避免订阅更新覆盖

如果你使用 Clash Verge Rev,官方文档给出的操作是:打开配置列表,右键订阅配置文件,选择“编辑规则”,再添加自定义规则。文档还区分了前置规则和后置规则:前置规则优先级更高,适合需要覆盖订阅默认规则的自定义分流;后置规则会在订阅规则之后执行。菜单名称可能随客户端版本变化,找不到相同文字时以当前版本界面为准。Clash Verge 自定义规则配置|Clash Verge Rev Docs

  1. 先复制或备份当前配置,避免误改后无法恢复。
  2. 在配置列表中定位正在使用的订阅配置文件。
  3. 右键打开“编辑规则”,确认规则编辑位置是前置还是后置。
  4. 把需要优先命中的 DOMAIN、IP-CIDR 或 PROCESS-NAME 规则放到前置区域。
  5. 确认自定义规则末尾的策略组名称与当前配置中的 proxy-groups.name 完全相同。
  6. 保存并重新载入配置,打开连接日志测试目标网站或应用。

如果客户端没有“编辑规则”入口,或订阅更新后仍然覆盖手工修改,不要直接反复编辑下载文件。可以优先查看当前客户端是否提供覆写、扩展配置、规则集或脚本功能;这些功能的名称和合并方式必须以当前客户端文档为准,未核实的界面不要照搬其他客户端教程。

使用规则集时,需要先在 rule-providers 中定义名称、类型、地址、行为和格式,再在 rules 中用 RULE-SET,规则集名称,策略组 调用。官方文档列出的 provider 类型包括 http、file 和 inline,行为包括 domain、ipcidr 和 classical,填写时要与实际文件格式对应。Rule-Providers|mihomo docs

规则不生效:按流量入口、命中、策略组、DNS/TUN 排查

现象优先检查层可照做的判断方法
连接日志完全没有新请求流量入口访问测试域名后仍无日志,检查系统代理、代理端口或 TUN 权限
日志出现请求但命中 MATCH规则匹配检查域名类型、规则顺序,并确认自定义规则在 MATCH 前
命中代理规则但没有连接策略组确认策略组存在、已选择节点且节点支持当前请求类型
浏览器正常,某个应用不走规则系统代理或 TUN先用系统代理验证,再检查 TUN 是否接管该应用流量
域名规则看似正确但连接异常DNS检查 DNS 模式、解析结果及是否存在 DNS 劫持或解析循环
  1. 先确认入口。打开客户端连接日志,访问一个明确的测试域名。如果没有任何新连接,先不要改规则,检查系统代理是否指向客户端端口,或 TUN 是否已启用并获得系统权限。
  2. 再确认命中。如果日志中有请求,查看规则类型、匹配内容和目标策略。通过 API 时,使用运行中的控制地址访问 GET /rules;官方 API 文档列出了规则的索引、类型、匹配内容、目标策略以及可选的统计字段。APIs|mihomo docs
  3. 再确认策略组。如果规则命中了,但没有建立连接,检查目标策略组是否为空、当前选择的节点是否可用,以及规则中的名称是否与策略组名称完全一致。
  4. 最后检查 DNS 和 TUN。DNS 的 enhanced-mode 可使用 fake-ip 或 redir-host;TUN 还涉及 auto-route、dns-hijack、系统权限和网络接口。不要把“日志显示规则命中”直接等同于“目标连接一定成功”。DNS configuration|mihomo docs Tun|mihomo docs

推荐使用最小化验证:暂时只保留一条明确的 DOMAIN,test.example.com,PROXY 和最后的 MATCH,DIRECT,其中域名和策略组必须替换。若仍无日志,问题更可能在入口;若有日志但命中 MATCH,优先检查规则内容和顺序;若命中 PROXY 但连接失败,继续检查策略组、节点和 DNS。

DNS、TUN 与规则设置的边界

规则匹配和 DNS 解析是两个不同层面。mihomo 文档列出了 enhanced-mode、respect-rules、nameserver-policy 等 DNS 字段,其中 enhanced-mode 的可选值为 fake-ip 和 redir-host。修改 DNS 后,应分别测试域名解析、连接日志和实际访问,不要仅凭页面能打开就判断规则完全正确。DNS configuration|mihomo docs

TUN 的作用是接管更多系统流量,但不同系统、权限和应用的处理方式可能不同。官方示例包含 enable、auto-route、dns-hijack 和 strict-route 等字段;启用 TUN 后,如果某个应用仍无日志,应先确认 TUN 权限、自动路由和应用是否被排除,而不是继续堆叠规则。Tun|mihomo docs

参考资料与适用范围说明

本文只讲 Clash Meta/Mihomo 规则设置、订阅配置边界和连接排查,不提供未经核实的客户端版本、节点价格、服务状态或测速结论。不同客户端可能只支持部分字段,遇到解析错误时,应先根据当前客户端和内核版本检查字段是否可用。

核心依据包括 mihomo 官方的运行模式、规则、策略组、规则集、DNS、TUN 与 API 文档,以及 Clash Verge Rev 文档中的自定义规则操作说明。

常见问题

Clash Meta 设置规则时,Rule、Global、Direct 怎么选?

日常需要按域名或应用分流时选择 Rule;Global 会把流量交给全局代理策略;Direct 则是全局直连。若目标是测试自定义 rules,先使用 Rule,否则规则可能不会按预期参与匹配。

为什么规则写对了,还是命中 MATCH?

先确认测试请求确实进入当前内核,再检查 DOMAIN、DOMAIN-SUFFIX 或 PROCESS-NAME 的匹配内容。还要确认自定义规则位于 MATCH 之前,并且没有编辑了未实际启用的配置文件。

DOMAIN 和 DOMAIN-SUFFIX 有什么区别?

DOMAIN 匹配完整域名,例如 login.example.com;DOMAIN-SUFFIX 匹配域名及其子域名,例如 example.com 可以匹配 www.example.com,但不会匹配 content-example.com。

规则末尾的策略组名称必须和什么一致?

它必须与当前配置中 proxy-groups 的 name 完全一致,也可以是有效的出站代理名称。大小写、空格和符号都可能影响引用结果,建议直接复制客户端显示的名称。

订阅更新后,自定义规则为什么消失?

直接编辑订阅生成的 YAML 时,下一次更新可能重新写入配置。优先使用客户端提供的编辑规则、前置规则、覆写、规则集或脚本功能;如果当前客户端没有这些入口,就备份后在每次更新后重新检查 rules。

Mihomo API 的 /rules 能看什么?

官方 API 文档说明,GET /rules 可返回规则索引、规则类型、匹配内容和目标策略;部分响应还可能包含命中次数、最近命中时间等额外字段,具体以当前运行内核返回结果为准。

开启 TUN 后,某个应用仍然不走规则怎么办?

先确认 TUN 已启用并获得系统权限,再检查 auto-route、dns-hijack、应用排除项和系统网络接口。随后打开连接日志确认该应用请求是否进入内核;没有日志时,优先处理流量入口,不要先改规则顺序。

参考资料

  1. General configuration|mihomo docs
  2. Route Rules|mihomo docs
  3. proxy-groups configuration|mihomo docs
  4. Rule-Providers|mihomo docs
  5. DNS configuration|mihomo docs
  6. Tun|mihomo docs
  7. APIs|mihomo docs
  8. Clash Verge 自定义规则配置|Clash Verge Rev Docs