文章

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:StashShadowrocket
  • 安卓: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-groupstype 是灵魂:select(手动选)、url-test(延迟最低)、fallback(故障切换)、load-balance(负载均衡)。
  • rules 从上到下匹配,MATCH 作兜底——这是”国内外分流""流媒体走特定节点”的实现基础。
  • enhanced-mode: fakeip 配合规则,能让”仅代理海外域名”做到无 DNS 泄漏。

6. 关键能力

  1. 代理组(proxy-group):多节点自动选优/故障切换/负载均衡,体验标杆。
  2. TUN 模式:系统级接管,全流量(含 UDP、非代理感知应用)透明代理。
  3. 增强 DNS:fakeip + 分流解析,对抗 DNS 污染与泄漏。
  4. 订阅 / provider:从订阅链接批量导入节点 + 规则集,运维友好。
  5. 生态 GUI 丰富:Clash Verge / OpenClash / Stash 等成熟前端。

7. 典型使用形态

  • 桌面:Clash Verge 导入订阅,TUN 接管全系统。
  • 路由器:OpenClash 让全家设备走规则分流(国内直连、海外代理)。
  • 多端一致:同一份 YAML 可在桌面/路由/移动端复用,是它的一大便利。

8. 横向对比(与 Xray / sing-box)

维度mihomoXray-coresing-box
配置格式YAMLJSONJSON
路由风格代理组 + 规则规则路由规则路由
多节点体验最佳(选优/切换/均衡)需手动多出站需手动多出站
协议广度广最广
抗封锁旗舰支持(借 Reality)原生 Reality/Vision支持
订阅/provider原生友好依赖 GUI依赖 GUI

9. 学习建议

  • 想理解”规则分流 + 代理组”这一最贴近用户的设计范式,mihomo 是最佳教材——它的 YAML 几乎就是”用户心智的直接映射”。
  • 重点读 proxy-groups 的四种 type 语义,再配合 rules 理解”规则如何落到组上”。
  • 用 Clash Verge 的”配置编辑”功能对照学习:GUI 背后就是标准 YAML。
  • 注意:mihomo 的抗封锁底层(Reality 等)依赖 Xray 系成果,理解它之前建议先读 Xray 那份。

相关笔记

本系列属于「代理协议与核心实现」知识簇: