--- title: "mihomo(Clash Meta 内核)架构与配置体系" type: concept last_updated: 2026-08-07 tags: - "网络工具" - "mihomo" - "代理" - "DNS" - "TUN" confidence: high contested: false raw_sources: - path: "raw/技术/mihomo/官方文档-架构与核心概念-摘编.md" hash: "sha256:d2540a477284aa6b46e1ae6ba8d34b2f909c521a7ed32de9474203dd9301299a" - path: "raw/技术/mihomo/官方文档-配置编写-摘编.md" hash: "sha256:17ad7664cb257744a3277c1709d15912156a521dcac1f014ccfd335f3880b1cf" --- # mihomo(Clash Meta 内核)架构与配置体系 ## 页面定位 本页解释 mihomo 内核是什么、它的分层架构与核心机制(DNS 防污染、规则路由、健康检查、提供者机制),是理解代理工具工作原理的**总览概念页**。实际写配置的逐步流程见 [[mihomo-配置编写指南]];字段级细节与模板见 `raw/技术/mihomo/` 两份摘编。 ## 定义与项目背景 - **mihomo**(曾用名 Clash Meta)是原 Dreamacro/clash 的二次开发代理内核,Go 语言实现;默认分支 `Meta`(稳定)、`Alpha`(开发)。 - 兼容原版 Clash 全部特性,并吸收 sing-box、v2ray-core 等项目的实现;官方文档站 wiki.metacubex.one(中文,社区称"虚空终端")。 - 许可 GPL-3.0,附加条款:与 MetaCubeX 无关的下游项目不得在名称中使用 "mihomo"。 - 配套面板 metacubexd;客户端(Clash Verge Rev、CMFA 等)内嵌本内核。 - 构建要求 Go 1.20+;gvisor tun 栈需 `-tags with_gvisor` 编译。 ## 分层架构 ``` 应用 → 入口监听(mixed-port/socks/tun/redir/tproxy/自定义 listeners) → 内置 DNS(fake-ip 或 redir-host) → 规则匹配(rules 自上而下,首条命中生效) → 出口(代理组/节点;DIRECT/REJECT/COMPATIBLE 内置出站) → 节点 → 目标服务器 ``` - **入口**:mixed-port(HTTP+SOCKS 混合)、port、socks-port、tun、redir/tproxy(Linux 透明代理)、`listeners` 自定义入站(hysteria2/tuic/tun/ss/vmess 等)、`tunnels` 端口转发。 - **模式**:`rule`(默认)/ `global` / `direct`。 - **控制面**:RESTful API(external-controller + secret + 可选 TLS/Unix socket/namedpipe),`external-ui` 挂 Web 面板;可外置 DoH 服务器。 ## 核心机制 ### 1. DNS 防污染(fake-ip + fallback) - `enhanced-mode: fake-ip` 时 DNS 返回 fake-ip 池(默认 `198.18.0.1/16`)的虚拟 IP,内核内部维护 域名→fake-ip 映射,实际建连按域名规则转发——客户端不接触真实解析结果,天然规避 DNS 污染;配合 TUN 可接管全部系统流量。 - `redir-host` 模式返回真实 IP。 - 防污染工作流:`nameserver`(国内 DNS)解析 → `fallback-filter` 判断结果非 CN 时改用 `fallback`(境外可信 DNS);`nameserver-policy` 按域名/geosite 精确指定解析器;`proxy-server-nameserver` 专门解析节点域名,避免"鸡蛋问题"。 ### 2. 规则路由 - 规则自上而下首条命中;类型覆盖域名(DOMAIN/SUFFIX/KEYWORD/WILDCARD/REGEX/GEOSITE)、IP(GEOIP/IP-CIDR/IP-ASN/SRC-*)、端口、入站(IN-*)、进程(PROCESS-*)、UID、网络类型、逻辑组合(AND/OR/NOT/SUB-RULE)与 RULE-SET。 - 目标 IP 类规则可用 `no-resolve` 跳过 DNS 解析。 - GEOIP/GEOSITE 数据来自 meta-rules-dat,可 `geox-url` 自定义下载并自动更新。 ### 3. 代理组与健康检查 - `select` 手动选择、`url-test` 按延迟选最优、`fallback` 按健康顺序优先、`load-balance` 负载均衡。 - 健康检查:`url`(如 gstatic generate_204)+ `interval` + `timeout` + `expected-status`;`lazy: true` 时未选中不测试。url 只测 `proxies` 字段的节点,`use` 引入的集合节点在 provider 内单独配 health-check。 ### 4. 提供者机制(解耦配置) - `proxy-providers`:http/file/inline 三种来源加载节点,支持间隔更新、经代理下载、age 加密订阅、override 覆写(字段覆盖 + yq v4 风格 `override-expr` 表达式)、filter 筛选。 - `rule-providers`:domain/ipcidr/classical 三种 behavior,yaml/text/mrs 格式,可远程更新;`path-in-bundle` 从 BundleMRS.7z 加载。 ### 5. TUN / 透明代理 / 嗅探 - `tun`:虚拟网卡接管流量;stack system/gvisor/mixed;dns-hijack、auto-route、auto-redirect(Linux iptables)、strict-route 防泄漏;支持接口/UID/MAC/Android 应用级过滤。 - `sniffer`:对纯 IP/redir-host 流量嗅探 TLS/HTTP/QUIC 还原域名,使无域名流量也能走域名规则。 ## 证据与不确定性 - 本页基于官方 README、官方文档与官方 config.yaml 示例(2026-08-07 抓取),字段定义可直接作为编写依据。 - 项目迭代快:文档已标注若干废弃字段(如 `sniffing`/`port-whitelist`、组内 `interface-name`/`routing-mark`、全局 `client-fingerprint`、`fallback-filter.geosite`),新配置应使用新写法。 - 官方示例中的服务器/密码/密钥均为占位符,不可直接使用。 ## 失效条件与风险 - fake-ip 模式下内网/局域网域名(`*.lan`、`*.local`、设备管理页)未加 `fake-ip-filter` 将无法访问。 - 节点为域名但未配 `proxy-server-nameserver` 时可能解析失败。 - 规则顺序错误(如 MATCH 提前、GEOIP,CN 置于代理规则之前)导致分流错误。 - 对外监听(allow-lan / API 绑 0.0.0.0)无认证会暴露代理与 API 控制面。 ## 相关页面 - [[mihomo-配置编写指南]] - 从零写 config.yaml 的逐步流程、模板与检查清单 - [[Obsidian-CLI-Wiki-Maintenance]] - 本仓库 Wiki 维护实践(同属"工具链"语境) - [[Glossary|术语表]] - mihomo、fake-ip、代理组等术语定义 ## 深入阅读 - raw 摘编:`raw/技术/mihomo/官方文档-架构与核心概念-摘编.md`、`raw/技术/mihomo/官方文档-配置编写-摘编.md` - 官方仓库:https://github.com/MetaCubeX/mihomo ;官方文档:https://wiki.metacubex.one/