机场推荐网

mihomo 内核是什么,Clash 系客户端的设置项从哪来

mihomo 旧名 Clash Meta,由 MetaCubeX 开发,读 Clash 格式的 YAML。Clash Verge Rev 设置页的不少开关,改的就是它配置里的某项。

更新于 9 分钟读完作者 阿量参考了 23 份一手资料

本站教程图库里有两张 Clash Verge 旧版界面的截图,拍的是设置页。Clash 设置那一栏从上往下排着局域网连接、IPv6、日志等级、端口设置、外部控制、Web UI、Clash 字段,最底下那一行管内核,版本号一栏写着 2023.08.17 Premium。点这一行的小齿轮,弹出的窗口里只有两个选项,Clash 和 Clash Meta。选中 Clash Meta,点重启内核,那一行就变成了 v1.16.0 Meta。

弹窗里的 Clash Meta,就是今天的 mihomo。设置页上的前六项,改的都是它配置文件里的某一行。名字和版本先讲清楚,再回头把这几项一个个对上。

改名落在 v1.17.0,二进制文件从 clash.meta 变成 mihomo

改名这件事,在 MetaCubeX 的发布页上看得最清楚。2023 年 9 月 25 日的 v1.16.0,发布页上的文件还是 clash.meta 开头,比如 clash.meta-darwin-arm64-v1.16.0.gz,这一版的更新说明里有一条支持 Hysteria2。到 2023 年 12 月 3 日的 v1.17.0,文件名一律换成 mihomo 开头,更新说明把破坏性变更放在最前面,二进制文件名改为 mihomo,默认配置路径等大部分常量也一起改掉,提醒升级前先检查这些文件和路径。

截图里的 v1.16.0,就是改名前的那一代。Clash Verge Rev 的 README 今天还把内核写作 Clash.Meta(mihomo),新旧两个名字并排挂着。

仓库本身也有点绕。GitHub 默认打开的 main 分支里是一个 MIT 许可的 Python 库,简介说它处理崩坏星穹铁道的数据,和代理毫无关系。内核代码放在另外两条分支,Meta 分支出正式版,README 标的许可证是 GPL-3.0,Alpha 分支是开发线。文档站把这个内核称作虚空终端,还立了一条规矩,和 MetaCubeX 没关系的下游项目,名字里不许带 mihomo 这个词。

正式版和 Alpha 版,两条线同时在发

分支页上看得出两条线的节奏。我 9 月 20 日打开时,Meta 分支最后一次更新在 9 月 14 日,正是 v1.19.31 发布那天,Alpha 分支是 9 月 19 日,main 分支还停在 2025 年 2 月 21 日。

正式版按 v1.19.x 往下编号。v1.19.0 发布于 2024 年 12 月 9 日,到 2026 年 9 月 14 日的 v1.19.31,这一支的版本号排到了 31,写这篇时它是最新的正式版。

Alpha 版没有编号。发布页上有一个名叫 Prerelease-Alpha 的预发布,由 GitHub Actions 自动生成,说明只有一句,同步 Alpha 分支的代码更新,只保留最新版本。我看到的那一份打包于 9 月 19 日晚上,分支一有更新它就跟着重打,旧的不留。

mihomo 的文档是照着 Alpha 分支写的,首页开头就注明了。在文档里查得到、正式版却不认的配置项,多半差在这里。Clash Verge Rev 的 README 写明可以把内核切到 Alpha 版,想提前用新功能的人有这条路,测试版的毛病也得自己担着。

2026 年最近两个正式版改了什么

v1.19.30 发布于 8 月 16 日,和机场用户关系最大的一条落在 AnyTLS 上。这一版给 AnyTLS 节点加了 client-metadata 配置项,并且默认不再发送。文档解释了原因,这一项可能被服务端拿去统计客户端信息、区别对待,真需要的话自己在配置里填。同一版还给 Hysteria2 加了握手超时参数 handshake-timeout,修了一个 crypto/tls 的漏洞,编号 CVE-2026-56862。AnyTLS 协议本身是怎么回事,见 AnyTLS 那篇

v1.19.31 在 9 月 14 日发布,新功能是 EasyTier 出站、TUN 的 stack: mips 选项和 ZeroTier 的 identity-secret。修复的部分涉及第一代 Hysteria 的 UDP、VLESS 解密清理时的崩溃,还有 Snell、TUIC、mieru 等几种协议关闭连接时的问题。

这两版新增的出站有个共同点。ZeroTier 和 EasyTier 都是组网工具,mihomo 的节点类型清单里还能看到 Tailscale、OpenVPN、WireGuard。从这两版看,它在往组网的方向扩,这些类型和机场订阅没什么关系,知道有这回事就行。

设置页那几项,在配置文件里对应哪一行

回到开头那张截图。Clash 设置一栏的前六项,都能在 mihomo 文档的全局配置和端口配置两页里找到对应的键。

截图里的名字 配置里的键 文档里的说明
局域网连接 allow-lan 默认关,打开后别的设备可以经过这台机器的代理端口上网
IPv6 ipv6 默认开,决定内核收不收 IPv6 流量
日志等级 log-level 默认 info,另有 silent、error、warning、debug 四档
端口设置 mixed-port 混合端口一个口同时收 HTTP(S) 和 SOCKS5
外部控制 external-controllersecret 默认只在本机的 9090 端口监听,secret 是它的访问密钥
Web UI external-ui 把网页面板的静态文件挂到控制接口上

局域网连接这一项有个很实际的用法。手机和电脑连着同一个路由器,电脑上打开它,手机 Wi-Fi 的代理填电脑的局域网 IP 和混合端口,手机就借着电脑的节点上网了。文档里配套还有一个 bind-address,默认是星号,所有地址都能连进来。

Web UI 那一项顺带牵出 MetaCubeX 自己的面板。文档给 external-ui-url 举的例子指向 MetaCubeX/metacubexd,也是这个组织名下的项目。

截图里没露面的还有规则数据。规则里写着 GEOIP、GEOSITE 的那几行,要靠内核本地的数据文件来判断一个 IP 或域名属于哪里。文档里 geo-auto-update 默认关,打开后按 geo-update-interval 定时更新,示例值是 24 小时,下载地址在 geox-url 里改。数据文件太旧,新出现的域名就可能被分错流。

延迟数字和自动选择是怎么算出来的

节点列表旁边那个毫秒数,来自内核的健康检查。mihomo 文档里 url-test 这一类策略组就叫自动选择,示例是每 300 秒拿 https://www.gstatic.com/generate_204 测一遍,挑延迟最低的节点。tolerance 叫节点切换容差,以毫秒计,候选节点要比正在用的快出这么多才会换过去,免得来回跳。lazy 默认开,这个组没人用的时候就不测。同一页还列了另外几类组,fallback 是自动回退,load-balance 是负载均衡,relay 是链式代理,select 就是手动选。

同一个节点,换个客户端显示的毫秒数可能对不上,原因之一是 unified-delay。它默认关,打开后内核改为计算 RTT,文档说目的是抹平连接握手这类因素在不同类型节点之间造成的差别。两个客户端一个开一个没开,读数自然不同。这个数字只反映测试网址回得多快,下载速度要另看,测速图怎么看那篇把几个读数分开讲了。

开着代理 ping 出 198.18 开头的地址

mihomo 的 DNS 有两种模式,enhanced-mode 可选 fake-ip 和 redir-host,文档写的默认值是 redir-host。配置里写成 fake-ip 的时候,程序查询一个域名,内核不去真的解析,直接从 198.18.0.1/16 这段地址里分一个假 IP 给它,等连接进来,再拿对应的域名去对规则。

198.18 这一段在 IANA 的登记表里叫 Benchmarking,出处是 RFC 2544,标注为不可全局访问,本来就是留给测试用的。开着代理 ping 一个网站,看到这一段的地址属于正常现象。个别必须拿到真实 IP 的域名要写进 fake-ip-filter,文档的说法是列在这里的地址不会拿到 fakeip 映射。这个模式和 DNS 泄露的关系,见 Fake-IP 词条

哪些客户端在用它

本站客户端资料库里,内核标 mihomo 的有 44 款。安卓上有 MetaCubeX 自己维护的 Clash Meta for Android,电脑上有 Clash Verge Rev、Clash Party 和 Sparkle,FlClash 电脑和安卓都有,鸿蒙上有 ClashBox,路由器上有 OpenClash。Clash Party 的 README 写着内置两个内核,一个是 mihomo,另一个叫 Smart 内核。

内核和客户端各发各的版,客户端把新内核打包进去,用户才用得上,所以设置页里显示的内核版本,可能比发布页上的旧一些。原版 Clash 怎么一步步让位给 mihomo,Clash 生态纪事按时间理了一遍。mihomo 和 sing-box、Xray 怎么分工,见代理内核是什么

常见问题

Clash Meta 和 mihomo 是同一个内核吗

是同一个项目。MetaCubeX 的仓库在 2023 年 12 月 3 日发布 v1.17.0,二进制文件名从 clash.meta 改成 mihomo,默认配置路径等常量也跟着改了,版本号接着 v1.16 往下排。Clash Verge Rev 的 README 至今把内核写作 Clash.Meta(mihomo)。

mihomo 的 Alpha 版和正式版差在哪

正式版从 Meta 分支打包,带 v1.19.31 这样的版本号。Alpha 版是发布页上一个叫 Prerelease-Alpha 的预发布,由 GitHub Actions 跟着 Alpha 分支自动打包,只保留最新一版。文档照 Alpha 分支写,文档里的新功能可能只有 Alpha 版才有。本站没有长期用过 Alpha 版,日常用正式版更稳妥。

开着 Clash 客户端 ping 网站,为什么返回 198.18 开头的 IP

这是 fake-ip 模式在起作用。这个模式下 mihomo 不做真实解析,从 198.18.0.1/16 里分一个假地址给程序,连接进来以后再按域名分流。这一段是 RFC 2544 划给基准测试的地址,不在公网上用。网页能正常打开就不用管,确实需要真实 IP 的域名加进 fake-ip-filter。

mihomo 升到 v1.19.30 以后,AnyTLS 节点要改设置吗

只有机场服务端要求 client-metadata 时才需要。v1.19.30 把这一项改成默认不发送,文档的理由是它可能被拿去统计客户端并区别对待。服务端要是离不开它,就得在节点配置里手动补上,具体填什么问机场客服。

手机能借电脑上的 mihomo 代理上网吗

能,前提是两台设备在同一个局域网。在客户端里打开局域网连接,对应配置里的 allow-lan,再把手机 Wi-Fi 的代理设成电脑的局域网 IP 加混合端口。Windows 第一次弹出防火墙提示时要允许专用网络,点了取消,手机就连不进来。

参考来源

  1. mihomo 仓库信息,默认分支、简介与许可证
  2. mihomo 分支页
  3. mihomo 仓库 Meta 分支 README
  4. mihomo v1.16.0 发布信息
  5. mihomo v1.17.0 发布信息,二进制改名的破坏性变更
  6. mihomo v1.19.0 发布信息
  7. mihomo v1.19.30 更新说明
  8. mihomo v1.19.31 更新说明
  9. mihomo 最新正式版发布信息
  10. mihomo Prerelease-Alpha 发布页
  11. mihomo 文档首页
  12. mihomo 文档,全局配置
  13. mihomo 文档,代理端口
  14. mihomo 文档,DNS
  15. mihomo 文档,策略组
  16. mihomo 文档,url-test 策略组
  17. mihomo 文档,代理节点类型
  18. mihomo 文档,AnyTLS 节点
  19. Clash Verge Rev 仓库 README
  20. Clash Party 仓库 README
  21. IANA 特殊用途 IPv4 地址登记表
  22. 本站教程图库里的 Clash Verge 旧版设置页截图两张
  23. 本站客户端资料库,内核标注为 mihomo 的 44 款

更新记录

  • 首次发布