贤者云 | xianzhey.shop

Mihomo 代理组怎么设置?从节点引入到规则生效

更新于 2026-11-08 · xianzhey.shop

简答:Mihomo 代理组的核心是:先把节点或代理集合加入 proxy-groups,再让 rules 引用代理组名称。新手应先用 select 完成最小配置,确认节点可连接后再加入 url-test、fallback、筛选和嵌套组;如果使用 Mihomo Party,可按“导入订阅→启用配置→进入代理组→选择主组→开启系统代理或 TUN→查看连接和日志”的顺序操作。

定义:Mihomo 代理组是由节点、代理集合或其他代理组组成的策略集合,规则匹配请求后会把流量交给指定的代理组处理。

先完成最小可用配置:四步确认代理组能工作

本文是第三方使用指南,重点介绍 Mihomo 内核配置,Mihomo Party 图形界面操作作为辅助。不同客户端或版本的菜单名称可能略有变化;配置字段应以Mihomo proxy-groups 文档和当前客户端界面为准。

  1. 备份:复制当前 YAML 或配置文件,保存一份修改前副本。后续出现解析失败、代理组消失或流量异常时,先恢复这份副本。
  2. 建立手动组:优先使用 type: select,成员先放入一个明确存在的节点名、DIRECT 或指定代理集合。
  3. 关联规则:在 rules 中使用完全一致的代理组名称,例如 MATCH,PROXY。
  4. 分层验证:分别确认配置能加载、代理组有成员、选中项发生变化、实际请求命中预期规则。页面显示节点不等于系统流量已经进入代理。

如果只是第一次设置,不要一开始就加入自动测速、地区正则、多个订阅和复杂规则。最小配置成功后,每次只增加一个变量,出现问题时更容易回滚和定位。

最小配置完整分层配置适用场景
select 加一个节点或一个 providerselect、url-test、fallback、筛选和规则先验证配置链路,再扩展策略
只检查加载、成员和手动选择还要检查订阅更新、健康检查、规则命中和流量接管日常使用或多订阅场景

节点、订阅、代理组和规则有什么区别

对象负责什么常见位置先检查什么
节点单个实际出站连接proxies 或订阅内容名称是否唯一,协议字段是否完整
代理集合从 HTTP、文件或内嵌内容加载一批节点proxy-providers类型、地址、路径和更新结果
代理组手动选择、自动测试、故障切换或负载分配proxy-groups组名、类型和成员来源
规则决定请求交给哪个组或直连rules顺序和最后的兜底规则

当前 Mihomo 文档将 proxies 定义为引用出站节点或其他代理组,将 use 定义为引用代理集合。代理集合本身可使用 http、file 或 inline 类型;HTTP 类型需要配置 url,文件路径还受到工作目录和安全路径限制。具体字段可对照Mihomo proxy-providers 文档。

最小 YAML:先用 select 手动选择

下面是便于排错的最小示例。节点名称和订阅地址是占位内容,不能直接当作真实节点使用;请替换成你自己的配置,并保留缩进。

proxies:
- name: "节点A"
type: ss
server: example.com
port: 443
cipher: aes-128-gcm
password: "仅示意"

proxy-groups:
- name: "PROXY"
type: select
proxies:
- "节点A"
- DIRECT

rules:
- DOMAIN-SUFFIX,example.com,PROXY
- MATCH,PROXY

  • 成功判据:配置可以加载;代理组 PROXY 显示节点;选择节点后当前选中项发生变化。
  • 失败分支:如果配置无法加载,先检查 YAML 缩进、冒号、引号和重复键;如果组为空,检查节点名称是否逐字一致;如果组有节点但无法连接,再单独检查节点、DNS 和本地网络。
  • 回滚:恢复修改前的 YAML,重新加载后确认旧配置恢复,再逐段加入新内容。

规则引用的名称必须与代理组的 name 完全一致。组名改为“主代理”后,所有 rules 中的 PROXY 也要同步修改。

使用 proxy-providers、use 和筛选导入订阅节点

节点较少时可以直接写在 proxies 中;节点来自订阅时,通常先在 proxy-providers 中定义代理集合,再通过 use 放入代理组。示例中的 URL、测试地址和关键词仅作结构示意。

proxy-providers:
my-provider:
type: http
url: "https://example.com/subscription"
path: ./proxy-providers/my-provider.yaml
interval: 3600
health-check:
enable: true
url: "https://www.gstatic.com/generate_204"
interval: 300
timeout: 5000

proxy-groups:
- name: "PROXY"
type: select
use:
- my-provider
filter: "(?i)hk|hongkong"
exclude-filter: "测试|过期"

注意:https://www.gstatic.com/generate_204 只是 Mihomo 文档列出的健康检查地址之一。它是否能正常访问,会受到当前网络、DNS、路由和目标地址可达性的影响;测试成功只说明该测试请求得到预期结果,不代表所有目标网站、办公系统或应用都可用。也可以替换为自己能够稳定访问、并且适合当前网络环境的测试地址。

filter 和 exclude-filter 会影响被纳入的节点。代理组突然为空时,先暂时删除筛选条件做对照;如果删除后出现节点,再检查关键词、正则表达式和订阅返回的实际节点名称。当前 Mihomo 文档说明,include-all-proxies 会纳入所有出站代理,include-all-providers 会纳入所有代理集合,并且启用后会使 use 的引入方式失效;不要把这几个字段同时当成同一功能使用。

健康检查也要分清层级:按当前 Mihomo proxy-groups 文档,代理组的 url 检查只作用于该组的 proxies 字段,不检查通过 use 引入的代理集合节点;代理集合可以在自身的 health-check 中配置,也可以通过 API 对指定代理集合或其中节点触发检查。这个区别意味着“代理组页面有成员”和“订阅节点已有健康检查结果”不能混为一项。

select、url-test、fallback 和 load-balance 怎么选

类型主要行为适合场景建议顺序
select手动选择节点或下级组首次配置、对照测试、需要固定节点第一步使用
url-test根据测试结果在成员中选择希望按测试结果自动选取手动组确认正常后加入
fallback成员不可用时按顺序切换更关注连续性而非最低延迟确认健康检查逻辑后加入
load-balance按策略在多个成员间分配连接有明确分流或并发需求不作为第一份配置

url-test 的测试延迟不是网页实际加载速度,也不等于跨境办公、视频或下载表现。测试地址、DNS、协议、目标站点和本地网络都会影响结果。因此建议先用 select 验证“节点能否连接”,再用 url-test 验证“自动选择逻辑是否运行”。

完整分层写法:主组、自动组和规则引用

确认订阅节点能够加载后,可以把自动组作为主组的成员,再让规则只引用主组。这样切换策略时不必频繁改规则。

proxy-groups:
- name: "自动测速"
type: url-test
use:
- my-provider
url: "https://www.gstatic.com/generate_204"
interval: 300
tolerance: 50

- name: "主代理"
type: select
proxies:
- "自动测速"
- DIRECT
use:
- my-provider

rules:
- DOMAIN-SUFFIX,example.com,主代理
- GEOIP,CN,DIRECT
- MATCH,主代理

这里的逻辑是“订阅节点→自动测速组→主选择组→规则”。如果想增加地区组,可以让地区组先用 filter 筛选订阅节点,再把地区组放进主组。每增加一层,都要检查组名是否唯一、引用是否一致、组内是否实际出现成员。

规则通常按从上到下的顺序匹配。前面已经命中的请求不会继续执行后面的规则;MATCH 可作为未匹配请求的兜底。若最后写成 MATCH,DIRECT,即使主代理组配置正确,未命中的请求也会走直连。规则语法可对照Mihomo Route Rules 文档。

Mihomo Party 图形界面怎么导入、选择和验证

Mihomo Party 的代码仓库说明其定位是 Mihomo 图形界面,并支持 Mihomo 常用配置、订阅管理、系统代理和 TUN 等功能;具体菜单名称可能因版本、语言和界面模式不同而变化,可先以当前界面显示为准。操作时按下面顺序,不要把“订阅已导入”和“系统流量已接管”当成同一件事。

  1. 导入订阅:打开配置文件或订阅管理页面,新增远程订阅地址,保存后执行更新。确认订阅条目出现,并等待节点或代理集合完成加载。
  2. 启用配置:在配置文件列表中选中需要使用的配置,使它成为当前运行配置。若界面提示解析失败,先不要进入代理组,回到配置内容和错误提示。
  3. 进入代理组:打开代理或代理组页面,找到规则实际引用的主组,例如 主代理,再展开下级的自动组、地区组或具体节点。
  4. 选择策略:第一次先手动选择一个明确节点或 DIRECT 做对照。若选择后当前状态没有变化,检查是否点到了孤立组,而不是规则真正引用的主组。
  5. 选择运行模式:排查规则时优先使用 rule 模式;Mihomo 文档将 global 定义为全局代理、direct 定义为全局直连。全局代理和规则分流的结果不同,不能混用判断。
  6. 开启流量接管:只需要让支持系统代理的应用走代理时,可先开启系统代理;需要更多系统流量或应用不遵循系统代理时,再根据系统权限和客户端提示启用 TUN。系统代理与 TUN 是两种不同的接管方式。
  7. 查看连接和日志:发起一个明确的测试请求,观察连接页面或日志中的目标、命中规则、代理链和错误信息。Mihomo API 也提供代理组、节点延迟、规则和连接信息,用于进一步核对运行状态。

TUN 配置涉及系统路由、DNS 劫持、权限、防火墙和协议栈。Mihomo 文档建议普通用户优先使用顶层 TUN 配置,并说明 auto-route、dns-mode、strict-route 等字段会影响流量路径。若只是验证代理组逻辑,不要同时修改 DNS、MTU、TUN 协议栈和规则,否则失败时很难判断是哪一层造成的。

代理组为空、切换不生效和自动测速失败怎么排查

现象先检查成功判据回滚或下一步
配置加载失败YAML 缩进、冒号、引号、重复键配置状态恢复正常恢复备份,再逐段加入
代理组为空use 名称、订阅状态、筛选条件至少出现一个成员删除筛选做对照
组有节点但无法连接节点、DNS、协议、本地网络单个测试请求建立连接用 DIRECT 或其他节点对照
切换节点后网页无变化运行模式、规则顺序、实际命中组连接日志显示预期规则和代理链恢复主组名称和规则引用
自动测速没有结果测试地址、超时、间隔和成员来源测速页面出现结果或历史记录先退回 select 手动验证
开启 TUN 后异常权限、防火墙、路由和 DNS 设置关闭系统代理或 TUN 后能恢复对照先关闭 TUN,恢复原配置再逐项启用

建议保存三类记录:一是配置加载错误截图或文本;二是代理组成员和当前选中项;三是连接日志中的目标地址、命中规则和代理链。不要只记录“网页打不开”,因为页面不可访问可能来自配置、节点、DNS、规则、系统代理或 TUN 中的任一层。

发布前自查:什么时候算设置完成

  1. 配置文件可以加载,没有解析错误。
  2. 代理集合能够更新,代理组至少显示一个有效成员。
  3. select 手动切换后,当前选中项确实变化。
  4. 规则最后一列使用真实存在的代理组名称。
  5. 在 rule、global、direct 三种模式下,能区分各自的预期行为。
  6. 系统代理或 TUN 只启用一种接管方式进行对照,日志和连接页面能看到实际请求。
  7. 修改前有备份,出现异常时可以恢复原配置。

完成最小配置后,再逐步加入自动测速、地区筛选、多个代理集合和复杂规则。任何一步出现异常,都先回滚到上一个成功状态,再检查新增字段,而不是一次更换所有节点或同时修改 DNS、TUN 和规则。

常见问题

Mihomo 代理组一定要写 proxies 吗?

不一定。<code>proxies</code> 用于引用节点或其他代理组,<code>use</code> 用于引用指定代理集合,也可以使用 <code>include-all-proxies</code> 或 <code>include-all-providers</code> 纳入成员。首次配置建议只选一种成员来源,避免组为空时难以判断问题来自节点、订阅还是筛选。

为什么写了 use,代理组还是空的?

先检查 <code>use</code> 中的名称是否与 <code>proxy-providers</code> 下的键完全一致,再检查代理集合是否更新成功、返回内容是否能被 Mihomo 解析。随后暂时删除 <code>filter</code> 和 <code>exclude-filter</code> 做对照。如果删除筛选后出现节点,问题通常在关键词、正则表达式或订阅节点名称。

代理组的健康检查会自动检查 use 引入的节点吗?

按当前 Mihomo proxy-groups 文档,代理组的 <code>url</code> 检查只检查该组的 <code>proxies</code> 字段,不检查通过 <code>use</code> 引入的代理集合节点。代理集合可以在自身的 <code>health-check</code> 中配置,也可以通过 API 单独触发代理集合或节点检查。不同前端的展示方式可能不同,应同时查看代理集合状态和代理组状态。

select 和 url-test 哪个更适合新手?

通常先用 <code>select</code>。它只负责手动选择,便于确认节点本身能否连接,也能把节点问题和自动测速问题分开。手动组正常后,再加入 <code>url-test</code>,单独检查测试地址、超时、间隔和成员来源。

Mihomo Party 里选中了节点,为什么网页还是直连?

先确认当前模式不是 <code>direct</code>,再检查规则是否真的引用了当前代理组,以及前面是否有更高优先级规则已经命中。随后查看连接或日志页面,确认实际请求的命中规则和代理链;代理组页面显示选中,不代表系统代理或 TUN 已经接管所有应用。

修改代理组后配置加载失败,如何恢复?

停用或切换回修改前的配置,恢复备份 YAML 并重新加载。确认恢复后,再一次只加入一个字段或一个代理组。建议先验证 <code>select</code>,再加入订阅、筛选、自动测速和规则,避免多个改动同时发生。

相关阅读

参考资料

  1. Mihomo 文档:proxy-groups 配置、成员来源与健康检查
  2. Mihomo 文档:proxy-providers、订阅更新与健康检查
  3. Mihomo 文档:Route Rules 规则匹配
  4. Mihomo 文档:运行模式与日志级别
  5. Mihomo 文档:TUN、路由与 DNS 接管
  6. Mihomo 文档:代理组、节点、规则与连接 API
  7. Mihomo Party GitHub:图形界面、配置与 TUN 功能说明