← 返回 naixinternet.shop 本地视觉备份 首页

Clash Meta 设置规则:可复制 YAML 模板与排查步骤

更新于 2026-11-02 · naixinternet.shop

简答:Clash Meta 设置规则的最快方法是:先备份订阅配置,将运行模式设为 Rule,再把局域网、国内直连和明确的域名规则放在前面,最后用 MATCH 兜底。下面提供一份可合并的 YAML 模板,但代理组名称必须替换为当前配置中真实存在的名称。规则命中后,还要通过连接记录确认请求是否经过 mihomo、命中了哪条规则以及实际使用了哪个策略。

定义:Clash Meta 设置规则,就是在 mihomo 配置的 rules、rule-providers 和 proxy-groups 中,按顺序匹配域名、IP 或进程,并把请求交给直连、拒绝、节点或策略组处理。

先复制这份模板:规则、国内直连与 MATCH 兜底

如果你的目标只是先让分流规则运行,建议不要重写整份订阅。先复制原配置,再把下面内容作为合并模板,按当前配置中的字段逐项加入。模板中的 Proxy 是占位策略组,必须替换为你现有配置里的真实策略组或节点名称;如果配置里没有这个名称,规则即使写法正确,也可能无法按预期处理请求。

可合并的最小 YAML 示例:

mode: rule

proxy-groups:
- name: Proxy
type: select
proxies:
- REPLACE_WITH_EXISTING_PROXY
- DIRECT

rule-providers:
private_domain:
type: http
url: "https://raw.githubusercontent.com/MetaCubeX/meta-rules-dat/meta/geo/geosite/private.mrs"
path: ./rules/private_domain.mrs
interval: 86400
behavior: domain
format: mrs
cn_domain:
type: http
url: "https://raw.githubusercontent.com/MetaCubeX/meta-rules-dat/meta/geo/geosite/cn.mrs"
path: ./rules/cn_domain.mrs
interval: 86400
behavior: domain
format: mrs

rules:
- RULE-SET,private_domain,DIRECT
- IP-CIDR,192.168.0.0/16,DIRECT,no-resolve
- IP-CIDR,10.0.0.0/8,DIRECT,no-resolve
- IP-CIDR,172.16.0.0/12,DIRECT,no-resolve
- RULE-SET,cn_domain,DIRECT
- DOMAIN-SUFFIX,ads.example,REJECT
- DOMAIN,service.example,Proxy
- MATCH,Proxy

上面的国内直连示例使用 mihomo 官方示例中出现的规则数据地址;规则提供器的 behavior、format 必须与实际文件格式匹配。广告拦截只使用示例域名,不代表现成广告名单,也不应把不明来源的远程规则地址直接加入配置。mihomo 官方快捷配置示例、mihomo 官方规则集配置说明

模板部分作用修改前必须检查
mode: rule启用按规则分流当前客户端确实加载了这份配置
proxy-groups给规则提供可调用的策略目标Proxy 和占位节点名是否真实存在
rule-providers加载国内或局域网等规则集合地址、格式、行为类型和本地路径
rules按顺序匹配请求具体规则是否排在宽泛规则前
MATCH,Proxy处理前面没有命中的请求必须放在列表最后

Clash Meta 的规则顺序和三种模式怎么理解

mihomo 文档将运行模式分为 rule、global 和 direct:Rule 按规则匹配,Global 统一使用全局策略,Direct 全局直连,默认模式为 Rule。日常需要国内直连、指定域名代理或广告域名拒绝时,应先使用 Rule 模式。mihomo 官方全局配置文档

模式适用场景判断方法
Rule需要按域名、IP、进程或规则集分流连接记录中能看到命中的规则
Global临时让请求统一交给一个全局策略单条规则通常不再决定最终去向
Direct临时排除代理影响,测试本地网络请求统一尝试直连

规则本身不存在“某类永远优先”的固定顺序,实际优先级由配置文件中的上下顺序决定。mihomo 会从上到下匹配,顶部规则优先;MATCH 没有条件,会匹配前面没有处理的请求,因此必须放在最后。mihomo 官方路由规则文档

规则类型怎么选:DOMAIN、RULE-SET、GEOIP 与进程规则

DOMAIN 适合匹配一个完整域名;DOMAIN-SUFFIX 适合覆盖某个域名及其子域名;DOMAIN-KEYWORD 会按关键词匹配,范围更宽,临时测试可以使用,但关键词过短可能造成误匹配。

RULE-SET 用于调用已经定义好的规则提供器,适合国内直连、私有域名或较大的域名集合。使用它前必须先在 rule-providers 中定义同名提供器,并确认文件的 behavior 与实际内容一致。GEOIP 和 IP-CIDR 用于按目标 IP 或网段匹配;PROCESS-NAME 则按进程名称匹配,但是否能识别到进程取决于系统权限、接管方式和客户端实现。mihomo 官方规则类型说明

需求优先考虑注意事项
单个完整主机名DOMAIN范围最明确
域名及其子域名DOMAIN-SUFFIX确认不会扩大到不相关业务
国内域名集合RULE-SET 或已核验的域名数据先定义对应的 rule-provider
目标网段IP-CIDR、GEOIP可能触发 DNS 解析
某个应用进程PROCESS-NAME需要确认客户端能识别进程

DNS、fake-ip 与 no-resolve:如何判断是规则问题还是解析问题

当规则涉及目标 IP 时,mihomo 可能先进行 DNS 解析,再判断解析结果是否符合 IP 规则。官方文档说明,no-resolve 只适用于目标 IP 类规则,可跳过该规则触发的解析;如果前面的匹配已经触发过 DNS,后续带有 no-resolve 的 IP 规则仍可能继续参与匹配。不要把 no-resolve 随意添加到域名规则上。mihomo 官方路由规则文档

fake-ip 和 redir-host 是 DNS 处理模式,不是规则模式。respect-rules 会让 DNS 连接遵循路由规则,但同时需要配置用于解析代理节点域名的 DNS,配置不完整时可能出现循环依赖或节点无法解析。mihomo 官方 DNS 配置文档

可复现的最小对照步骤:

  1. 先保持当前 DNS 配置不变,只把目标规则临时改为明确的 DIRECT 或现有策略组。
  2. 打开目标应用,观察连接记录中是否出现目标域名。
  3. 如果没有连接记录,优先检查系统代理、TUN 或应用自身网络设置。
  4. 如果有记录但命中规则不对,检查规则顺序和是否被宽泛规则提前匹配。
  5. 如果命中规则正确但域名解析失败,再对照检查 enhanced-mode、DNS 服务器、fake-ip-filter 和缓存。
  6. 每次只恢复一个改动;恢复后仍失败时,删除新增 DNS 项并回到备份配置。

不要为了“让规则生效”同时修改规则、DNS、TUN 和节点。一次只改变一个变量,才能区分规则匹配、DNS 解析和流量接管问题。

自定义规则放在哪里:用配置文件优先,客户端入口按版本核验

本文只讲 mihomo 的规则结构,不把多个图形客户端的菜单当作通用步骤。不同客户端可能将入口称为“覆写”“Mixin”“扩展配置”“本地配置”或“配置增强”,这些名称和支持范围会随客户端版本变化,不能仅凭菜单名称判断功能一定存在。

操作目标建议核验关键词找不到入口时的替代路径
订阅后追加规则覆写、Mixin、Override、配置增强导出当前配置,复制后在本地修改并导入测试
保留规则集rule-provider、规则集、外部规则先使用本地 inline 规则验证格式
确认运行配置当前配置、运行配置、配置校验通过客户端提供的校验或重载功能测试
订阅更新后不丢规则更新前备份、合并、覆写优先级触发一次手动更新后重新检查 rules 和 rule-providers

如果找不到覆写入口,最稳妥的替代方法是:备份原订阅配置,导出或复制一份可正常运行的 YAML,只加入一条明确规则,校验并加载;确认成功后再增加规则集和 DNS 配置。不要直接修改无法定位的缓存文件,也不要把整份订阅复制到多个配置层中。

代理组中的目标通常应对应当前配置中已经存在的节点或策略组。mihomo 官方文档说明,策略组的 proxies 可以引用出站代理或其他策略组;因此,规则中的 Proxy、DIRECT 或 REJECT 必须结合实际运行配置核对。mihomo 官方代理组配置文档

规则不生效:按“配置—命中—策略—接管”复测

第一步,确认配置加载。检查 YAML 缩进、字段层级、提供器名称和策略组名称。先用备份文件确认客户端可以启动,再逐项加入新规则。

第二步,确认请求出现。打开连接记录,搜索目标域名或进程。如果完全看不到请求,问题通常不在规则顺序,而在系统代理、TUN 权限、应用自身代理设置或应用没有经过当前客户端。

第三步,确认实际命中。连接信息可以显示目标元数据、代理链、命中的规则类型和规则内容。若命中的是 MATCH,检查前面的规则是否写错;若命中了宽泛的规则集,应该把更具体的规则移动到它之前。mihomo 官方 API 与连接信息文档

第四步,确认策略目标。命中 Proxy 不等于已经连接成功。打开策略组,检查组是否为空、选择项是否存在以及节点是否可用;也可以暂时把同一条测试规则改为 DIRECT,用来区分策略组问题和规则问题。

第五步,确认 DNS。域名规则正常、IP 规则异常时,再检查 DNS 解析、fake-ip、redir-host、respect-rules 和缓存。不要在没有记录原配置的情况下直接更换多项 DNS 参数。

第六步,复测与回滚。每次只改一个字段,重新打开应用并观察连接记录。如果配置无法启动,恢复备份;如果只是广告误拦截,先删除对应的 REJECT 规则或改为 DIRECT 对照,再缩小匹配域名范围。

资料核验日期:2026-11-02。本文为第三方使用指南,不代表 mihomo 或任何客户端官方;版本、菜单和配置兼容性以当前客户端实际解析结果为准。

常见问题

Clash Meta 设置规则时,Rule、Global、Direct 选哪个?

需要按域名、IP、进程或规则集分流时使用 Rule;需要所有请求统一交给一个策略时使用 Global;排查代理影响或临时直连时使用 Direct。日常设置规则应先选择 Rule,再通过连接记录确认结果。mihomo 官方全局配置文档

为什么 MATCH 放前面后,后面的规则都不生效?

因为 MATCH 会匹配没有条件限制的请求。它应放在规则列表最后,具体域名、局域网、国内规则集和拒绝规则都应放在 MATCH 前面。

国内直连规则应该怎么写?

可以使用已核验的国内域名或 IP 规则集,并先在 rule-providers 中定义对应提供器,再通过 RULE-SET,提供器名称,DIRECT 调用。不要只写一个占位域名就把它称为完整国内分流。

广告拦截误伤登录或验证码怎么办?

在连接记录中找到命中的域名,先删除对应 REJECT 规则,或临时改为 DIRECT 进行对照。如果恢复正常,再把规则范围从关键词改为明确的完整域名或后缀。

规则已经命中,为什么应用仍然直连?

先看连接记录中是否真的出现该应用请求。如果没有记录,优先检查系统代理、TUN、权限或应用自身网络设置;如果有记录但策略为 DIRECT,再检查规则目标和策略组选择。

订阅更新后自定义规则消失怎么办?

先恢复备份并确认客户端是否支持覆写、Mixin、外部配置或本地合并。找不到入口时,导出当前配置,在副本中加入一条规则并测试;确认订阅更新后仍存在,再逐步增加其他规则。

常见问题

Clash Meta 设置规则时,Rule、Global、Direct 选哪个?

需要分流时使用 Rule;需要所有请求统一走一个策略时使用 Global;排查代理影响或临时直连时使用 Direct。设置完成后要通过连接记录确认实际命中。

为什么 MATCH 放前面后规则不生效?

MATCH 会匹配没有条件限制的请求,必须放在 rules 最后,否则后面的具体规则没有机会命中。

国内直连规则应该怎么写?

先定义已核验的国内域名或 IP rule-provider,再使用 RULE-SET 调用并指向 DIRECT。不要把单个占位域名当作完整国内分流。

广告拦截误伤登录或验证码怎么办?

在连接记录中找到命中的域名,暂时删除 REJECT 规则或改为 DIRECT 对照;恢复后再缩小规则范围。

规则命中了,为什么应用还是直连?

先确认连接记录中是否出现该请求。没有记录时优先排查系统代理、TUN、权限或应用自身网络设置;有记录时再检查策略组和节点。

订阅更新后自定义规则消失怎么办?

备份配置后查找覆写、Mixin、外部配置或本地合并功能。找不到入口时,在配置副本中加入一条规则并测试更新后的保留情况。

相关阅读

参考资料

  1. mihomo 官方文档:全局配置与运行模式
  2. mihomo 官方文档:路由规则、匹配顺序与 no-resolve
  3. mihomo 官方文档:规则提供器配置
  4. mihomo 官方文档:快捷配置与规则集示例
  5. mihomo 官方文档:DNS、fake-ip 与 respect-rules
  6. mihomo 官方文档:代理组配置
  7. mihomo 官方文档:连接信息与规则命中字段