3696 字
18 分钟
mihomo(Clash Meta)完全配置指南 2026:配置文件详解 + 规则集 + TUN 模式 + Docker 部署 + 旁路由透明代理
mihomo(前身为 Clash Meta)是目前最活跃的开源代理内核,在原版 Clash 和 Clash Premium 相继停更后,mihomo 成为 2024-2026 年代理工具生态的事实标准内核。Clash Verge Rev、OpenClash、PassWall 等主流客户端均使用 mihomo 内核驱动。
本文聚焦 mihomo 内核层的深度配置,区别于其他前端客户端教程:直接操作 YAML 配置文件,掌握内核能力的上限,适合进阶用户和需要在路由器/服务器上部署的场景。
一、mihomo 与各版本 Clash 的关系
2020 Clash(原版开源) ├── Clash Premium(官方闭源增强版)← 新增 TUN、Rule Provider、Script 等 └── Clash.Meta / Clash Meta(社区分支,完全开源)
2023年末 Clash 原版和 Premium 删库 ──→ Clash.Meta 社区接管,改名 mihomo
2024-2026 mihomo(当前主流) 内置于:Clash Verge Rev、OpenClash、sing-box GUI 等mihomo vs Clash Premium 核心差异:
| 功能 | Clash Premium(已删库) | mihomo(当前) |
|---|---|---|
| TUN 模式 | ✅ | ✅ 更完善 |
| Rule Provider | ✅ | ✅ |
| Script 脚本 | ✅ | ✅ |
| VLESS Reality | ❌ | ✅ |
| Hysteria2 | ❌ | ✅ |
| TUIC v5 | ❌ | ✅ |
| 开源 | ❌ 闭源 | ✅ 完全开源 |
| 维护状态 | ❌ 已删库停更 | ✅ 活跃维护 |
二、配置文件完整结构解析
mihomo 使用 YAML 格式配置文件。以下是一份带完整注释的配置模板,覆盖所有常用字段:
# ╔══════════════════════════════════════════════════════════════╗# ║ mihomo 配置文件完整模板(2026版) ║# ╚══════════════════════════════════════════════════════════════╝
# ── 一、基础监听端口 ──────────────────────────────────────────port: 7890 # HTTP/HTTPS 代理端口socks-port: 7891 # SOCKS5 代理端口redir-port: 7892 # 透明代理端口(用于旁路由/iptables 重定向)tproxy-port: 7893 # TProxy 透明代理端口(Linux Only,用于 UDP)mixed-port: 7897 # 混合端口(HTTP + SOCKS5 合一,推荐客户端使用)
# 允许局域网连接(旁路由方案必须开启)allow-lan: true# 绑定地址,* 表示监听所有接口bind-address: "*"
# ── 二、运行模式 ─────────────────────────────────────────────# rule:规则模式(推荐)| global:全局模式 | direct:直连模式mode: rule
# 日志级别:info / warning / error / debug / silentlog-level: info
# 是否开启 IPv6 支持(通常建议关闭)ipv6: false
# ── 三、外部控制 API(用于 UI 面板)────────────────────────external-controller: 0.0.0.0:9090 # API 地址(面板通过此接口控制)external-controller-tls: 0.0.0.0:9443 # HTTPS API(可选)secret: "your-secret-token" # API 密钥(务必修改!)
# UI 面板文件目录(将 Yacd/MetaCubeX 前端放这里)external-ui: /path/to/ui
# ── 四、DNS 配置 ─────────────────────────────────────────────dns: enable: true listen: 0.0.0.0:53 # DNS 监听端口(TUN 模式会自动劫持) ipv6: false
# enhanced-mode:fake-ip(推荐)或 redir-host # fake-ip 模式:为所有域名返回假 IP(198.18.x.x),由 mihomo 解析实际地址 # 优点:DNS 不泄漏,延迟更低,更适合 TUN 模式 enhanced-mode: fake-ip fake-ip-range: 198.18.0.1/16
# 不使用 fake-ip 的域名(本地域名、NAS 等需要真实 IP 的服务) fake-ip-filter: - "*.lan" - "*.local" - "*.internal" - "+.stun.*.*" - "+.stun.*.*.*" - "localhost.ptlogin2.qq.com" - "dns.msftncsi.com"
# 用于引导解析 DoH/DoT 服务器域名的 DNS(必须是 IP,不走规则) default-nameserver: - 119.29.29.29 # 腾讯 DNSPod(国内快速) - 223.5.5.5 # 阿里 DNS
# 主 DNS 服务器(推荐 DoH 防运营商劫持) nameserver: - https://doh.pub/dns-query # 腾讯 DoH - https://dns.alidns.com/dns-query # 阿里 DoH
# 非中国域名使用海外 DNS(走代理解析) fallback: - https://1.1.1.1/dns-query # Cloudflare DoH - https://8.8.8.8/dns-query # Google DoH - tls://1.1.1.1:853 # Cloudflare DoT
# fallback 过滤规则:判断为国内 IP 或国内域名时用 nameserver,否则用 fallback fallback-filter: geoip: true geoip-code: CN ipcidr: - 240.0.0.0/4 domain: - "+.google.com" - "+.facebook.com" - "+.youtube.com"
# ── 五、TUN 模式 ─────────────────────────────────────────────tun: enable: true stack: mixed # mixed(推荐)| system | gvisor dns-hijack: - "any:53" # 劫持所有 DNS 请求 - "tcp://any:53" auto-route: true # 自动添加路由表 auto-redirect: true # 自动重定向(macOS/Linux) auto-detect-interface: true # 自动检测出口网卡
# ── 六、代理节点(proxies)───────────────────────────────────proxies: # 也可以为空,全部通过 proxy-providers 拉取 - name: "手动节点示例" type: vless server: example.com port: 443 uuid: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx network: ws tls: true ws-opts: path: /path
# ── 七、代理提供者(Proxy Providers)────────────────────────proxy-providers: # 从机场订阅链接动态拉取节点 MyAirport: type: http url: "https://你的机场订阅链接" interval: 3600 # 每小时自动更新 path: ./providers/airport.yaml health-check: enable: true url: https://www.gstatic.com/generate_204 interval: 300 # 每 5 分钟测速
# ── 八、代理组(proxy-groups)──────────────────────────────proxy-groups: # 主选择组:手动选择或自动选最快 - name: "🚀 节点选择" type: select use: - MyAirport # 使用 proxy-provider 中的节点 proxies: - "♻️ 自动选择" - DIRECT
# 自动测速选最快节点 - name: "♻️ 自动选择" type: url-test use: - MyAirport url: https://www.gstatic.com/generate_204 interval: 300 tolerance: 50 # 延迟差距超 50ms 才切换(防抖动)
# 流媒体专用组(手动指定解锁节点) - name: "🎬 流媒体" type: select use: - MyAirport filter: "港|日|新|美|HK|JP|SG|US" # 过滤节点名称
# AI 服务专用组 - name: "🤖 AI 服务" type: select proxies: - "🚀 节点选择" use: - MyAirport filter: "美|日|US|JP"
# 兜底策略:没有匹配规则时走此组 - name: "🐟 漏网之鱼" type: select proxies: - "🚀 节点选择" - DIRECT
# ── 九、规则提供者(Rule Providers)────────────────────────rule-providers: # Loyalsoldier 维护的高质量规则集 reject: type: http behavior: domain url: "https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/reject.txt" path: ./ruleset/reject.yaml interval: 86400
icloud: type: http behavior: domain url: "https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/icloud.txt" path: ./ruleset/icloud.yaml interval: 86400
apple: type: http behavior: domain url: "https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/apple.txt" path: ./ruleset/apple.yaml interval: 86400
google: type: http behavior: domain url: "https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/google.txt" path: ./ruleset/google.yaml interval: 86400
proxy: type: http behavior: domain url: "https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/proxy.txt" path: ./ruleset/proxy.yaml interval: 86400
direct: type: http behavior: domain url: "https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/direct.txt" path: ./ruleset/direct.yaml interval: 86400
private: type: http behavior: domain url: "https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/private.txt" path: ./ruleset/private.yaml interval: 86400
gfw: type: http behavior: domain url: "https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/gfw.txt" path: ./ruleset/gfw.yaml interval: 86400
cncidr: type: http behavior: ipcidr url: "https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/cncidr.txt" path: ./ruleset/cncidr.yaml interval: 86400
lancidr: type: http behavior: ipcidr url: "https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/lancidr.txt" path: ./ruleset/lancidr.yaml interval: 86400
# ── 十、分流规则(rules)────────────────────────────────────rules: # 广告域名:直接拒绝 - RULE-SET,reject,REJECT
# 私有/局域网:直连 - RULE-SET,private,DIRECT - RULE-SET,lancidr,DIRECT,no-resolve
# iCloud 直连(国内 CDN 加速) - RULE-SET,icloud,DIRECT
# Apple 服务:可根据需要改为 DIRECT 或代理 - RULE-SET,apple,DIRECT
# AI 服务:走 AI 专用组 - DOMAIN-SUFFIX,openai.com,🤖 AI 服务 - DOMAIN-SUFFIX,anthropic.com,🤖 AI 服务 - DOMAIN-SUFFIX,gemini.google.com,🤖 AI 服务
# 流媒体:走流媒体组 - DOMAIN-SUFFIX,netflix.com,🎬 流媒体 - DOMAIN-SUFFIX,nflxvideo.net,🎬 流媒体 - DOMAIN-SUFFIX,disney.com,🎬 流媒体 - DOMAIN-SUFFIX,hbo.com,🎬 流媒体
# Google 服务:走代理 - RULE-SET,google,🚀 节点选择
# 被墙域名:走代理 - RULE-SET,proxy,🚀 节点选择 - RULE-SET,gfw,🚀 节点选择
# 国内域名和 IP:直连 - RULE-SET,direct,DIRECT - RULE-SET,cncidr,DIRECT,no-resolve
# GeoIP 判断 - GEOIP,LAN,DIRECT - GEOIP,CN,DIRECT
# 兜底:未匹配的走漏网之鱼组 - MATCH,🐟 漏网之鱼三、proxy-groups 进阶配置
3.1 fallback(故障切换组)
proxy-groups: # 故障切换:主节点不可用时自动切换到备用节点 - name: "🛡️ 故障切换" type: fallback use: - MyAirport url: https://www.gstatic.com/generate_204 interval: 60 # 每 60 秒检测一次 lazy: false # 启动时立即检测(不延迟)3.2 load-balance(负载均衡组)
proxy-groups: # 负载均衡:多个节点同时使用,分散流量 - name: "⚖️ 负载均衡" type: load-balance use: - MyAirport url: https://www.gstatic.com/generate_204 interval: 300 # strategy: consistent-hashing # 同一域名固定打同一节点(默认) strategy: round-robin # 轮询分配(适合无状态请求)3.3 filter 过滤节点
proxy-groups: # 只使用机场中的香港节点 - name: "🇭🇰 香港节点" type: url-test use: - MyAirport filter: "(?i)港|HK|Hong Kong" # 正则匹配节点名称 url: https://www.gstatic.com/generate_204 interval: 300 tolerance: 30
# 排除某些节点(如排除试用/免费节点) - name: "🚀 精选节点" type: select use: - MyAirport filter: "^(?!.*(?:试用|FREE|free)).*$" # 排除含"试用"和"FREE"的节点四、TUN 模式详细配置与验证
4.1 TUN stack 模式对比
| Stack | 说明 | 适用平台 | 推荐场景 |
|---|---|---|---|
mixed | TCP 走 system,UDP 走 gvisor | 全平台 | 推荐,通用性最好 |
system | 全部走系统网络栈 | Linux/macOS | 追求性能 |
gvisor | 全部走用户态网络栈 | 全平台 | 兼容性最佳,性能略低 |
lwip | 轻量级实现(实验性) | 嵌入式 | 路由器资源受限场景 |
4.2 完整 TUN 配置
tun: enable: true stack: mixed
# DNS 劫持:拦截所有 DNS 请求,防止 DNS 泄漏 dns-hijack: - "any:53" - "tcp://any:53"
# 自动路由:向系统路由表添加规则 auto-route: true
# 自动重定向(macOS/iOS 透明代理,Linux 不需要) auto-redirect: true
# 严格路由:防止流量绕过 TUN # strict-route: true # 开启后某些 LAN 功能可能受影响,按需启用
# 自动检测出口网卡 auto-detect-interface: true
# 以下为 Linux 旁路由场景配置(TUN 接口名称) # device: utun0 # macOS 默认 utun0,Linux 默认 tun0
# 排除特定 IP 不走 TUN(如直连本地服务) # exclude-package: [] # Android 专用,排除特定 App4.3 验证 TUN 是否生效
# 方法1:访问 IP 检测网站,查看 IP 是否变为代理 IPcurl https://ip.sb
# 方法2:ping 测试(TUN 模式下 ping 也走代理)ping -c 3 8.8.8.8# 若 TTL 值与直连不同,说明走了 TUN
# 方法3:DNS 泄漏检测# 访问 https://dnsleaktest.com → Extended Test# 所有 DNS 服务器应为代理节点的 DNS,不应出现运营商 DNS
# 方法4:查看 TUN 网卡ip addr show # Linux:查看是否有 tun0 接口ifconfig # macOS:查看是否有 utun 开头的接口五、Docker 部署 mihomo + UI 面板
5.1 目录结构准备
mkdir -p /opt/mihomo/{config,ui}cd /opt/mihomo5.2 下载 UI 面板(MetaCubeX)
# 下载 MetaCubeX-UI(功能最完整)wget -O /tmp/metacubexd.tar.gz \ https://github.com/metacubex/metacubexd/releases/latest/download/compressed-dist.tgztar -xzf /tmp/metacubexd.tar.gz -C /opt/mihomo/ui/
# 或者使用更轻量的 Yacd-metawget -O /tmp/yacd-meta.tar.gz \ https://github.com/metacubex/yacd/releases/latest/download/yacd.tar.xztar -xJf /tmp/yacd-meta.tar.gz -C /opt/mihomo/ui/5.3 配置文件
在 /opt/mihomo/config/config.yaml 写入配置(参考第二节模板),重点注意:
# Docker 部署时监听 0.0.0.0 而非 127.0.0.1external-controller: 0.0.0.0:9090secret: "your-strong-secret"
# UI 文件路径(映射到容器内路径)external-ui: /ui5.4 Docker Compose 部署
version: "3.8"
services: mihomo: image: metacubex/mihomo:latest # 官方镜像 container_name: mihomo restart: unless-stopped
# 网络:host 模式允许 TUN/透明代理(推荐) # 注意:host 模式下容器直接使用宿主机网络栈 network_mode: host
# 权限:TUN 模式需要 NET_ADMIN cap_add: - NET_ADMIN
volumes: - ./config:/root/.config/mihomo # 配置文件目录 - ./ui:/ui # UI 面板文件 - /etc/localtime:/etc/localtime:ro # 同步时区
# 如果不用 host 模式,使用 bridge 并暴露端口 # ports: # - "7897:7897" # mixed port # - "9090:9090" # API # - "7893:7893" # redir-port
devices: - /dev/net/tun:/dev/net/tun # TUN 设备访问(不用 TUN 可去掉)# 启动docker compose up -d
# 查看日志docker logs -f mihomo
# 重载配置(不重启容器)curl -X PUT http://127.0.0.1:9090/configs \ -H "Authorization: Bearer your-strong-secret" \ -H "Content-Type: application/json" \ -d '{"path":"/root/.config/mihomo/config.yaml"}'5.5 访问 UI 面板
启动后访问:http://服务器IP:9090/ui
在面板中可以:
- 实时查看所有节点延迟
- 手动切换代理组
- 查看实时连接列表
- 修改运行模式(规则/全局/直连)
六、旁路由透明代理方案
旁路由是指将一台 Linux 设备(树莓派、软路由、NAS、虚拟机)接入家庭网络,由它承担代理功能,其他设备只需将默认网关指向旁路由即可自动走代理,无需每台设备单独配置。
6.1 网络拓架构
互联网 ↓主路由(运营商光猫 / 家用路由器) ↓ 192.168.1.1 ├── 旁路由(mihomo + Linux)192.168.1.2 │ ↑ 将网关/DNS 指向 192.168.1.2 的设备通过此处代理 ├── 电脑 192.168.1.100 ← 网关改为 192.168.1.2 ├── 手机 192.168.1.101 ← 网关改为 192.168.1.2 └── 其他设备...6.2 mihomo 透明代理配置
# 旁路由专用配置(在原配置基础上修改)
# 开启局域网访问allow-lan: truebind-address: "*"
# 透明代理端口redir-port: 7892 # TCP 重定向tproxy-port: 7893 # UDP TProxy(Linux Only)
# TUN 在旁路由方案中通常不需要(用 iptables 替代)# tun:# enable: false
# DNS 必须开启(旁路由承担 DNS 解析)dns: enable: true listen: 0.0.0.0:53 enhanced-mode: fake-ip # ... 其余 DNS 配置同上6.3 iptables 规则(Linux 旁路由核心)
#!/bin/bash# 旁路由透明代理 iptables 规则
# mihomo 代理用户(避免代理流量死循环)MIHOMO_UID=1000 # mihomo 进程运行的 UID
# ── TCP 透明代理 ──────────────────────────────────────────────# 创建自定义链iptables -t nat -N MIHOMO
# 跳过本机流量和已被代理的流量iptables -t nat -A MIHOMO -d 0.0.0.0/8 -j RETURNiptables -t nat -A MIHOMO -d 10.0.0.0/8 -j RETURNiptables -t nat -A MIHOMO -d 127.0.0.0/8 -j RETURNiptables -t nat -A MIHOMO -d 169.254.0.0/16 -j RETURNiptables -t nat -A MIHOMO -d 172.16.0.0/12 -j RETURNiptables -t nat -A MIHOMO -d 192.168.0.0/16 -j RETURNiptables -t nat -A MIHOMO -d 224.0.0.0/4 -j RETURNiptables -t nat -A MIHOMO -d 240.0.0.0/4 -j RETURN
# 将其余 TCP 流量重定向到 mihomo 的 redir-portiptables -t nat -A MIHOMO -p tcp -j REDIRECT --to-port 7892
# 对来自局域网的流量应用规则iptables -t nat -A PREROUTING -p tcp -j MIHOMO
# 对本机发出的流量(mihomo 进程除外)也应用代理iptables -t nat -A OUTPUT -p tcp \ ! -m owner --uid-owner $MIHOMO_UID \ -j MIHOMO
# ── UDP 透明代理(TProxy)────────────────────────────────────# 需要内核支持 ip_tables、xt_TPROXY、xt_mark
ip rule add fwmark 1 table 100ip route add local default dev lo table 100
# UDP TProxy 规则iptables -t mangle -N MIHOMO_UDP
iptables -t mangle -A MIHOMO_UDP -d 0.0.0.0/8 -j RETURNiptables -t mangle -A MIHOMO_UDP -d 10.0.0.0/8 -j RETURNiptables -t mangle -A MIHOMO_UDP -d 127.0.0.0/8 -j RETURNiptables -t mangle -A MIHOMO_UDP -d 169.254.0.0/16 -j RETURNiptables -t mangle -A MIHOMO_UDP -d 172.16.0.0/12 -j RETURNiptables -t mangle -A MIHOMO_UDP -d 192.168.0.0/16 -j RETURNiptables -t mangle -A MIHOMO_UDP -d 224.0.0.0/4 -j RETURNiptables -t mangle -A MIHOMO_UDP -d 240.0.0.0/4 -j RETURN
iptables -t mangle -A MIHOMO_UDP -p udp -j TPROXY \ --on-port 7893 --tproxy-mark 0x1/0x1
iptables -t mangle -A PREROUTING -p udp -j MIHOMO_UDP
echo "透明代理规则已应用"# 赋予执行权限并运行chmod +x /opt/mihomo/iptables.shbash /opt/mihomo/iptables.sh
# 设置开机自动运行(systemd)cat > /etc/systemd/system/mihomo-iptables.service << 'EOF'[Unit]Description=mihomo iptables rulesAfter=network.target
[Service]Type=oneshotExecStart=/opt/mihomo/iptables.shRemainAfterExit=yes
[Install]WantedBy=multi-user.targetEOF
systemctl enable mihomo-iptables6.4 客户端设置
其他设备要走旁路由代理,只需修改网关和 DNS 为旁路由 IP:
| 设置项 | 原值 | 改为 |
|---|---|---|
| 默认网关 | 192.168.1.1(主路由) | 192.168.1.2(旁路由) |
| DNS 服务器 | 192.168.1.1 | 192.168.1.2 |
💡 如果不想逐台设备配置,可以在主路由的 DHCP 设置中将默认网关和 DNS 统一改为旁路由 IP,让所有设备自动走旁路由。
七、常见问题排查
| 问题 | 可能原因 | 解决方法 |
|---|---|---|
| 规则集下载失败 | 规则集 URL 无法访问(需要代理) | 在 mihomo 未启动时先挂 VPN 下载,或使用国内镜像 |
| TUN 模式开启后网络全断 | 路由冲突 | 检查 auto-route 和系统路由表;重启 mihomo |
| DNS 泄漏(dnsleaktest 显示运营商 DNS) | fake-ip 未生效 | 确认 enhanced-mode: fake-ip;确认 DNS 监听在 53 端口 |
| 旁路由:局域网设备无法上网 | iptables 规则未加载 | 运行 iptables 脚本;检查 allow-lan: true |
| proxy-provider 节点不更新 | 缓存问题 | 在 UI 面板手动刷新,或删除 ./providers/ 目录中的缓存文件 |
| 某些 App 不走代理 | 该 App 使用了 DNS over HTTPS 绕过系统 DNS | 开启 TUN 模式;或在规则中添加该 App 的 DoH 域名强制走代理 |
secret 验证失败,API 不可访问 | Authorization Header 格式错误 | 正确格式:Authorization: Bearer your-secret |
八、与主流客户端的关系
| 客户端 | 内核 | 定位 | 推荐场景 |
|---|---|---|---|
| Clash Verge Rev | mihomo | GUI 桌面客户端 | Windows/macOS 日常使用 |
| OpenClash | mihomo | OpenWrt 插件 | 主路由集成 |
| PassWall / SSR+ | 多内核 | OpenWrt 插件 | 旧版路由器 |
| sing-box | 独立内核 | 跨平台 | 新一代替代方案 |
| 本文方案 | mihomo 裸核 | 纯后端服务 | Docker/旁路由/服务器 |
相关文章:
- Clash Verge Rev macOS 完整使用教程 2026
- Clash 分流规则进阶教程:Rule Provider + 自定义规则集
- Clash Verge / Clash Verge Rev 进阶配置完全指南
- sing-box 全平台使用教程:新一代通用代理平台
- 2026年高性价比机场推荐汇总(长期更新)
免责声明:本文仅为技术学习参考,请在当地法律法规允许的范围内合理使用。所有配置均在测试环境下验证,生产使用前请结合实际情况调整参数。
mihomo(Clash Meta)完全配置指南 2026:配置文件详解 + 规则集 + TUN 模式 + Docker 部署 + 旁路由透明代理
https://971918.xyz/posts/proxy-tools/mihomo-clash-meta-complete-guide/