机场博客JICHANGBOKE.ORG

Mihomo 内核是什么,和当年的 Clash 什么关系

作者 塔台君发布 约 3 分钟读完

Mihomo 是 MetaCubeX 维护的开源代理内核,从 Clash 分支而来,旧名 Clash Meta。原版 Clash 仓库 2023 年底消失后,机场发的 Clash 订阅实际由它执行。它读 YAML 配置,自己没有界面。

机场用户中心那一排订阅按钮里,多半有一个写着 Clash。点开链接看到的是一份 YAML,开头是 proxies,接着 proxy-groupsrules。这套格式确实是 Clash 定下来的,但现在把它跑起来的程序,八成叫 Mihomo。

原版 Clash 的位置是空的

Mihomo 由 Clash 分支而来,早先叫 Clash Meta,MetaCubeX 这个组织维护。它的 README 在致谢一栏把 Dreamacro/clash 放在第一条,后面跟着 sing-box、go-shadowsocks2、v2ray-core、wireguard-go 几个。

原版那个仓库现在打不开。本站核对当天访问 GitHub 上的 Dreamacro/clash 仍然取不到任何内容。两个曾经最常见的图形客户端 Clash for Windows 和 Clash for Android 也都停更了,本站客户端库里给它们标的内核是原版 Clash,状态是已停更。

结果就是,Clash 这个词现在更像一种订阅格式的名字,而不是某个正在维护的程序。代理内核是什么那篇里说的界面与内核分工,放在 Clash 系上看得最清楚,界面换了好几代,底下那个内核换成了 Mihomo。

打开仓库会先看到一个和代理无关的项目

想去看源码的人容易在这里卡一下。

MetaCubeX/mihomo 的默认分支是 main,那个分支里放的是一份和原神星穹铁道数据有关的 Python 库,README 写着 pydantic model,许可证是 MIT。GitHub 仓库页上的一句话简介也是这个 Python 库的描述。

内核代码在另外两个分支上。Meta 是正式线,README 的标题是 Meta Kernel,许可证是 GPL-3.0。Alpha 是开发线,文档说明它基于最新的 Alpha 分支撰写。要看代码就手动切分支,要下程序直接去发布页。

文档站那边也有一层类似的包装。wiki 首页把这个内核称作虚空终端,说它是基于开源项目原神的二次开发版本,那个链接指向的是米哈游那款游戏的官网。同一页下面还有一句,虚空终端支持原神的全部特性,支持原神 Premium 核心部分特性。对着 README 的致谢读,这里的原神对应的是 Clash,原神 Premium 核心对应 Clash Premium。本站没有找到项目方对这套替换的公开解释。

有一条声明是认真的。README 和 wiki 都写着,任何与 MetaCubeX 无关的下游项目名称中不得包含 mihomo 一词。

版本号接着 Clash 那条线往下排

发布页上的号码能看出这条线没断过。

版本 发布日期
v1.8.0 2021-12-21
v1.14.0 2023-01-01
v1.17.0 2023-12-03
v1.19.0 2024-12-09
v1.19.3 2025-03-03
v1.19.30 2026-08-16
v1.19.31 2026-09-14

仓库建于 2021 年 5 月 20 日,本站核对当天星标 3.4 万。v1.19 这一支从 2024 年 12 月开始,到 2026 年 9 月已经排到第 31 个小版本,中间几乎每月都有更新。

几个和机场用户直接相关的时间点都在这条线上。AnyTLS 从 2025 年 3 月 3 日的 v1.19.3 起能用。2026 年 8 月 16 日的 v1.19.30 起,AnyTLS 节点默认不再上报 client-metadata,文档给的理由是这一项可能被用于统计客户端信息并区别对待,来龙去脉在 AnyTLS 那篇里。

一份 Clash 配置里,内核在读哪几段

订阅文件里的东西大致分三块,节点、策略组、规则。内核三块都读。

mode: rule
log-level: info
external-controller: 127.0.0.1:9090
unified-delay: true
tcp-concurrent: true

proxies:
  - name: "香港 01"
    type: vless
    server: hk01.example.com
    port: 443
    uuid: 00000000-0000-4000-8000-000000000000
    tls: true

proxy-groups:
  - name: "节点选择"
    type: select
    proxies: ["香港 01"]

rules:
  - DOMAIN-SUFFIX,example.com,节点选择
  - GEOIP,CN,DIRECT
  - MATCH,节点选择

上面那几行全局配置值得认一下。moderuleglobaldirect 三个取值,决定按规则分流还是全部走代理。unified-delay 会重新计算延迟以消除握手带来的差异,测速数字看着更公平。tcp-concurrent 让内核对解析出来的多个 IP 同时发起连接。find-process-mode 管按进程分流,geodata-mode 决定用 mmdb 还是 dat 格式的 IP 库。

README 列的能力还包括内置 DNS 服务器,支持 DoH 和 DoT 上游以及 fake IP,规则可以按域名、GEOIP、IP 段或进程名分流,策略组支持自动回退、负载均衡和按延迟自动选择,另外有远程 provider 和一整套 HTTP RESTful API。

本站 80 款客户端里有 34 款用它

本站客户端库到 2026 年 9 月 18 日核对时收了 80 款,标注用 Mihomo 的有 34 款,占了四成以上,是所有内核里最多的。Clash Verge RevFlClashClash PartyOpenClash 都在这一栏。相比之下,用 sing-box 的只有 4 款。

Mihomo 自己的 wiki 上也挂着一份客户端清单,按 Windows、macOS、Linux、安卓、iOS 和路由器几类分开列,同时声明它们并不直接控制这些工具和客户端的开发。内核出了新版本,各家客户端什么时候跟上,是各家自己的事。

这种分工带来一个实际问题。同一个内核版本,在 A 客户端里是最新的,在 B 客户端里可能落后半年。想用新协议又发现节点导不进来时,先看客户端设置页里那个内核版本号,再去发布页对一眼。

Clash Verge Rev 在这件事上做得比较方便,设置里能在正式版和 Alpha 版内核之间切换。别的客户端多数只能等作者更新。

什么时候需要关心内核版本

日常不用管。下面这几种情况例外。

订阅里的节点少了几个,客户端日志里有认不出类型的提示,八成是内核不认识某个新协议。

REALITY 节点突然握不上手。2026 年 7 月起有一个具体的兼容性问题,Mihomo 文档写明不会考虑 Xray v26.7.11 及以上版本服务端的兼容性,细节在 REALITY 那几个参数里。

想用 AnyTLS 加 REALITY 的组合。文档写得很硬,不支持,未来也不会支持,只能换协议或者换别的隐藏 SNI 的办法。

常见问题

Mihomo 和 Clash 是什么关系

Mihomo 由 Clash 分支而来,一度叫 Clash Meta。它的 README 在致谢里把 Dreamacro/clash 列在第一条,版本号也接着 Clash 那条线往下走。原版 Clash 的仓库 2023 年底起打不开了,现在机场写着 Clash 订阅的那条链接,多数客户端拿去喂的是 Mihomo。

为什么 mihomo 仓库首页是个 Python 项目

因为默认分支 main 上放的不是内核代码。那个分支里是一份和原神星穹铁道数据有关的 Python 库,许可证写 MIT。内核代码在 Meta 和 Alpha 两个分支上,README 标题是 Meta Kernel,许可证是 GPL-3.0。想看代码或下载正式版,要手动切到 Meta 分支,或者直接去发布页。

Mihomo 内核最新是什么版本

本站 2026 年 9 月 18 日核对发布页时,最新版是 9 月 14 日的 v1.19.31。它的版本号从 2021 年 12 月的 v1.8.0 一路排下来,中间没有断档,v1.19 这一支从 2024 年 12 月开始,到现在已经发到第 31 个小版本。多数图形客户端会跟着自己的更新一起换内核。

Mihomo 和 sing-box 的配置能混用吗

不能。Mihomo 读 YAML,节点写在 proxies 下面,策略组是 proxy-groups,规则是 rules。sing-box 读 JSON,节点在 outbounds 里,路由规则在 route 里。两边的字段名和层级都不一样,机场要分别提供两种格式的订阅。

来源

MihomoClash代理内核MetaCubeX

接着读