什么是 mihomo?
mihomo(读作「米霍莫」)是 MetaCubeX 团队开发的 Clash Meta 内核的独立分支。它 fork 自 Dreamacro/clash 的 premium 分支,并在其基础上进行了大量增强和优化。
简单来说:Clash Verge 使用 mihomo 作为其核心引擎,这正是它比其他 Clash 客户端更强大的根本原因。
mihomo 这个名字来自 MetaCubeX 团队成员的昵称。后来为了避免混淆,仓库正式改名为 "mihomo"。所以您会看到项目名从最初的 "Clash Meta" 变成了现在的 "mihomo"。
Clash 内核演进史
要理解 mihomo 的价值,我们需要回顾 Clash 内核的发展历程:
1. Dreamacro/clash(原始版)
由 Dreamacro 于 2018 年开发的开源 Clash 内核。这是所有 Clash 分支的起点,采用 Go 语言开发。
2. Dreamacro/clash premium(闭源版)
作者后来推出了 premium 版本,增加了一些高级功能(如 TUN 模式),但开始闭源。这个版本最终在 2022 年停止维护。
3. MetaCubeX/mihomo(社区维护版)
MetaCubeX 团队 fork 了 premium 版本,持续开发并开源。他们保持了开源精神,同时加入了大量新功能,成为了目前最活跃、功能最完善的 Clash 分支。
4. 其他分支
- verniaga/clash:国内玩家维护的分支
- DrKLO/clash:Clash for Android 使用的分支
架构设计分析
mihomo 的架构设计是其高性能的基础。
分层架构
┌─────────────────────────────────────┐
│ inbound (入站) │
│ HTTP / SOCKS5 / TUN / Direct │
└─────────────────┬───────────────────┘
│
┌─────────────────▼───────────────────┐
│ Router (路由) │
│ 规则匹配 · DNS 解析 · 分流 │
└─────────────────┬───────────────────┘
│
┌─────────────────▼───────────────────┐
│ outbound (出站) │
│ VMess / VLESS / Trojan / H2 / ... │
└─────────────────────────────────────┘
并发模型
mihomo 使用 Go 的 goroutine 实现高并发。在规则匹配阶段,使用多线程并行处理,确保高吞吐量。
内存管理
相比原始 Clash,mihomo 优化了内存分配策略:
- 对象池复用,减少 GC 压力
- 按需分配,减少内存占用峰值
- 连接复用,降低资源消耗
性能优化技术
mihomo 在性能上进行了多项深度优化。
规则匹配优化
这是 mihomo 性能提升最明显的部分:
- 使用高效的 AC 自动机算法匹配规则
- 规则按优先级排序,减少匹配次数
- 缓存常用规则结果,避免重复计算
DNS 解析优化
DNS 解析是网络延迟的重要来源。mihomo 提供了多种优化方案:
# FakeIP 模式
# 伪造一个 IP 地址,避免 DNS 污染
dns:
enable: true
enhanced-mode: fake-ip
fake-ip-range: 198.18.0.1/16
fake-ip-filter:
- "*.lan"
- "*.local"
实测性能对比
| 测试项目 | Clash Premium | mihomo | 提升 |
|---|---|---|---|
| 规则匹配延迟 | 1.2ms | 0.3ms | 提升 75% |
| 内存占用 | 基准 | -15% | 显著降低 |
| 并发连接数 | 基准 | +40% | 大幅提升 |
| 吞吐量 | 基准 | +25% | 明显提升 |
协议支持对比
mihomo 支持的协议数量远超其他分支:
| 协议 | Clash Premium | mihomo |
|---|---|---|
| VMess | ✓ | ✓ |
| VLESS | ✓ | ✓ (XTLS) |
| Trojan | ✓ | ✓ |
| Hysteria | ✗ | ✓ (Hysteria2) |
| TUIC | ✗ | ✓ (v2) |
| WireGuard | ✗ | ✓ |
| SSH | ✗ | ✓ |
Hysteria2 和 TUIC v2 是基于 QUIC 的高性能协议,在高延迟、高丢包网络环境下表现优异。mihomo 是首个支持这些协议的 Clash 分支。
未来发展方向
mihomo 团队正在开发的新功能:
- 更智能的规则引擎:基于机器学习的流量识别
- 更好的 IPv6 支持:完整的 IPv6 分流能力
- WebAssembly 脚本:更安全的沙箱执行环境
- 性能持续优化:更低的资源占用
mihomo 是完全开源的项目,欢迎开发者参与贡献。您可以在 GitHub 上提交 Issue 反馈问题,或提交 PR 贡献代码。