OVEROUTESOVEROUTES
首页
阅读须知
  • 总览
  • 选购要点
  • 推荐机场
  • 客户端使用
  • 概述
  • IP 与线路
  • 选型指南
  • 选购参考
  • 基础部署
  • 安全加固
  • 概述
  • 3X-UI
  • Xboard
  • 协议总览
  • Shadowsocks
  • Shadowsocks 2022
  • VMess
  • Trojan
  • VLESS
  • Hysteria 2
  • TUIC
  • AnyTLS
  • NaiveProxy
  • Mieru
  • ShadowTLS
  • VLESS-XHTTP
  • WireGuard
  • 传统协议
  • 孤家寡人协议
  • 软件总览
  • Mihomo
  • sing-box
  • Xray
  • V2Fly
  • dae (Linux)
  • Shadowrocket (iOS)
  • QuantumultX (iOS)
  • Stash (iOS/macOS)
  • Loon (iOS)
  • Surge (macOS/iOS)
  • NekoBox (Android)
  • Husi (Android)
  • Exclave (Android)
配置
首页
阅读须知
  • 总览
  • 选购要点
  • 推荐机场
  • 客户端使用
  • 概述
  • IP 与线路
  • 选型指南
  • 选购参考
  • 基础部署
  • 安全加固
  • 概述
  • 3X-UI
  • Xboard
  • 协议总览
  • Shadowsocks
  • Shadowsocks 2022
  • VMess
  • Trojan
  • VLESS
  • Hysteria 2
  • TUIC
  • AnyTLS
  • NaiveProxy
  • Mieru
  • ShadowTLS
  • VLESS-XHTTP
  • WireGuard
  • 传统协议
  • 孤家寡人协议
  • 软件总览
  • Mihomo
  • sing-box
  • Xray
  • V2Fly
  • dae (Linux)
  • Shadowrocket (iOS)
  • QuantumultX (iOS)
  • Stash (iOS/macOS)
  • Loon (iOS)
  • Surge (macOS/iOS)
  • NekoBox (Android)
  • Husi (Android)
  • Exclave (Android)
配置
  • 全平台

    • 代理软件总览
    • Mihomo
    • sing-box
    • Xray
    • V2Fly
  • Linux

    • dae
  • iOS / macOS

    • Shadowrocket
    • Quantumult X
    • Stash
    • Loon
    • Surge
  • Android

    • NekoBox
    • Husi
    • Exclave

Mihomo

Mihomo(原名 Clash Meta)是由社区开发者基于 Clash 核心重写并大幅扩展的代理核心程序,项目地址为 github.com/MetaCubeX/mihomo。它是目前生态最成熟、使用最广泛的代理核心之一,几乎所有主流机场都提供与之兼容的 Clash 格式订阅,大量跨平台 GUI 客户端也以 Mihomo 为底层核心构建。

核心特性

  • 协议支持全面:Shadowsocks、Shadowsocks 2022、VMess、VLESS(含 Reality)、Trojan、Hysteria 2、TUIC、AnyTLS、WireGuard、ShadowTLS 等主流协议均已覆盖
  • 规则引擎强大:支持基于域名、IP CIDR、GEOIP、GEOSITE、进程名等多种条件的精细分流规则
  • TUN 模式:通过虚拟网卡接管系统全部流量,实现真正的透明代理,无需对每个应用单独配置代理
  • DNS 模块:内置完整的 DNS 处理逻辑,支持 DoH、DoT、DoQ 等加密 DNS,以及 Fake-IP 模式
  • 策略组:支持 url-test(自动选速)、fallback(故障切换)、load-balance(负载均衡)、select(手动选择)等多种策略
  • RESTful API:提供完整的 HTTP API,用于运行时控制和状态查询,这也是各类 GUI 面板的接入基础
  • 兼容性强:配置格式与原版 Clash 保持高度兼容,同时扩展了大量新特性

与 Clash 的关系

Mihomo 的前身是 Clash.Meta,是 Clash 原版内核的社区增强分支。2023 年 Clash 原版内核作者删库停止维护后,Mihomo 成为了 Clash 生态事实上的标准实现。

原版 Clash(已停止维护)与 Mihomo 的配置格式高度兼容,绝大多数针对原版 Clash 的订阅和规则在 Mihomo 上可以直接使用,并且可以享受 Mihomo 额外支持的新协议和新特性。

安装

Linux

方法一:下载预编译二进制文件(推荐)

从 GitHub Releases 页面下载对应系统和架构的最新版本:

# 以 Linux amd64 为例,版本号请替换为实际最新版
wget https://github.com/MetaCubeX/mihomo/releases/latest/download/mihomo-linux-amd64-v1.x.x.gz
gunzip mihomo-linux-amd64-v1.x.x.gz
chmod +x mihomo-linux-amd64-v1.x.x
mv mihomo-linux-amd64-v1.x.x /usr/local/bin/mihomo

验证安装:

mihomo -v

方法二:使用包管理器(部分发行版)

# Arch Linux(通过 AUR)
yay -S mihomo

# 或者使用 paru
paru -S mihomo

macOS

方法一:Homebrew

brew install mihomo

方法二:手动下载

从 GitHub Releases 下载 mihomo-darwin-amd64 或 mihomo-darwin-arm64(Apple Silicon),解压后移动到 PATH 中:

gunzip mihomo-darwin-arm64-v1.x.x.gz
chmod +x mihomo-darwin-arm64-v1.x.x
mv mihomo-darwin-arm64-v1.x.x /usr/local/bin/mihomo

Windows

从 GitHub Releases 下载 mihomo-windows-amd64-v1.x.x.zip,解压后得到 mihomo-windows-amd64.exe。

可以将其重命名为 mihomo.exe 并添加到系统 PATH,或者直接配合 GUI 工具(如 mihomo Party、Clash Verge Rev)使用——这类 GUI 工具会自动管理 Mihomo 的安装和版本更新,无需手动处理。

推荐使用 GUI 工具

对于 Windows 和 macOS 用户,推荐直接使用基于 Mihomo 的 GUI 客户端,而非手动管理命令行程序。GUI 工具提供了更方便的订阅管理、节点切换和规则配置界面,并会自动处理 Mihomo 核心的版本更新。

主流 GUI 客户端

以下 GUI 工具均以 Mihomo 为底层核心,适合不想手写配置文件的用户:

客户端平台特点项目地址
Clash Verge RevWindows / macOS / LinuxTauri 构建,界面现代,功能丰富GitHub
mihomo PartyWindows / macOS / LinuxElectron 构建,配置简洁,支持覆写脚本GitHub
FlClashWindows / macOS / Linux / AndroidFlutter 构建,跨平台体验一致,免费开源GitHub
StashiOS / macOS界面精美,原生应用体验,支持 Clash Meta 配置App Store
OpenClashOpenWrt路由器平台的 Mihomo 实现,功能丰富GitHub

配置文件结构

Mihomo 使用 YAML 格式的配置文件,默认路径为 ~/.config/mihomo/config.yaml(Linux / macOS)或 %APPDATA%\mihomo\config.yaml(Windows)。

以下是一个完整但简化的配置文件示例,展示了主要配置块的结构和作用:

# 全局设置
mixed-port: 7890          # 同时监听 HTTP 和 SOCKS5 的混合端口
allow-lan: false           # 是否允许局域网其他设备使用代理
mode: rule                 # 代理模式:rule(规则)/ global(全局)/ direct(直连)
log-level: info            # 日志级别:debug / info / warning / error / silent
ipv6: false                # 是否启用 IPv6

# 外部控制(提供给 GUI 面板使用的 API)
external-controller: 127.0.0.1:9090
secret: ""                 # API 访问密钥,建议设置

# DNS 配置
dns:
  enable: true
  ipv6: false
  listen: 0.0.0.0:1053
  enhanced-mode: fake-ip   # fake-ip 或 redir-host
  fake-ip-range: 198.18.0.1/16
  fake-ip-filter:
    - "*.lan"
    - localhost
  nameserver:
    - https://doh.pub/dns-query        # 国内加密 DNS
    - https://dns.alidns.com/dns-query
  fallback:
    - https://1.1.1.1/dns-query        # 境外加密 DNS
    - https://8.8.8.8/dns-query
  fallback-filter:
    geoip: true
    geoip-code: CN
    ipcidr:
      - 240.0.0.0/4

# 代理节点(通常由订阅自动填充,手动配置示例)
proxies:
  - name: "my-vless-node"
    type: vless
    server: your.server.ip
    port: 443
    uuid: your-uuid-here
    network: tcp
    tls: true
    reality-opts:
      public-key: your-public-key
      short-id: a1b2c3d4
    client-fingerprint: chrome
    flow: xtls-rprx-vision

  - name: "my-hy2-node"
    type: hysteria2
    server: your.domain.com
    port: 443
    password: your-password
    sni: your.domain.com
    up: "100 Mbps"
    down: "300 Mbps"

# 策略组
proxy-groups:
  - name: "Proxy"
    type: select
    proxies:
      - "Auto"
      - "my-vless-node"
      - "my-hy2-node"
      - DIRECT

  - name: "Auto"
    type: url-test
    proxies:
      - "my-vless-node"
      - "my-hy2-node"
    url: "https://www.gstatic.com/generate_204"
    interval: 300
    tolerance: 50

# 分流规则
rules:
  - DOMAIN-SUFFIX,google.com,Proxy
  - DOMAIN-SUFFIX,github.com,Proxy
  - DOMAIN-KEYWORD,youtube,Proxy
  - GEOIP,CN,DIRECT
  - GEOSITE,cn,DIRECT
  - MATCH,Proxy

使用机场订阅

机场通常会提供 Clash 或 Clash Meta 格式的订阅链接。在 GUI 工具中,只需将订阅链接填入"订阅管理"即可自动导入节点和配置。

在命令行中使用订阅

如果直接使用命令行版 Mihomo,可以先下载订阅配置文件,再启动:

# 下载订阅配置
curl -L "https://your-airport.com/api/v1/client/subscribe?token=xxx" \
  -o ~/.config/mihomo/config.yaml

# 启动 Mihomo
mihomo -f ~/.config/mihomo/config.yaml

关于订阅链接安全

订阅链接本质上是你的服务凭证,不要将其分享给他人或提交到公开的代码仓库。定期在机场面板中重置订阅令牌是一个好习惯。

订阅格式说明

机场可能同时提供多种格式的订阅链接:

格式用途
Clash / Clash Meta供 Mihomo 系客户端使用,包含完整的规则和策略组配置
sing-box供 sing-box 内核客户端使用
V2Ray / Xray供 v2rayN 等工具使用
Shadowrocket供 iOS Shadowrocket 使用
通用订阅(base64)包含节点 URI 列表,需要手动导入或通过转换工具处理

如果机场没有提供 Clash Meta 格式,可以使用 Sub-Converter 等工具将其他格式转换为 Clash Meta 格式。

TUN 模式(透明代理)

TUN 模式通过创建一个虚拟网卡,在系统层面接管所有网络流量,无需对每个应用程序单独配置代理。这对于那些不遵守系统代理设置的应用(如某些命令行工具、游戏客户端)尤为重要。

在配置文件中启用 TUN 模式:

tun:
  enable: true
  stack: system          # system / gvisor / mixed
  dns-hijack:
    - any:53             # 劫持所有 DNS 请求
  auto-route: true       # 自动设置路由规则
  auto-detect-interface: true  # 自动检测出口网卡

关于 TUN 模式的权限要求

TUN 模式需要创建虚拟网卡,在 Linux 上需要 root 权限或 CAP_NET_ADMIN 能力;在 macOS 上需要管理员权限;在 Windows 上需要管理员权限,并且需要安装 WinTun 驱动(大多数 GUI 工具会自动处理)。

stack 参数说明

值说明
system使用系统网络栈处理 TUN 流量,兼容性最好,推荐首选
gvisor使用 gVisor 用户态网络栈,隔离性更好,但性能略低
mixedTCP 使用系统网络栈,UDP 使用 gVisor,兼顾性能和兼容性

DNS 配置详解

DNS 配置是 Mihomo 中较为复杂但非常重要的部分,直接影响分流的准确性和 DNS 泄露问题。

Fake-IP 模式

Fake-IP 是 Mihomo 推荐的 DNS 工作模式。其原理是:

应用请求解析 google.com
    |
    v
Mihomo DNS 模块
    |  不立即发出真实 DNS 查询
    |  返回一个伪造的 IP(来自 fake-ip-range,如 198.18.0.1)
    v
应用使用假 IP 发起连接请求
    |
    v
Mihomo 拦截该连接请求
    |  识别出目标是 google.com(从假 IP 映射回来)
    |  按规则判断是代理还是直连
    v
如果走代理:在代理节点端解析真实 DNS 并连接
如果直连:此时才在本地发出真实 DNS 查询

Fake-IP 的优势:

  • 避免了 DNS 泄露(代理流量的 DNS 在远端解析)
  • 减少 DNS 查询延迟(无需等待实际 DNS 响应再建立连接)
  • 与分流规则配合效果更好(域名规则在 DNS 解析前就可以生效)

nameserver 和 fallback 的分工

dns:
  nameserver:
    - https://doh.pub/dns-query     # 国内 DoH,解析国内域名
  fallback:
    - https://1.1.1.1/dns-query    # 境外 DoH,解析境外域名
  fallback-filter:
    geoip: true
    geoip-code: CN                 # 如果 nameserver 返回的 IP 不是中国 IP,则使用 fallback 结果

工作逻辑:

  1. 优先使用 nameserver 进行查询
  2. 如果结果是中国大陆 IP,认为解析正确,使用该结果
  3. 如果结果不是中国大陆 IP(例如被污染返回了错误 IP),则用 fallback 的结果替代

这样既能保证国内域名走国内 DNS 快速解析,又能确保国外域名得到正确的 DNS 结果。

策略组配置

url-test(自动测速选择)

定期测量每个节点的延迟,自动选择延迟最低的节点:

proxy-groups:
  - name: "Auto-Best"
    type: url-test
    proxies:
      - "node-hk-1"
      - "node-jp-1"
      - "node-us-1"
    url: "https://www.gstatic.com/generate_204"
    interval: 300       # 每 300 秒测速一次
    tolerance: 50       # 延迟差异在 50ms 以内不切换,避免频繁抖动

fallback(故障切换)

使用延迟最低的可用节点,当当前节点不可用时自动切换:

proxy-groups:
  - name: "Fallback"
    type: fallback
    proxies:
      - "node-primary"
      - "node-backup-1"
      - "node-backup-2"
    url: "https://www.gstatic.com/generate_204"
    interval: 180

load-balance(负载均衡)

将连接分散到多个节点上,提高并发性能:

proxy-groups:
  - name: "Load-Balance"
    type: load-balance
    proxies:
      - "node-us-1"
      - "node-us-2"
      - "node-us-3"
    url: "https://www.gstatic.com/generate_204"
    interval: 300
    strategy: round-robin    # round-robin / consistent-hashing / sticky-sessions

嵌套策略组

策略组可以相互引用,构建多层分流逻辑:

proxy-groups:
  - name: "Proxy"
    type: select
    proxies:
      - "Auto-HK"      # 引用其他策略组
      - "Auto-JP"
      - "Auto-US"
      - DIRECT

  - name: "Auto-HK"
    type: url-test
    proxies:
      - "node-hk-1"
      - "node-hk-2"
    url: "https://www.gstatic.com/generate_204"
    interval: 300

  - name: "Streaming"
    type: select
    proxies:
      - "node-us-netflix"
      - "node-jp-netflix"

分流规则

规则类型

规则类型示例说明
DOMAINDOMAIN,google.com,Proxy精确匹配完整域名
DOMAIN-SUFFIXDOMAIN-SUFFIX,google.com,Proxy匹配域名及其所有子域名
DOMAIN-KEYWORDDOMAIN-KEYWORD,youtube,Proxy匹配包含关键词的域名
DOMAIN-REGEXDOMAIN-REGEX,^.*\.google\..*$,Proxy正则表达式匹配域名
IP-CIDRIP-CIDR,192.168.0.0/16,DIRECT匹配 IP 地址段
GEOIPGEOIP,CN,DIRECT匹配目标 IP 所属国家/地区
GEOSITEGEOSITE,cn,DIRECT匹配预定义的域名集合
PROCESS-NAMEPROCESS-NAME,curl,DIRECT匹配发起连接的进程名
MATCHMATCH,Proxy默认规则,匹配所有未命中的流量

使用规则集(Rule-Set)

手动维护规则列表效率低下,推荐使用社区维护的规则集:

rule-providers:
  reject:
    type: http
    behavior: domain
    url: "https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/reject.txt"
    path: ./ruleset/reject.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

rules:
  - RULE-SET,reject,REJECT
  - RULE-SET,proxy,Proxy
  - RULE-SET,direct,DIRECT
  - GEOIP,CN,DIRECT
  - MATCH,Proxy

Loyalsoldier/clash-rules 是社区使用最广泛的规则集之一,定期更新,覆盖了常见的代理和直连域名列表。

以 systemd 运行(Linux 服务器)

在 Linux 服务器上,通常将 Mihomo 配置为 systemd 服务,开机自启并自动重启:

创建系统用户

useradd -r -s /bin/false mihomo

准备配置目录

mkdir -p /etc/mihomo
chown mihomo:mihomo /etc/mihomo

# 将配置文件和规则集目录放入
cp config.yaml /etc/mihomo/

创建 systemd 服务单元文件

创建 /etc/systemd/system/mihomo.service:

[Unit]
Description=Mihomo Daemon
After=network.target NetworkManager.service systemd-networkd.service

[Service]
Type=simple
LimitNPROC=500
LimitNOFILE=1000000
CapabilityBoundingSet=CAP_NET_ADMIN CAP_NET_RAW CAP_NET_BIND_SERVICE CAP_SYS_TIME CAP_SYS_PTRACE CAP_DAC_READ_SEARCH CAP_DAC_OVERRIDE
AmbientCapabilities=CAP_NET_ADMIN CAP_NET_RAW CAP_NET_BIND_SERVICE CAP_SYS_TIME CAP_SYS_PTRACE CAP_DAC_READ_SEARCH CAP_DAC_OVERRIDE
Restart=always
ExecStartPre=/usr/bin/sleep 1s
ExecStart=/usr/local/bin/mihomo -d /etc/mihomo
ExecReload=/bin/kill -HUP $MAINPID

[Install]
WantedBy=multi-user.target

-d /etc/mihomo 指定配置目录,Mihomo 将在该目录中寻找 config.yaml。

启动服务

systemctl daemon-reload
systemctl enable mihomo
systemctl start mihomo
systemctl status mihomo

# 查看日志
journalctl -u mihomo -f

重载配置(不重启进程)

修改配置文件后,可以发送 SIGHUP 信号让 Mihomo 重新加载配置,无需完全重启:

systemctl reload mihomo
# 或者
kill -HUP $(pgrep mihomo)

Web 控制面板

Mihomo 提供 RESTful API,可以通过 Web 控制面板实时查看和控制运行状态。常用的面板有:

  • Yacd-meta:github.com/MetaCubeX/yacd,Yacd 的 Clash Meta 适配版
  • Metacubexd:github.com/MetaCubeX/metacubexd,基于 React 的现代面板

在配置文件中指定外部 UI 路径:

external-controller: 127.0.0.1:9090
secret: "your-api-secret"
external-ui: /usr/share/metacubexd   # 存放面板文件的目录
external-ui-name: metacubexd
external-ui-url: "https://github.com/MetaCubeX/metacubexd/archive/refs/heads/gh-pages.zip"

配置完成后,通过浏览器访问 http://127.0.0.1:9090/ui 即可打开控制面板。

如果无法在本地访问(例如 Mihomo 运行在远程服务器),可以通过 SSH 端口转发将面板端口映射到本地:

ssh -L 9090:127.0.0.1:9090 user@your.server.ip

然后在本地浏览器访问 http://127.0.0.1:9090/ui。

覆写(Override)

Mihomo 支持通过覆写功能在不修改原始订阅配置的前提下,叠加自定义的配置项。这在使用机场订阅时非常实用——你可以在订阅更新后保留自己的自定义规则和策略组。

覆写文件通常命名为 override.yaml(具体实现取决于 GUI 工具),其结构与普通配置文件相同,内容会与订阅配置合并:

# override.yaml 示例:添加自定义规则和 DNS 设置

dns:
  nameserver:
    - https://doh.pub/dns-query

rules:
  - DOMAIN-SUFFIX,custom-site.com,DIRECT
  - PROCESS-NAME,git,DIRECT

不同 GUI 工具的覆写实现方式不同,请参考对应工具的文档。

常见问题

Q:Mihomo 启动后系统代理没有生效,流量没有走代理?

Mihomo 本身只在指定端口上监听代理请求,不会自动设置系统代理。你需要:

  1. 手动在系统的网络设置中将 HTTP 代理或 SOCKS5 代理设置为 127.0.0.1:7890
  2. 或者启用 TUN 模式,让 Mihomo 在系统层面接管流量
  3. 或者使用 GUI 工具,大多数 GUI 工具会自动管理系统代理开关

Q:规则命中了直连,但访问国外网站仍然很慢?

检查以下几点:

  1. 确认规则顺序正确,代理规则在直连规则之前
  2. 检查 DNS 配置,确认境外域名使用了境外 DNS 而非被污染的国内 DNS
  3. 查看控制面板中的连接日志,确认流量走向与预期一致

Q:订阅更新后节点消失了?

这是正常情况——订阅更新会用最新的节点列表替换旧的列表。如果需要保留自定义节点,应将其写在覆写配置中,而不是直接修改订阅配置文件。

Q:fake-ip 模式下,某些应用无法正常使用?

部分应用不兼容 Fake-IP 模式(如某些需要知道真实 IP 的游戏反作弊系统)。可以通过 fake-ip-filter 为这些应用的域名排除 Fake-IP 处理,强制使用真实 DNS 结果:

dns:
  fake-ip-filter:
    - "*.lan"
    - localhost
    - "*.local"
    - "*.msftconnecttest.com"    # Windows 网络检测
    - "*.msftncsi.com"
    - "time.windows.com"
    - "+.ntp.org"                # NTP 时间同步

Q:Mihomo 和 Clash Verge Rev / mihomo Party 有什么关系?

Mihomo 是代理核心(Core),负责实际的流量处理和协议实现。Clash Verge Rev 和 mihomo Party 是图形界面程序(GUI),它们在后台调用 Mihomo 核心,并提供友好的可视化操作界面。选择 GUI 工具的同时,也可以在工具设置中选择使用哪个版本的 Mihomo 核心(Alpha 版本或稳定版)。

相关资源

  • Mihomo 官方文档:wiki.metacubex.one
  • Mihomo GitHub:github.com/MetaCubeX/mihomo
  • Clash 规则集(Loyalsoldier):github.com/Loyalsoldier/clash-rules
  • GeoSite / GeoIP 数据库(MetaCubeX):github.com/MetaCubeX/meta-rules-dat

延伸阅读

  • sing-box — 协议支持更全面的代理核心,AnyTLS 等新协议的最佳选择
  • Xray — VLESS + Reality 的原生实现,自建节点的首选核心
  • dae — Linux 平台上基于 eBPF 的极高性能透明代理方案
  • 代理软件总览 — 回到软件总览页面
最近更新: 2026/4/9 14:18
Prev
代理软件总览
Next
sing-box