返回百科

百科

Mihomo:开源代理内核百科

翻墙应用商店 · · 更新于

开源内核GPL-3.0

返回百科 · 查看原内核页面

条目导读

Mihomo(曾称 Clash.Meta)是 MetaCubeX 维护的开源规则代理内核,延续 Dreamacro Clash 内核确立的规则分流路线。它用 YAML 连接规则、策略组、节点来源与 DNS:规则可指向具体节点、策略组或直连出口;指向策略组时,再由组内策略选择实际出口。通过 TUN 接入的系统流量也能沿用这套分流过程。

阅读路径:按“概览 → 核心能力/技术贡献 → 时间线或版本 → 生态与来源”阅读;事实、版本与判断均以正文标注的公开来源为准。

01 · 词条概览

Mihomo(曾称 Clash.Meta)是 MetaCubeX 维护的开源规则代理内核,延续 Dreamacro Clash 内核确立的规则分流路线。它用 YAML 连接规则、策略组、节点来源与 DNS:规则可指向具体节点、策略组或直连出口;指向策略组时,再由组内策略选择实际出口。通过 TUN 接入的系统流量也能沿用这套分流过程。

02 · 核心架构与能力

域名规则与策略组的分工

在 rule 模式下,rules 按配置顺序检查域名、IP、进程等条件,把匹配的连接交给节点、策略组或 DIRECT、REJECT 等出口。以说明性规则“DOMAIN-SUFFIX,example.com,工作”为例,example.com 及其子域的连接会交给“工作”组,再由组内策略选节点。更换工作组的节点时可以保留这条域名规则;同一配置因而能分别组织办公、影音和直连流量。

来源:https://github.com/MetaCubeX/mihomo/blob/0455d0d28c4526937380505153e65a843d8612e8/tunnel/tunnel.go#L654-L710

自动选路、备用出口与负载分配

select 用于手动选节点或其他策略组;url-test 依据指定测试地址的延迟选择节点,tolerance 容差可减少小幅延迟变化带来的切换;fallback 则优先使用列表中靠前且健康检查可用的节点。需要分配连接时,load-balance 提供 round-robin 轮询、consistent-hashing 一致性哈希和 sticky-sessions 黏性会话。健康检查反映到测试地址的连通性与延迟,实际下载吞吐量仍需另测;这些策略选择连接出口,单条连接仍由其选中的节点承载。

来源:https://github.com/MetaCubeX/mihomo/blob/0455d0d28c4526937380505153e65a843d8612e8/docs/config.yaml#L1766-L1829

节点订阅与规则集可以分开维护

proxy-providers 引入节点列表,策略组通过 use 引用,并可按节点名称筛选候选;rule-providers 引入匹配条件,再由 RULE-SET 规则指定这些条件应交给哪个出口。这样,服务商更换节点、规则作者更新域名分类与用户调整出口偏好可以分别进行。规则集按内容分为 domain、ipcidr 和 classical;MRS 二进制规则格式只支持前两类,含其他规则类型的 classical 内容需使用适合它的格式。

来源:https://github.com/MetaCubeX/mihomo/blob/0455d0d28c4526937380505153e65a843d8612e8/docs/config.yaml#L1821-L1999

不同协议共用策略,节点参数分别保留

Shadowsocks、Trojan、VLESS、Hysteria 2、TUIC 等出站可以交给同一套规则和策略组管理,连接各节点所需的参数则各有含义。官方 VLESS/REALITY TCP 示例包含 UUID、Vision flow、服务器名、公钥和 short-id,并要求提供 client-fingerprint;Hysteria 2 使用自己的密码与传输选项;TUIC v4 使用 token,v5 使用 UUID 与密码。导入或转换节点时需要保留对应协议和服务端版本的参数,单有“支持 VLESS”或“支持 TUIC”的标签不足以表达完整配置。

来源:https://github.com/MetaCubeX/mihomo/blob/0455d0d28c4526937380505153e65a843d8612e8/docs/config.yaml#L895-L1603

Fake-IP 怎样保留域名信息

启用 Fake-IP 后,内置 DNS 为域名分配虚拟地址并保存映射;官方示例使用 198.18.0.1/16 地址池。应用连接这个地址时,Mihomo 查回原域名,再交给域名规则和所选出口处理。这使透明接管进来的连接仍能按域名分流。需要返回真实解析结果的域名,可在 blacklist 过滤模式下列入 fake-ip-filter;redir-host 则沿用真实解析结果及地址映射。Fake-IP 依赖 DNS 与连接都经过相应处理,应用自行加密查询时需另外考虑域名信息的获取。

来源:https://github.com/MetaCubeX/mihomo/blob/0455d0d28c4526937380505153e65a843d8612e8/tunnel/tunnel.go#L285-L314

域名用哪个 DNS,DNS 连接走哪个出口

nameserver-policy 按域名或规则集选择解析服务器,适合让内部域名交给内网 DNS、其他域名交给另一组解析器。解析服务器可以使用 DoH、DoT 等传输;DNS 查询本身若也需要按路由规则选出口,可配置 respect-rules。官方配置要求此时提供 proxy-server-nameserver,单独处理代理节点域名的解析;default-nameserver 则用于解析 DNS 服务器自身的域名。排查 DNS 时,可以依次确认业务域名交给哪个解析器、查询连接经哪个出口、节点与解析器自身的域名又由谁解析。

来源:https://github.com/MetaCubeX/mihomo/blob/0455d0d28c4526937380505153e65a843d8612e8/docs/config.yaml#L255-L375

从应用代理入口到 TUN 接管

mixed-port 可以在同一端口接收 HTTP(S) 与 SOCKS 请求,适合能设置代理地址的应用。需要让未显式设置代理的流量进入内核时,可以使用 TUN 虚拟网卡,配合 auto-route 配置系统路由、dns-hijack 接收指定的 DNS 流量。Linux 还提供 auto-redirect;route-address-set 可按 IP 规则集限定接管范围,route-exclude-address-set 让匹配流量绕过。这两项需要 Linux、nftables,并启用 auto-route 与 auto-redirect。部署到路由器时,这些系统条件会直接决定哪些接管方式可用。

来源:https://github.com/MetaCubeX/mihomo/blob/0455d0d28c4526937380505153e65a843d8612e8/docs/config.yaml#L133-L163

面板控制与图形客户端各自负责什么

external-controller 提供控制接口,external-ui 指定网页面板文件;官方 README 列出的 metacubexd 是可配合使用的独立面板。HTTP 控制接口可通过 secret 使用 Bearer 认证,局域网访问范围由监听设置决定。桌面或手机客户端在此之外还负责订阅导入、界面、权限和系统代理或 VPN 集成。选择客户端时需要查看它实际携带的内核版本及开放的配置项;Mihomo 的配置能力与客户端的可操作界面分别由两边实现。

来源:https://github.com/MetaCubeX/mihomo/blob/0455d0d28c4526937380505153e65a843d8612e8/docs/config.yaml#L67-L95

v1.19.34 的新增与修复

v1.19.34 新增 Shadowsocks listener 多用户、Snell v6 的出站与入站支持,以及 ss-password 命令行凭据生成功能;发行说明还记录 TUN auto-route 规则、TFO 在新 Go 版本上的失效、SOCKS 域名长度算术溢出和 HTTP CONNECT 响应缓存等修复。这些变化分别影响多用户监听、节点兼容、凭据生成、透明接管和连接稳定性;发行说明没有把它们扩写成所有下游客户端都已同步的能力。

来源:https://github.com/MetaCubeX/mihomo/releases/tag/v1.19.34

源码、许可与下游命名

Mihomo 源码附带 GPL v3 许可证正文,README 另声明与 MetaCubeX 无关的下游项目名称不得包含 mihomo 一词。复用源码、分发修改版或为下游项目命名时,需要一并阅读这两处声明。采用 Mihomo 的图形客户端还包含自己的界面和平台集成代码,其源码与许可另行记录在相应应用页面。

来源:https://github.com/MetaCubeX/mihomo/blob/0455d0d28c4526937380505153e65a843d8612e8/README.md#license

出站协议

按官方文档逐一核验的出站代理类型;各类协议的传输层与参数以官方文档为准。

  • Shadowsocks
  • ShadowsocksR
  • VMess
  • VLESS
  • Trojan
  • Hysteria
  • Hysteria 2
  • TUIC
  • WireGuard
  • SSH
  • SOCKS5
  • HTTP
  • Mieru
  • AnyTLS
  • Snell
  • OpenVPN
  • MASQUE
  • ShadowQUIC
  • TrustTunnel
  • Sudoku
  • Tailscale
  • ZeroTier
  • EasyTier
  • DNS
  • DIRECT / REJECT:内置出口类型

来源:https://github.com/MetaCubeX/mihomo/blob/0455d0d28c4526937380505153e65a843d8612e8/docs/config.yaml

入站类型

监听器入站与协议入站;TUN 接管的系统流量沿用同一套分流规则。

  • HTTP
  • SOCKS5
  • Mixed
  • TUN
  • Redirect
  • TPROXY
  • Tunnel
  • Shadowsocks
  • VMess
  • VLESS
  • Trojan
  • Hysteria 2
  • TUIC(v4 / v5)
  • AnyTLS
  • Mieru
  • Snell
  • ShadowQUIC
  • Sudoku
  • TrustTunnel

来源:https://github.com/MetaCubeX/mihomo/blob/0455d0d28c4526937380505153e65a843d8612e8/docs/config.yaml

规则与 DNS

规则类型、规则集格式与 DNS 能力均来自官方配置文档的固定版本。

  • DOMAIN 系列匹配
  • GEOSITE
  • GEOIP / IP-CIDR / IP-ASN
  • RULE-SET:规则集支持 yaml / text / mrs,MRS 仅 domain 与 ipcidr
  • SUB-RULE
  • AND / OR / NOT 逻辑规则
  • 进程匹配
  • Fake-IP
  • DoH / DoT / DoQ
  • nameserver-policy
  • hosts 映射

来源:https://github.com/MetaCubeX/mihomo/blob/0455d0d28c4526937380505153e65a843d8612e8/docs/config.yaml

平台与安装形态

单二进制压缩包分发;v1.19.34 发行页的资产列表覆盖多个操作系统与架构,以发行页资产为准。

  • Windows
  • macOS
  • Linux
  • Android
  • FreeBSD

来源:https://github.com/MetaCubeX/mihomo/releases/tag/v1.19.34

发布分支说明

官方在同一仓库维护 Alpha 开发分支,先行合入新特性与修复,构建节奏快于稳定版;本页稳定版本记录不包含 Alpha 构建。

来源:https://github.com/MetaCubeX/mihomo/tree/Alpha

03 · 维护者与生态

生态项目

  • metacubexd(dashboard):MetaCubeX 官方面板,mihomo README 明确其对本项目的一级支持。;来源
  • Yacd-meta(dashboard):MetaCubeX 组织维护的 Yacd 面板分支。;来源
  • zashboard(dashboard):通过 Clash API 连接的第三方面板,README 以 mihomo 配置为例。;来源

04 · 发展纪事

历史记录 ID:clash-public-release、mihomo-repo-earliest-release、clash-repositories-change、mihomo-rename、mihomo-1-18-release、mihomo-v1-19-0-release

05 · 来源与边界

本页依据截至 2026-11-13 的官方仓库、官方文档和发行记录整理。内核页面保留原有 /cores/mihomo 页面;本 Wiki 只提供独立的百科阅读入口。

↑ 返回目录