← 返回 dageyun.pics 本地视觉备份 首页

mihomo 配置检查失败怎么办?按报错原文修复并安全回退

更新于 2026-10-24 · dageyun.pics

简答:mihomo 配置检查失败通常不是节点测速问题,而是 YAML 语法、字段兼容、名称引用、域名通配符或订阅响应异常。先备份当前可用 Profile,再用完整错误原文定位,修复后只替换候选配置。

定义:“mihomo 配置检查失败”是指内核在读取配置、合并订阅或初始化相关组件时未能完成解析与启动准备。

先做这一步:保住当前可用配置

如果客户端仍能使用,先不要重启内核、不要连续刷新订阅,也不要直接覆盖原来的配置文件。配置更新失败时,最容易丢失的是上一份还能工作的 Profile。

  1. 在客户端中记录当前配置名称、客户端版本、Mihomo 内核版本、系统版本和完整错误日志。
  2. 复制当前可用 Profile,文件名可使用 config-backup.yaml;订阅地址、节点密码、UUID、控制器 secret 和私人域名不要发到公开平台。
  3. 暂停自动更新或自动切换,单独保存本次下载的候选文件。
  4. 只对候选文件进行校验,确认通过后再导入或替换。

官方项目的配置文档将代理节点、代理组、规则和代理集合分别定义;因此,单独下载到的订阅内容不一定就是可以直接启动的完整配置。可先对照 mihomo Configuration 文档判断文件类型。

看到的现象优先判断下一步
yaml: unmarshal errors、mapping valuesYAML 语法或缩进检查 Tab、冒号、引号、重复键和列表层级
unsupported field、字段类型错误字段不支持或版本兼容对照当前内核文档,删除或改正该字段
proxy not found、group not found名称引用不存在核对代理、代理组、Provider 或 Rule Provider 名称
invalid domain域名格式或通配符不符合要求检查 fake-ip-filter、skip-domain 和相关规则
返回 401、403、HTML 或空文件订阅下载层异常先保存响应内容,不要把它当 YAML 强行导入

用命令行检查候选配置

命令行校验的目标是候选的完整 Mihomo 配置,而不是把节点分享链接或 Base64 文本改名成 YAML。Linux、macOS 和 Windows 都应先确认正在调用的二进制文件与配置路径。

Linux 或 macOS

mihomo -t -f /path/to/config.yaml

如果配置依赖相对路径、代理集合、规则集合或缓存目录,应使用与实际启动相同的工作目录。例如:

mihomo -t -d /path/to/mihomo-data -f /path/to/mihomo-data/config.yaml

-d 对应 Mihomo 的工作目录;代理集合的本地文件路径默认受该目录限制,官方 proxy-providers 配置文档也说明了路径和安全目录要求。若以专用 Linux 用户运行,确认该用户对配置、Provider 和 Rule Provider 文件具有读取权限。

Windows

mihomo.exe -t -d "C:\mihomo\data" -f "C:\mihomo\data\config.yaml"

路径包含空格时必须使用引号。若客户端自行管理 Profile,不要直接修改其缓存文件;先从客户端的配置目录复制一份候选文件,再在独立目录校验。

校验通过只表示配置能够解析并完成初始化准备,不表示节点可用、DNS 正常、端口未占用或网页一定能打开。启动后还要查看内核日志中的策略命中,并对比出口 IP 或实际请求结果。

截至 2026-10-24,Releases 标记为 Latest 的是 v1.19.30;版本信息应以 mihomo Releases 页面为准。若问题只在升级后出现,可暂时用原来能工作的内核和配置进行对照,但不要把预发布构建当作稳定版本使用。

按错误原文分流修复

1. YAML 语法错误

重点检查缩进是否使用空格而不是 Tab,冒号后是否有空格,字符串中是否包含未转义的特殊字符,列表短横线是否与父级对齐,以及同一层是否出现重复键。不要一次修改多个区块;每次只改一处,然后重新运行校验。

proxy-groups:
  - name: "自动选择"
    type: select
    proxies:
      - DIRECT
      - 节点A
rules:
  - MATCH,自动选择

上面的示例只用于说明层级关系,真实配置中的代理名称必须确实存在。YAML 可以解析,并不代表引用关系正确。

2. 字段不支持或类型不对

如果报错包含 unsupported field、布尔值类型错误或数组类型错误,先确认字段属于 Mihomo,而不是其他内核、仪表盘或客户端的扩展。以当前版本的 general 配置文档、proxies 配置文档和对应功能页为准。

常见误区包括把字符串写成数组、把单个端口写成带协议的地址、把策略组名称写到节点字段中,以及复制了旧模板中的已废弃字段。处理顺序应是:保留备份、定位字段所在行、查官方字段类型、删除无关扩展、再次校验。

3. 名称引用不存在

代理组的 proxies 引用代理节点或其他代理组,use 引用代理集合;规则的最后一列则必须指向实际存在的代理或策略组。官方 proxy-groups 文档明确说明了这些引用关系。

例如配置中写了 PROXY,但实际策略组叫“自动选择”,就会出现引用错误。修复时逐项核对名称、大小写、空格和引号,不要只改规则最后一列而忽略代理组本身是否声明。

4. invalid domain 与通配符错误

域名通配符不能随意放在字符串中。官方规则文档说明,DOMAIN-WILDCARD 支持 * 和 ?,但它与配置文件其他位置的通配符规则并不完全相同。

如果错误出现在 dns.fake-ip-filter、sniffer.skip-domain 或相近字段,优先检查类似 abc-*、host.*.example.com 的写法。官方项目的 Issue 升级后出现 invalid domain 的复现记录显示,某些不完整的通配符标签会触发该错误。按实际需求改成完整域名、合法后缀形式或符合字段规则的通配符后,再重新检查。

5. 订阅返回的不是完整 YAML

用浏览器或命令行查看候选文件的开头几行:如果是 HTML 登录页、JSON 错误信息、401/403 响应、空内容,或解码后是一批 vmess://、ss:// 等分享链接,就不能直接当成完整配置运行。

这类内容应交给客户端的订阅解析流程、proxy-providers 或订阅转换模板处理。官方 proxy-providers 文档说明,HTTP Provider 负责下载并解析代理集合;完整配置还需要在主配置中声明代理组、规则等引用。验证时应检查合并后的最终配置,而不是只检查远程原始响应。

不同客户端中的回退与复查

不同客户端的按钮名称会变化,但安全顺序相同:保留旧 Profile,停止自动更新,记录完整日志,单独校验新配置,确认通过后再应用。

如果客户端已经把坏配置设为活动配置,先停止自动应用,再恢复备份文件。恢复后只修改一个变量,例如先删除最近新增的字段,重新校验并启动;不要同时更换内核、订阅转换模板、DNS 和 TUN 设置。

配置检查通过后仍然连不上怎么办

配置检查通过不等于网络连接通过。下一步应按层排查:

  1. 查看内核是否持续运行,日志中是否出现退出、端口占用或权限错误。
  2. 确认客户端监听端口。常见默认为 7897 或 7890,以设置页为准。
  3. 检查系统代理或 TUN 是否真正启用;Windows 的 TUN 服务模式、macOS 的隐私与安全性放行、Linux 的路由与专用用户权限都可能影响结果。
  4. 查看连接日志中是否命中预期策略组,再对比直连与代理时的出口 IP。
  5. 若只有域名失败,检查 DNS、fake-ip、nameserver-policy 和规则顺序;Mihomo 官方 DNS 配置文档列出了这些字段的作用。
  6. 若只有 TUN 失败,再检查系统权限、路由、DNS 劫持和 MTU,不要把 TUN 故障重新归因于 YAML 解析。

敏感信息保护清单

提交日志或寻求协助前,至少脱敏以下内容:

可以保留错误类型、出错字段名、行号、客户端版本、内核版本和经过脱敏的最小配置片段。不要公开整份订阅文件,也不要把可直接访问的订阅地址粘贴到 Issue 或聊天窗口。

结论:先判断文件类型,再检查最终配置

遇到“mihomo 配置检查失败”,最快的路径不是重新下载节点,而是先确认候选内容到底是完整 YAML、代理集合、Base64 分享链接、HTML 错误页还是空响应;随后根据完整报错检查语法、字段、引用和域名格式。

保留旧 Profile、暂停自动更新、对合并后的最终配置执行校验,再恢复客户端运行,通常比直接覆盖配置更安全。

了解线路方案,以官网为准。

常见问题

mihomo 配置检查失败,是不是节点失效了?

不一定。配置检查发生在节点连接之前,常见原因是 YAML 语法、字段兼容、名称引用、域名格式或订阅返回异常。先看完整错误原文,不要先更换节点。

Base64 订阅能不能改名成 yaml 后用 mihomo -t 检查?

不能直接这样判断。Base64 解码后可能是 vmess://、ss:// 等分享链接,不是完整 Mihomo YAML,应交给客户端订阅解析、proxy-providers 或转换模板生成最终配置后再检查。

配置校验通过后为什么还是打不开网页?

校验通过只说明配置可以解析并完成初始化准备,不代表节点、DNS、系统代理、TUN、规则或出口网络正常。应查看连接日志中的策略命中,并对比出口 IP。

看到 invalid domain 应该先改哪里?

先看错误是否指向 dns.fake-ip-filter、sniffer.skip-domain 或规则中的域名字段,再检查通配符是否写成了不完整标签。不要一次修改 DNS、规则和节点,逐项改动后复测。

客户端更新订阅后配置坏了,怎样恢复?

停止继续刷新,保留旧 Profile,暂停自动更新,把新内容保存为候选文件并单独校验。校验失败就重新选回旧 Profile;确认最终配置通过后再应用新配置。

参考资料

  1. mihomo Configuration
  2. proxy-providers configuration - mihomo docs
  3. proxy-groups configuration - mihomo docs
  4. Route Rules - mihomo docs
  5. DNS configuration - mihomo docs
  6. 升级至1.19.30内核后报错 Parse config error: invalid domain,内核无法启动
  7. Releases · MetaCubeX/mihomo
  8. wiki.metacubex.one
  9. wiki.metacubex.one