TL;DR:Mihomo core 版本不匹配时,不要只看客户端有没有最新版。先记下 UI 版本、core 版本、配置更新时间和日志里的第一个报错字段。第一个字段通常就是线索,后面的错误很多是连带反应。
Mihomo 生态里有一个容易忽略的事实:客户端 UI 和 core 经常不是同一个版本节奏。Clash Verge Rev、FlClash、Linux service、OpenWrt 插件、手机端客户端,都可能把 Mihomo core 打包在不同位置。UI 更新成功,不代表 core 已经支持你的配置。
最典型的表现是:界面能打开,订阅也能拉取,但配置一应用就失败。
常见症状
| 症状 | 更像哪类问题 | 先看哪里 |
|---|---|---|
unknown field | 配置字段比 core 新 | 报错字段与官方配置文档 |
unsupported rule type | 规则写法不被当前 core 支持 | rules / rule-providers |
| TUN 打不开 | core、权限或系统接口问题 | core 版本和 TUN 日志 |
| DNS 行为异常 | DNS 字段语义变化或写法错误 | dns 段完整日志 |
| UI 显示成功但没有连接 | UI 缓存和 core 状态不同步 | core 日志,不看按钮状态 |
先抓第一个错误。日志滚得很快时,后面的 DNS、route、provider 报错可能只是因为前面解析失败。
先确认到底跑的是哪个 core
很多客户端会在设置页显示 core 版本,也可以在日志开头看到类似信息。命令行环境可以直接查:
mihomo -v
如果你用的是客户端内置 core,不要假设系统 PATH 里的 mihomo 就是客户端正在使用的那个。客户端可能放在自己的应用目录、数据目录或插件目录里。
建议记录四个值:
- 客户端名称和 UI 版本。
- Mihomo core 版本号或 commit 信息。
- 配置文件更新时间。
- 失败时日志里的第一条解析错误。
这四个值能避免反复问「我明明升级了为什么还不行」。
哪些字段最容易撞版本
Mihomo 配置变化集中在 DNS、TUN、rule-provider、sniffer、geodata、profile 这些区域。下面是排查时最常见的几类:
| 配置区域 | 典型问题 | 处理建议 |
|---|---|---|
dns | 新字段旧 core 不认识 | 按当前 core 文档重写 DNS 段 |
tun | 字段存在但系统不支持 | 先关 TUN 验证普通代理 |
rule-providers | provider 类型或行为变化 | 用最小 provider 测试 |
rules | 新规则类型旧 core 不支持 | 临时改成 DOMAIN / DOMAIN-SUFFIX / MATCH |
geox-url / geodata | 下载失败或格式不匹配 | 清缓存后重新拉取官方数据源 |
sniffer | 字段名或开关位置不一致 | 对照官方配置文档,不照搬旧模板 |
不要一次改整份 YAML。每次只改一个区域,能启动后再继续。
安全回滚顺序
回滚不是把旧 exe 覆盖上去就完事。配置和缓存也要考虑。
- 退出客户端,确认后台 core 已停止。
- 备份配置目录,包括 profiles、覆写文件、provider 缓存和本地规则。
- 记录当前 core 版本,下载上一版官方 release。
- 只替换 core 或客户端,不先删配置。
- 用一个最小配置启动。
- 最小配置成功后,再导入原配置。
如果原配置在旧 core 下也失败,就不是版本回滚能解决的问题,回头查 YAML 语法和字段。
配置要兼容多端时,别追最新字段
桌面端已经支持的新字段,手机端或路由器插件可能还没跟上。多人共用同一份订阅配置时,保守写法更省事:少用刚加入的字段,DNS 和规则尽量用文档里长期存在的结构。
需要一份配置同时给 Clash、Singbox、V2Ray 生态客户端测试时,可以用配套订阅线路做导入验证。但 core 版本仍要逐端确认,订阅可用不代表每个客户端都支持同一套高级字段。
回滚后还失败,检查缓存
有些客户端会缓存远程 provider、规则集和 profile。回滚 core 后,如果仍然加载旧缓存,错误会继续出现。
可检查:
- 远程订阅是否重新拉取。
- rule-provider 缓存是否清掉。
- 覆写脚本是否仍在注入新字段。
- UI 里的当前 profile 是否真的切到你刚改的那份。
最后检查表
- 已确认客户端实际使用的 Mihomo core 版本。
- 已保存失败日志里的第一条报错。
- 已查明报错字段属于 DNS、TUN、rules 还是 provider。
- 回滚前已备份配置目录。
- 回滚后先用最小配置测试。
- 多端共用配置时已去掉新 core 专属字段。