Files
my_wiki/wiki/concepts/mihomo-内核与配置体系.md
T

5.9 KiB
Raw Blame History

title, type, last_updated, tags, confidence, contested, raw_sources
title type last_updated tags confidence contested raw_sources
mihomoClash Meta 内核)架构与配置体系 concept 2026-08-07
网络工具
mihomo
代理
DNS
TUN
high false
path hash
raw/技术/mihomo/官方文档-架构与核心概念-摘编.md sha256:d2540a477284aa6b46e1ae6ba8d34b2f909c521a7ed32de9474203dd9301299a
path hash
raw/技术/mihomo/官方文档-配置编写-摘编.md sha256:17ad7664cb257744a3277c1709d15912156a521dcac1f014ccfd335f3880b1cf

mihomoClash 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
     → 内置 DNSfake-ip 或 redir-host
     → 规则匹配(rules 自上而下,首条命中生效)
     → 出口(代理组/节点;DIRECT/REJECT/COMPATIBLE 内置出站)
     → 节点 → 目标服务器
  • 入口mixed-portHTTP+SOCKS 混合)、port、socks-port、tun、redir/tproxyLinux 透明代理)、listeners 自定义入站(hysteria2/tuic/tun/ss/vmess 等)、tunnels 端口转发。
  • 模式rule(默认)/ global / direct
  • 控制面RESTful APIexternal-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)、IPGEOIP/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-statuslazy: true 时未选中不测试。url 只测 proxies 字段的节点,use 引入的集合节点在 provider 内单独配 health-check。

4. 提供者机制(解耦配置)

  • proxy-providershttp/file/inline 三种来源加载节点,支持间隔更新、经代理下载、age 加密订阅、override 覆写(字段覆盖 + yq v4 风格 override-expr 表达式)、filter 筛选。
  • rule-providersdomain/ipcidr/classical 三种 behavioryaml/text/mrs 格式,可远程更新;path-in-bundle 从 BundleMRS.7z 加载。

5. TUN / 透明代理 / 嗅探

  • tun:虚拟网卡接管流量;stack system/gvisor/mixeddns-hijack、auto-route、auto-redirectLinux 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-fingerprintfallback-filter.geosite),新配置应使用新写法。
  • 官方示例中的服务器/密码/密钥均为占位符,不可直接使用。

失效条件与风险

  • fake-ip 模式下内网/局域网域名(*.lan*.local、设备管理页)未加 fake-ip-filter 将无法访问。
  • 节点为域名但未配 proxy-server-nameserver 时可能解析失败。
  • 规则顺序错误(如 MATCH 提前、GEOIP,CN 置于代理规则之前)导致分流错误。
  • 对外监听(allow-lan / API 绑 0.0.0.0)无认证会暴露代理与 API 控制面。

相关页面

深入阅读