TL;DR

Clash Meta / Mihomo 升级到 1.18+ 后无法上网,90% 原因是:(1) DNS 配置不兼容新内核;(2) TUN 路由表残留;(3) fakeip range 改变;(4) GUI 与内核 ABI 不匹配;(5) 规则集格式破坏。本文给出五层排查清单 + 快速回滚命令。本文 2026-05-20 实测核对。

Mihomo 1.18 / 1.19 在 2026 上半年是大版本,带来 AnyTLS 原生支持、DNS 异步解析、新规则引擎,但也带来不少 breaking changes。本文按”症状 → 根因 → 修复”梳理。

升级后无网的常见症状分类

症状最可能根因
节点显示已连接但浏览器超时DNS 配置不兼容
切节点后偶发能上网fakeip range 冲突
启动成功但全无连接GUI/内核 ABI 不匹配
只有部分网站打不开规则集格式破坏
命令行 ping 通但浏览器不通TUN 路由问题
升级后 Windows 蓝屏Wintun 驱动不兼容

按症状对照下面的排查章节。

排查步骤 1:确认 GUI 与内核 ABI 匹配

最常见的低级错误是 GUI 是老的,内核更新了。

# Windows / macOS / Linux 通用
cd /path/to/mihomo
./mihomo -v
# 输出例: Mihomo Meta 1.19.2 amd64

各 GUI 对应的内核要求:

  • Clash Verge Rev 2.4+ → 需要 Mihomo 1.18.5+ 内核
  • Mihomo Party 1.7+ → 需要 Mihomo 1.18.0+ 内核
  • FlClash 0.9.4+ → 需要 Mihomo 1.18.0+ 内核

如果 GUI 太老内核太新,会出现”启动成功但全无连接”。

排查步骤 2:DNS 配置兼容性

Mihomo 1.18 改了 DNS 模块,引入异步解析 + DoH/DoT 优先。如果你的配置仍是旧格式:

旧配置 (1.17 及更早)

dns:
  enable: true
  ipv6: true
  nameserver:
    - 8.8.8.8
    - 114.114.114.114

这个配置在 1.18+ 上会出现”连接成功但无 DNS 解析”。

新配置 (1.18+)

dns:
  enable: true
  ipv6: false  # 如果机场不分配 IPv6 必须关
  prefer-h3: false  # HTTP/3 DNS 部分场景不稳
  default-nameserver:
    - 223.5.5.5  # 用于解析 nameserver 的域名
  nameserver:
    - https://dns.google/dns-query
    - https://dns.cloudflare.com/dns-query
  fallback:
    - tls://1.1.1.1
  fallback-filter:
    geoip: true
    geoip-code: CN

prefer-h3: falseipv6: false 解决 80% 的”升级后无网”。

排查步骤 3:fakeip range 冲突

Mihomo 1.18 改了 fakeip 默认 range:

版本默认 fakeip range
Mihomo 1.17 及更早198.18.0.0/15 (32 万地址)
Mihomo 1.18+198.18.0.0/16 (6.5 万地址)

如果你升级时操作系统路由表里还有 198.18.0.0/15 的残留,新 fakeip 用 /16 子集会冲突。

清理系统路由表

# Windows (管理员 PowerShell)
route print | findstr 198.18
route delete 198.18.0.0 mask 255.254.0.0

# macOS
netstat -nr | grep 198.18
sudo route -n delete -net 198.18.0.0/15

# Linux
ip route show | grep 198.18
sudo ip route del 198.18.0.0/15

重启 GUI 后 Mihomo 会重新设置正确的路由。

排查步骤 4:TUN 模式不通

如果 DNS 没问题 + 系统代理模式 (HTTP/SOCKS) 能上网,但 TUN 模式不通:

Windows: Wintun 驱动版本

# 检查 Wintun 版本
sc query Wintun

升级 Wintun:

  1. 在 Mihomo GUI → 设置 → 重新安装 Wintun
  2. 或手动到 wintun.net 下 0.14.1+ 版本,替换 mihomo\wintun.dll

macOS: SystemExtension 授权

macOS 14+ 系统升级或 GUI 升级会重新生成 SystemExtension,需要在设置里重新允许:

  1. 设置 → 隐私与安全性 → 系统软件
  2. 看到”Mihomo Party (或你用的 GUI) 已被阻止”
  3. 点”允许”,输入密码
  4. 重启 GUI

Linux: TUN 设备权限

# 检查 TUN 设备
ls -la /dev/net/tun

# 如果不存在
sudo mkdir -p /dev/net && sudo mknod /dev/net/tun c 10 200 && sudo chmod 600 /dev/net/tun

# 给 Mihomo 二进制 CAP_NET_ADMIN 权限 (避免每次 sudo)
sudo setcap 'cap_net_admin=+ep cap_net_raw=+ep' /usr/local/bin/mihomo

排查步骤 5:规则集格式破坏

Mihomo 1.18 改了一些规则字段的解析:

旧格式新格式影响
IP-CIDR,198.18.0.0/16,no-resolve相同,但 no-resolve 现在可省兼容
RULE-SET,xxx,REJECT需要 ruleProviders 里定义 xxx严格
DOMAIN-KEYWORD,google相同兼容
SRC-PORT-RANGE,1024-655351.18 起支持 (新功能)-
PROCESS-NAME,chrome.exe,ProxymacOS 需要授权平台差异

最常见破坏:RULE-SET 引用了不存在的 ruleProviders。检查 yaml 顶部 rule-providers: 块是否完整。

快速回滚到稳定版

如果上述都不行,回滚到 1.18.10 (上个 LTS):

在 GUI 内回滚

  • Clash Verge Rev:设置 → 内核版本 → 选 1.18.10
  • Mihomo Party:设置 → 内核管理 → 切换版本
  • FlClash:设置 → 高级 → 内核

手动替换内核

# 下 1.18.10 (LTS)
wget https://github.com/MetaCubeX/mihomo/releases/download/v1.18.10/mihomo-linux-amd64-v1.18.10.gz
gunzip mihomo-linux-amd64-v1.18.10.gz

# 替换 GUI 用的内核 (路径每家不同)
# Clash Verge Rev macOS: ~/Library/Application Support/io.github.clash-verge-rev.clash-verge-rev/sidecar/clash-meta
mv mihomo-linux-amd64-v1.18.10 ~/.config/clash-verge/sidecar/clash-meta
chmod +x ~/.config/clash-verge/sidecar/clash-meta

回滚后重启 GUI。

命令行直接跑内核测试

定位”GUI 问题 vs 内核问题”的最快方法:

# 提取 GUI 用的配置 (通常在 ~/.config/clash-verge/profiles/xxx.yaml)
cp ~/.config/clash-verge/profiles/active.yaml /tmp/test.yaml

# 直接跑内核
./mihomo -f /tmp/test.yaml -d /tmp/mihomo-test

# 在另一个终端测连接
curl --proxy http://127.0.0.1:7890 https://www.google.com -v

如果命令行通,问题在 GUI;如果命令行也不通,问题在配置或内核。

升级前的预防措施

下次升级 Mihomo 内核或 GUI 时:

  1. 备份当前配置:cp -r ~/.config/clash-verge ~/.config/clash-verge.bak
  2. 记录当前能用的内核版本:./mihomo -v > /tmp/working-version.txt
  3. 不要在工作中升级:留 30 分钟做验证
  4. 看 release notes:gh release view v1.19.0 -R MetaCubeX/mihomo 看 breaking changes

配套订阅的稳定性

订阅本身也会影响升级表现。冲浪笔记长期跟踪的兼容 Clash / Singbox / V2Ray 的订阅在每次 Mihomo 大版本发布后都会做兼容性校验,确保 yaml 字段与新内核兼容。升级 Mihomo 内核遇到问题时,先确认订阅源是否已适配新版本。

总结

Mihomo 升级后无网的五层排查:

  1. GUI 与内核 ABI 匹配 (最常见)
  2. DNS 配置加 prefer-h3: false + ipv6: false
  3. 清理 198.18.0.0/15 系统路由残留
  4. TUN 模式按平台检查 (Wintun/SystemExtension/utun)
  5. 规则集 ruleProviders 引用完整

90% 问题在 (1) 与 (2)。如果都不行,回滚到 1.18.10 是兜底方案。本文 2026-05-20 实测核对。