翻墙侠 - 自由上网的好帮手

Mihomo 内核怎么选择?按订阅协议、设备和配置格式判断

更新于 2026-11-05 · fanqiangxia.top

简答:如果你的订阅主要是 Clash/Mihomo 兼容的 YAML 配置,并需要规则、DNS、TUN 和常见节点协议,通常先选 Mihomo;如果配置本身是 sing-box JSON,或客户端明确要求 sing-box 字段,就不要强行转换。切换前先备份配置,再用客户端内核信息、日志和实际连通性三步确认。

定义:Mihomo 内核是负责解析代理配置、建立节点连接、执行 DNS 与路由规则并接管流量的网络核心,不等同于图形客户端或订阅服务。

先看结论:什么情况下选择 Mihomo

本文是独立使用指南,不代表任何客户端、订阅服务或相关项目的官方立场。判断内核时,不要先看客户端名称,而要先确认三件事:订阅提供什么配置格式、节点使用什么协议、客户端是否允许切换内核。

你的情况优先考虑原因与限制
订阅是 Clash 风格 YAML,包含规则组、代理提供者或规则集Mihomo更适合沿用现有配置结构;仍需确认客户端实际支持的字段。
订阅或本地配置是 sing-box JSON,使用其 route、rule_set、inbounds、outbounds 结构sing-box配置模型不同,不能把 JSON 直接当作 Mihomo YAML 使用。
节点包含 VLESS、Reality、Hysteria2、TUIC 或 WireGuard先对照协议字段,再选内核“协议名称相同”不代表参数字段、传输方式和订阅格式完全兼容。
只需要普通 HTTP、SOCKS 或固定端口代理Mihomo 或 sing-box 均可优先选择客户端默认且日志清晰的内核,不必为单一功能频繁切换。
需要 TUN、DNS 接管或按应用分流选择客户端明确支持的内核TUN 还受系统权限、路由、DNS 和客户端实现影响,内核名称不是唯一决定因素。

截至 2026 年 11 月 5 日,Mihomo 文档列出了 VLESS、Hysteria2、TUIC、WireGuard 等配置入口,并单独说明了 TUN、DNS、代理组和规则配置。具体字段以Mihomo 配置文档和客户端当前界面为准。

先分清三层:客户端、内核和订阅配置

客户端是你能看到设置页面的应用,例如桌面端、移动端或路由器管理程序;内核负责解析配置、连接节点、执行规则与 DNS;订阅配置则是节点、代理组、规则和 DNS 参数的来源。三者不是同一个东西。

  • 客户端不等于 Mihomo。一个客户端可能内置多个内核,也可能只支持其中一个。
  • 内核不等于订阅服务。内核只能处理配置并建立连接,不能决定节点本身是否在线、线路质量如何或订阅是否有效。
  • 配置格式会影响兼容性。Mihomo 配置通常围绕 YAML 结构展开;sing-box 官方文档明确使用 JSON 配置,并包含 inbounds、outbounds、dns 和 route 等顶层字段,参见sing-box 配置结构说明。
  • Meta、Mihomo 等标签不能单独证明当前运行内核。有些客户端的设置名称可能沿用旧标签或兼容名称,应以版本页、内核文件名、启动日志和配置校验结果为准。

因此,看到“Clash”“Meta”或“Mihomo”时,不要立即把它们当成客户端名称。正确做法是打开客户端的内核管理页,记录当前内核名称和版本,再查看启动日志中是否出现对应内核标识。

按订阅协议判断:哪些情况适合先用 Mihomo

协议判断不是只看节点名称,而是看配置中实际出现的字段。Mihomo 文档分别提供了 VLESS、Hysteria2、TUIC、WireGuard 等配置说明。例如 VLESS 配置可能涉及 flow、network、TLS 和 reality-opts;WireGuard 则涉及密钥、地址和 allowed-ips。遇到导入后节点消失或报错,应先对照对应协议页面,而不是盲目更换内核。

配置线索先检查什么选择建议
type: vless,带 TLS、Reality 或传输层字段UUID、服务器名、端口、TLS、Reality 参数和传输方式若原配置是 Mihomo YAML,先用 Mihomo 校验;不要把字段直接改成 sing-box JSON。
type: hysteria2、QUIC 或 UDP 相关字段认证信息、TLS、端口、拥塞和 UDP 是否被客户端允许确认客户端和内核均支持该协议;Mihomo 的协议入口可参考Hysteria 配置文档。
type: tuicUUID、密码、TLS、UDP 与 IP 版本先检查配置字段是否被当前内核识别,再判断节点连接问题。
type: wireguard私钥、公钥、地址、Allowed IP、MTU 和 UDP适合在确认客户端支持 WireGuard 后使用;Mihomo 字段可参考WireGuard 配置文档。

如果日志显示 unsupported proxy type,最小排查闭环是:先确认节点类型拼写,再确认客户端实际加载的内核,最后对照该内核的协议文档检查字段。不要仅凭延迟有返回,就断言节点已经完全可用。

Mihomo 与 sing-box:按配置生态和使用方式选择

两者都能处理代理节点、DNS、路由和 TUN,但配置组织方式不同。Mihomo 文档把代理、代理组、规则、DNS、TUN 等内容放在其配置体系中;sing-box 则以 JSON 为基础,使用 inbounds、outbounds、route 和 dns 等模块。

比较项Mihomosing-box
配置格式以 YAML 风格配置为主,常见于代理组、规则集和代理提供者结构。官方配置使用 JSON,并提供 JSON Schema、检查和格式化命令。
规则与路由围绕规则、规则集、代理组和策略选择组织。围绕 route、rules、rule_set 和 final 等结构组织。
DNS支持 nameserver、fallback、fake-ip、nameserver-policy 等配置项,详见Mihomo DNS 文档。DNS 是独立配置模块,并可与 route、DNS rule 和 TUN 行为联动。
TUN可用于系统流量接管、DNS 劫持和按应用路由,但依赖系统权限与客户端实现。官方文档列出 Windows、macOS、Linux 等支持范围及 auto_route、DNS 模式等字段,参见sing-box TUN 文档。
适合谁已有 Clash 风格订阅、规则组或代理提供者配置的用户。愿意使用 JSON 配置,或订阅、客户端明确要求 sing-box 结构的用户。

这里不比较未经统一测试条件得到的速度、内存占用或稳定性排名。内核选择首先是兼容性问题,其次才是功能和操作习惯问题。

Windows、macOS、Android、Linux 和路由器怎么选

  • Windows:先选择客户端默认支持且能显示详细日志的内核。需要 TUN 时,确认管理员权限、虚拟网卡、系统代理和 DNS 接管是否同时生效。
  • macOS:先确认客户端是否允许安装或启用系统级网络组件。若只使用浏览器或支持 HTTP/SOCKS 的应用,优先从普通代理端口开始,确认节点可用后再启用 TUN。
  • Android:先确认客户端使用的是系统 VPN、TUN 还是普通代理模式。若开启了 Private DNS,Mihomo 文档提示 DNS 自动劫持可能受到影响,应先记录原设置再调整。
  • Linux:命令行或服务化部署更适合按配置文件和日志管理。启用 TUN 后,要同时检查路由表、DNS、权限和出口网卡,不能只看客户端是否显示“运行中”。
  • OpenWrt 或其他路由器:先核对 CPU 架构、客户端支持的内核格式和设备资源,再决定使用 Mihomo 还是 sing-box。不要因为配置能导入就推断所有规则、DNS 和 TUN 行为都一致。

平台选择的核心原则是:客户端能否加载该内核、设备是否支持所需网络模式、配置是否能通过校验,以及切换后是否能完成实际复测。

切换内核前后的可回滚操作

  1. 备份:复制当前订阅配置、本地覆写文件、规则集和 DNS 设置,单独保存为只读备份。不要直接覆盖原文件。
  2. 记录现状:记下当前内核名称、版本、代理端口、TUN 开关、DNS 模式,以及一个已知可以访问的测试目标。
  3. 先用最小配置测试:只保留一个节点和最基本的代理模式,暂时不要同时修改 DNS、MTU、规则集和 TUN。这样可以区分是节点问题还是配置问题。
  4. 校验配置:检查节点类型、必填字段、缩进或 JSON 括号。sing-box 可按官方文档使用 sing-box check 检查配置;Mihomo 则应使用客户端提供的配置校验或查看启动日志。
  5. 逐项恢复:先验证节点连接,再恢复规则组,再启用 DNS 覆写,最后测试 TUN。每完成一项就查看日志和网页加载结果。
  6. 失败回滚:关闭新内核或 TUN,恢复备份配置,重新启用原内核。若恢复后仍异常,再检查系统代理、DNS 和路由是否被新配置改动。

验证至少分四层:DNS 是否解析、代理端口是否监听、节点连接是否建立、网页或应用是否实际加载。只有延迟测试返回,不足以证明规则、DNS、UDP 或 TUN 全部正常。

常见报错与分流方法

现象优先检查下一步
节点导入后消失节点类型是否被当前内核识别,配置是否被客户端过滤打开原始配置,确认 type 和必填字段,再查看启动日志。
提示 unsupported proxy type内核版本、协议类型、字段名称对照对应协议文档;若订阅明确要求另一种内核,恢复备份后再换客户端或内核。
规则解析失败规则格式、规则集下载、代理组名称是否存在先删除非必要规则,只保留一个节点直连测试,再逐个恢复规则。
TUN 开启后断网系统权限、DNS 模式、自动路由、出口网卡和防火墙关闭 TUN,确认普通代理端口可用后,再按Mihomo TUN 文档逐项启用。
能解析域名但网页打不开代理端口、节点握手、规则命中和 TLS 参数区分 DNS 成功与代理连接成功,查看日志中是否出现连接建立或握手失败。

最终选择清单

如果你仍然无法判断,可按以下顺序做决定:

  1. 配置是 YAML 风格、已有代理组和规则集:优先测试 Mihomo。
  2. 配置是 sing-box JSON,或字段明显采用 route、outbounds、rule_set:优先使用 sing-box。
  3. 包含 VLESS、Reality、Hysteria2、TUIC、WireGuard:先查协议字段和客户端支持,不要仅凭协议名称决定。
  4. 需要 TUN 或 DNS 接管:先验证普通代理,再启用系统级接管,出现断网时按备份回滚。
  5. 客户端设置里显示 Meta、Mihomo 或其他标签:以实际内核版本、日志和配置校验结果为准。

一句话概括:已有 Clash 风格配置就先试 Mihomo;已有 sing-box JSON 就先用 sing-box;遇到导入或连接问题,先确认配置格式和实际内核,再处理节点、DNS、规则与 TUN。

常见问题

Mihomo 和 Clash Meta 是不是同一个内核?

页面标签可能因客户端或历史兼容命名而不同,不能只凭名称下结论。应查看客户端内核管理页、启动日志和实际版本信息;配置字段则以当前 Mihomo 文档为准。

订阅里有 VLESS、Reality,就一定要选择 Mihomo 吗?

不一定。VLESS 和 Reality 只是协议或参数线索,还要看订阅是 YAML 还是 sing-box JSON、客户端是否支持对应字段,以及 TLS、传输层和流控参数是否匹配。

Mihomo 能不能直接导入 sing-box 的 JSON 配置?

不能默认认为可以。两者的顶层结构和字段体系不同,直接导入可能出现解析失败、节点消失或规则不生效。应使用对应内核的配置格式,或通过可靠的转换工具后再逐项核验。

切换 Mihomo 内核后 TUN 不能用怎么办?

先关闭 TUN并恢复普通代理模式,确认节点和代理端口正常,再检查系统权限、虚拟网卡、DNS 模式、自动路由、防火墙和出口网卡。不要同时修改 MTU、DNS 和规则集,否则难以定位。

怎么看客户端实际运行的是哪个内核?

打开客户端的内核管理或关于页面,记录名称和版本;随后查看启动日志中是否出现对应内核标识,并用一个最小配置验证节点、规则和 DNS。界面名称与实际内核不一致时,以日志和版本信息为准。

相关阅读

参考资料

  1. Mihomo 配置文档
  2. Mihomo 入站与 TUN 配置文档
  3. Mihomo TUN 配置文档
  4. Mihomo DNS 配置文档
  5. Mihomo VLESS 配置文档
  6. Mihomo Hysteria 配置文档
  7. Mihomo WireGuard 配置文档
  8. sing-box 配置结构与检查命令
  9. sing-box TUN 配置文档
  10. sing-box 路由配置文档
  11. Mihomo Releases 页面