mihomo详解
mihomo(Clash Meta)详解(2026 年中)
网络工程 / 协议实现学习向文档。聚焦规则分流模型、配置结构、协议支持与生态定位。
1. 概述与定位
mihomo 是开源社区对 Clash.Meta 的正式命名(由 MetaCubeX 维护),它是经典代理客户端 Clash(Dreamacro 原作)的功能增强分支。社区口语里仍常叫它”Clash Meta”。
它的核心标签:
- 规则分流体验最佳:proxy-group(代理组)+ rule(规则)模型,是多节点”自动选优 / 故障切换 / 负载均衡”体验的标杆。
- YAML 配置:人类可读、结构清晰,是它与 Xray/sing-box(JSON)最直观的区别。
- 协议覆盖广且持续吸收新协议(Hysteria2、TUIC、VLESS+Reality 均已支持)。
2. 项目背景与生态
| 项目 | 说明 |
|---|---|
| 上游 | Clash(Dreamacro,已停止维护) |
| 分支 | Clash.Meta → 重命名 mihomo(MetaCubeX) |
| 语言 | Go |
| 配置格式 | YAML |
| 标志性特性 | 代理组(proxy-group)、TUN、增强 DNS、订阅/provider |
常见 GUI 封装:
- 桌面:
Clash Verge(Rev)、Clash for Windows(已归档)、NekoBox - 路由器:
OpenClash(OpenWrt 插件,国内极流行) - iOS / macOS:
Stash、Shadowrocket - 安卓:
Clash for Android(已归档,社区分支续维护)
3. 架构与核心组件
mihomo 的模型围绕”代理组 + 规则”展开,和 Xray/sing-box 的”入站/出站/路由”是同一件事的不同表达:
[本地应用]
↓
mixed-port(SOCKS+HTTP 合一入口) / TUN(系统级)
↓
rules(规则引擎:DOMAIN / GEOIP / PROCESS-NAME / IP-CIDR ...)
↓
proxy-groups(代理组:select / url-test / fallback / load-balance)
↓
proxies(具体节点:vless / trojan / ss / hysteria2 / tuic / wireguard ...)
↓
dns(增强 DNS:fakeip / Nameserver / fallback)
- proxies:每个节点是一个具名代理(含协议、地址、传输、TLS)。
- proxy-groups:把多个 proxies 组合成”策略组”,实现选优/切换/均衡。
- rules:把流量按规则引导到某个组或直接/阻断。
- dns:独立增强 DNS,支持 fakeip、按 geosite 分流解析。
4. 支持的协议
mihomo 协议覆盖面广,且紧跟新协议:
- Shadowsocks / ShadowsocksR(SSR,Clash 系传统强项)
- VMess / VLESS(VLESS 支持 Reality:
reality-opts) - Trojan
- Snell
- Hysteria / Hysteria2
- TUIC(v5)
- WireGuard(原生)
- SOCKS5 / HTTP
- 辅助:SSH、Direct、Reject(阻断)
注:mihomo 通过”兼容 V2Ray 传输”支持 Reality / ws / grpc 等,本质上借用了 Xray 生态的协议成果,但封装进自己的 YAML 模型。
5. 配置模型(YAML)
mihomo 配置是分层 YAML,最直观:
mixed-port: 7890 # SOCKS+HTTP 合一入口
tun: # 系统级透明代理
enable: true
proxies: # 具体节点
- name: "Reality节点"
type: vless
server: x.x.x.x
port: 443
uuid: ...
flow: xtls-rprx-vision
reality-opts: { ... }
proxy-groups: # 策略组
- name: "自动选择"
type: url-test
proxies: ["Reality节点", "Hysteria2节点"]
- name: "PROXY"
type: select
proxies: ["自动选择", "DIRECT"]
rules: # 分流规则
- "DOMAIN-SUFFIX,google.com,PROXY"
- "GEOIP,CN,DIRECT"
- "MATCH,PROXY"
dns: # 增强 DNS
enhanced-mode: fakeip
nameserver: [...]
学习要点:
proxy-groups的type是灵魂:select(手动选)、url-test(延迟最低)、fallback(故障切换)、load-balance(负载均衡)。rules从上到下匹配,MATCH作兜底——这是”国内外分流""流媒体走特定节点”的实现基础。enhanced-mode: fakeip配合规则,能让”仅代理海外域名”做到无 DNS 泄漏。
6. 关键能力
- 代理组(proxy-group):多节点自动选优/故障切换/负载均衡,体验标杆。
- TUN 模式:系统级接管,全流量(含 UDP、非代理感知应用)透明代理。
- 增强 DNS:fakeip + 分流解析,对抗 DNS 污染与泄漏。
- 订阅 / provider:从订阅链接批量导入节点 + 规则集,运维友好。
- 生态 GUI 丰富:Clash Verge / OpenClash / Stash 等成熟前端。
7. 典型使用形态
- 桌面:Clash Verge 导入订阅,TUN 接管全系统。
- 路由器:OpenClash 让全家设备走规则分流(国内直连、海外代理)。
- 多端一致:同一份 YAML 可在桌面/路由/移动端复用,是它的一大便利。
8. 横向对比(与 Xray / sing-box)
| 维度 | mihomo | Xray-core | sing-box |
|---|---|---|---|
| 配置格式 | YAML | JSON | JSON |
| 路由风格 | 代理组 + 规则 | 规则路由 | 规则路由 |
| 多节点体验 | 最佳(选优/切换/均衡) | 需手动多出站 | 需手动多出站 |
| 协议广度 | 广 | 中 | 最广 |
| 抗封锁旗舰 | 支持(借 Reality) | 原生 Reality/Vision | 支持 |
| 订阅/provider | 原生友好 | 依赖 GUI | 依赖 GUI |
9. 学习建议
- 想理解”规则分流 + 代理组”这一最贴近用户的设计范式,mihomo 是最佳教材——它的 YAML 几乎就是”用户心智的直接映射”。
- 重点读
proxy-groups的四种type语义,再配合rules理解”规则如何落到组上”。 - 用 Clash Verge 的”配置编辑”功能对照学习:GUI 背后就是标准 YAML。
- 注意:mihomo 的抗封锁底层(Reality 等)依赖 Xray 系成果,理解它之前建议先读 Xray 那份。
相关笔记
本系列属于「代理协议与核心实现」知识簇: