紫溪网络官网

Mihomo Party 设置规则:覆写不生效的排查与模板

更新于 2026-10-24 · zixi2019.shop

简答:Mihomo Party 设置规则,先选规则模式,再在“覆写”中新建 YAML 并绑定到当前订阅;自定义规则通常用 +rules 前置插入,禁止在前置覆写里放 MATCH,最后到“连接”页面查看实际命中策略。

定义:Mihomo Party 的规则设置,是让客户端按 rules 从上到下匹配请求,再交给 DIRECT、REJECT 或实际存在的代理组;覆写则是保存这些配置修改并应用到订阅的方法。

30 秒速查:规则不生效先看这 5 项

这是第三方使用指南,客户端界面可能因版本或中文翻译不同显示为 Mihomo Party、Clash Party 或相近名称。你已经导入订阅、但自定义规则没有效果时,先按下面顺序检查,不要一开始就改 DNS、TUN 或大量 YAML。

30 秒速查卡:Mihomo Party 设置规则的最小验证路径
顺序界面路径或检查点正确状态
1运行模式选择“规则”模式,不用全局或直连模式判断分流规则
2覆写页面YAML 文件已经导入、编辑并保存
3订阅管理 → 编辑信息覆写文件已经绑定到正在使用的订阅
4覆写内容优先规则使用 +rules,不要在前置覆写里放 MATCH
5连接页面 → 点开连接能看到该请求的规则、策略或链路信息

官方客户端文档说明,覆写用于自定义订阅配置,文件需要先在“覆写”页面导入或编辑,再到“订阅管理”中绑定到指定订阅。可参考Clash Party 官方文档的“覆写”页面。

先分清:规则模式、全局模式和直连模式

规则模式用于按照最终配置中的 rules 逐条匹配请求。你要验证“某个域名直连”或“某个网站走代理”,必须在这个模式下测试。

全局模式用于统一使用当前选择的策略,适合临时确认代理连接本身是否可用,但不能证明某一条域名规则已经命中。

直连模式用于让请求不经过代理。若你在直连模式下测试“指定网站走代理”,结果不会反映规则配置。

因此,最小验证路径是:切换到规则模式,访问一个明确的测试域名,打开“连接”页面,点开对应连接,查看规则与策略。如果页面只显示连接状态,不显示规则详情,可以同时查看当前规则列表或客户端提供的连接详情。mihomo 官方文档明确说明,规则按从上到下匹配,越靠上的规则优先级越高;MATCH不带条件,会匹配所有未被前面规则处理的请求。参考mihomo 官方 Route Rules 文档。

规则页面、订阅页面和覆写页面分别做什么

三个页面的职责对照
页面主要作用常见误区
规则页面查看当前配置中的规则类型、匹配内容和目标策略看到文件内容不等于规则已经应用到正在运行的订阅
订阅管理管理订阅、更新订阅,并把覆写绑定到指定订阅创建了覆写文件,却没有绑定到当前订阅
覆写页面导入、编辑和保存 YAML 或 JavaScript 覆写文件只保存文件,不代表所有订阅都会自动使用它

官方文档给出的操作顺序是:打开左侧“覆写”页面,导入链接或本地文件;编辑后保存;再打开“订阅管理”,找到目标订阅,进入“编辑信息”,在“覆写”字段中选择文件并保存。不同版本的按钮名称可能略有差异,但逻辑仍是“保存覆写文件 + 绑定订阅”。

从零创建 YAML 覆写:先用安全的最小模板

  1. 打开客户端左侧的“覆写”页面。
  2. 新建 YAML 文件,或者导入本地 YAML 文件。
  3. 先只保留一条明确的域名规则,保存文件。
  4. 进入“订阅管理”,找到正在使用的订阅,选择“编辑信息”。
  5. 在“覆写”字段中选择刚保存的文件并保存。
  6. 重新载入配置,切换到规则模式,再访问测试域名。
  7. 打开“连接”页面,点开对应连接,确认规则和策略是否符合预期。

覆写文件不是独立完整配置时,不要直接写顶层 proxies、proxy-groups 或完整 rules 去替换订阅内容。官方 YAML 文档说明,数组可以用 +rules 前置插入,也可以用 rules+ 追加;直接写 rules 则会覆盖原规则数组。参考Clash Party 官方文档的“YAML 覆写”页面。

+rules:
  - DOMAIN-SUFFIX,example.com,DIRECT
  - DOMAIN,work.example.com,你的代理组名称
  - IP-CIDR,192.168.0.0/16,DIRECT,no-resolve
  - IP-CIDR6,fc00::/7,DIRECT,no-resolve

这个示例故意没有放 MATCH。+rules 会把内容插到原规则最前面,如果此处加入 MATCH,它会提前匹配所有请求,原订阅后面的 GEOSITE、GEOIP 和其他规则就可能全部失去作用。需要兜底时,应保留原订阅的兜底规则,或在明确重建完整规则列表时再单独安排 MATCH,不能把它放进这种前置覆写模板。

“你的代理组名称”只是占位文字,必须替换成当前最终配置里实际存在的名称。可能的名称包括订阅自定义名称、Proxy、Final 或其他带图标的名称;大小写、空格和符号都要完全一致。

rules、+rules 和 rules+ 的区别

三种规则数组写法对照
写法作用适用情况主要风险
rules直接替换原有规则数组你准备完整重建所有规则时可能删除订阅原有的 GEOSITE、GEOIP 和兜底规则
+rules插入到原规则前方指定域名需要优先直连、代理或拒绝时不能放 MATCH,否则会提前接管所有请求
rules+追加到原规则后方补充确定不会被前面规则提前处理的内容时如果前面已经有宽泛规则或 MATCH,追加规则可能永远不会命中

规则类型关键字也要写对,例如 DOMAIN-SUFFIX、IP-CIDR 和 MATCH;策略组名称则必须与最终配置中的名称大小写一致。YAML 的层级依靠缩进表达,使用空格,不要使用 Tab。可参考mihomo 官方 grammar 文档。

常见场景模板:一行规则怎么写

常见 Mihomo Party 分流场景与可复制规则
场景规则示例注意事项
指定完整域名直连DOMAIN,docs.example.com,DIRECT只匹配这个完整域名
指定网站及子域名直连DOMAIN-SUFFIX,example.com,DIRECT会匹配该后缀及其下级域名
指定网站走代理DOMAIN-SUFFIX,work.example.com,你的代理组名称把占位组名替换成当前订阅真实存在的策略组
局域网 IPv4 直连IP-CIDR,192.168.0.0/16,DIRECT,no-resolve适用于常见私有 IPv4 地址段之一,按实际网络补充其他段
局域网 IPv6 直连IP-CIDR6,fc00::/7,DIRECT,no-resolveIPv6 本地地址使用 IP-CIDR6 写法
确认后的广告域名拒绝DOMAIN-SUFFIX,ads.example,REJECT只对明确确认不需要访问的域名使用
规则集引用RULE-SET,provider-name,你的代理组名称必须同时存在同名的 rule-providers 定义

DOMAIN-KEYWORD 会按关键词匹配域名,范围通常比完整域名和后缀更宽。例如直接使用 office 或 internal 可能误匹配第三方域名,因此应使用更具体、可确认的关键词,或优先改用 DOMAIN、DOMAIN-SUFFIX。mihomo 文档列出了 DOMAIN、DOMAIN-SUFFIX、DOMAIN-KEYWORD、IP-CIDR、IP-CIDR6、RULE-SET 和 MATCH 等规则类型,具体格式可在mihomo 路由规则文档中核对。

验证规则是否真的命中:看连接页面,不只看网页结果

假如你添加了:

+rules:
  - DOMAIN-SUFFIX,example.com,DIRECT
  1. 保存覆写文件,并确认它已经绑定到当前订阅。
  2. 重新载入配置,切换到规则模式。
  3. 访问 www.example.com,让客户端产生一条新连接。
  4. 打开“连接”页面,点开对应连接。
  5. 查看规则、策略或链路字段,确认它显示了与 example.com 匹配的规则,并且目标为 DIRECT。

如果客户端界面没有显示完整规则信息,可先在规则页面确认自定义规则已经进入最终配置,再结合连接详情和出口变化判断。mihomo API 文档中的 /rules 可返回规则索引、规则类型、匹配内容和目标策略;部分环境还会提供命中计数等额外字段,但界面是否展示取决于客户端实现。连接信息则对应 /connections 接口。参考mihomo 官方 APIs 文档。

规则不生效的完整排查顺序

  1. 确认运行模式。必须处于规则模式;全局和直连模式不能用来判断单条分流规则。
  2. 确认覆写文件保存成功。重新打开覆写页面,检查文件内容是否还在。
  3. 确认已经绑定订阅。覆写文件存在,不等于正在使用的订阅已经应用它。
  4. 确认绑定对象正确。有多个订阅时,检查你修改的是否正是当前启用的订阅。
  5. 确认最终规则列表中存在该规则。如果规则页面完全看不到它,优先检查覆写语法和绑定关系。
  6. 确认顺序。自定义规则应放在可能提前匹配的宽泛规则前面;使用 +rules 时不要加入 MATCH。
  7. 确认策略组名称。规则第三项必须对应当前配置中的真实组名,不能直接照抄“你的代理组名称”。
  8. 确认 YAML 格式。检查缩进、冒号后的空格、短横线层级和不可见字符,避免使用 Tab。
  9. 重新建立连接。关闭旧连接后重新访问目标域名,已有连接可能仍保留旧策略。
  10. 查看连接页面详情。点开具体连接,核对实际命中的规则、目标策略和链路,而不是只看网页能否打开。

如果使用 RULE-SET,还要检查规则集名称、来源、文件格式和 behavior 是否匹配。mihomo 官方说明中,behavior 可使用 domain、ipcidr 或 classical,应根据规则集实际格式选择;RULE-SET 本身也要求存在对应的 rule-provider 配置。参考mihomo 官方 Rule-Providers 文档。

订阅更新后规则又失效怎么办

不要只修改订阅生成的最终配置文件。订阅更新会重新生成配置,直接粘贴进去的内容可能被替换。更稳妥的做法是把自定义规则保存成独立的 YAML 覆写文件,再在订阅管理中绑定它。

更新订阅后按以下顺序检查:先确认覆写文件仍在“覆写”列表中;再确认当前订阅仍绑定该文件;然后打开最终代理组列表,核对策略组名称是否发生变化;最后重新载入配置并在连接页面验证。

如果订阅更换了代理组名称,原来的规则可能仍然存在,但目标策略已经无法对应。此时只修改规则第三项,替换为当前配置中实际存在的组名。若所有规则都消失,则优先检查覆写绑定和 YAML 解析;若只有某个域名不生效,则优先检查规则顺序、域名写法和是否被更宽泛的规则提前匹配。

结论:先用一条规则跑通,再增加规则集

第一次设置 Mihomo Party 规则时,建议只测试一条明确的 DOMAIN 或 DOMAIN-SUFFIX 规则:规则模式 → 保存覆写 → 绑定订阅 → 使用 +rules 前置插入 → 连接页面查看命中。确认这条链路正常后,再增加局域网、拒绝规则或 RULE-SET。

最需要避免的错误是把 MATCH 放进前置覆写、把顶层 rules 当成追加语法、直接照抄不存在的策略组名称,以及只看网页是否打开而不看连接详情。按最小变量逐项验证,通常比一次修改整份订阅更容易定位问题。

常见问题

Mihomo Party 设置规则时,为什么写了代理组名称却不生效?

先检查规则第三项是否与当前订阅中的策略组完全一致,包括大小写、空格和符号。示例里的“你的代理组名称”只是占位文字,不能直接使用。

为什么不能把 MATCH 放进 +rules?

+rules 会把内容插到原规则最前面,而 MATCH 不带条件,会匹配所有请求。放在这里会提前接管流量,使原订阅后面的 GEOSITE、GEOIP 和其他规则无法继续参与匹配。

rules、+rules 和 rules+ 到底怎么选?

rules 会替换原规则数组,+rules 会插入原规则前方,rules+ 会追加到原规则后方。自定义优先规则通常使用 +rules;只有准备完整重建规则时才考虑 rules。

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

检查覆写文件是否仍在列表中、是否绑定到正在使用的订阅,以及订阅更新后策略组名称是否变化。自定义内容应保存为独立覆写文件,不要只修改一次性生成的最终配置。

验证规则命中应该看日志还是连接页面?

优先打开“连接”页面,点开具体连接查看规则、策略或链路信息。日志可以辅助排查,但不能只凭日志或网页能否打开来判断某条分流规则是否命中。

局域网规则只写 IP-CIDR 是否够用?

如果设备和局域网服务使用 IPv6,还应按实际地址段增加 IP-CIDR6 规则。IPv4 和 IPv6 是不同地址族,不能只用 IPv4 规则覆盖两者。

参考资料

  1. Clash Party 官方文档:覆写(clashparty.org)
  2. Clash Party 官方文档:YAML 覆写(clashparty.org)
  3. mihomo 官方文档:Route Rules
  4. mihomo 官方文档:grammar
  5. mihomo 官方文档:Rule-Providers
  6. mihomo 官方文档:APIs