EN

客户端教程

Mihomo 配置文件怎么写:一份能直接用的最小配置加逐段解释

Clash Meta / Mihomo 的 YAML 配置从零讲起。端口、DNS、节点、策略组、规则五段各是干什么的,给一份能直接改改就用的模板。

作者 老毛最后更新 2026-08-25约 11 分钟

大部分人用订阅就够了,不需要碰配置文件。但有三种情况你会需要:

  1. 想给 AI 工具或某个应用锁定固定节点
  2. 想把多条订阅合并成一个配置
  3. 订阅给的规则不合适,想自己改分流

这篇把配置文件拆成五段讲清楚。

一份最小可用配置

先给完整的,下面逐段解释:

# ---- 1. 基础 ----
mixed-port: 7890
allow-lan: false
mode: rule
log-level: info
ipv6: false
external-controller: 127.0.0.1:9090

# ---- 2. DNS ----
dns:
  enable: true
  listen: 0.0.0.0:1053
  enhanced-mode: fake-ip
  fake-ip-range: 198.18.0.1/16
  fake-ip-filter:
    - "*.lan"
    - "localhost.ptlogin2.qq.com"
  default-nameserver:
    - 223.5.5.5
    - 119.29.29.29
  nameserver:
    - https://1.1.1.1/dns-query
    - https://dns.google/dns-query
  fallback:
    - https://1.0.0.1/dns-query

# ---- 3. 节点 ----
proxies:
  - name: "日本01"
    type: trojan
    server: jp1.example.com
    port: 443
    password: "your-password"
    sni: jp1.example.com
    udp: true

  - name: "美国01"
    type: vmess
    server: us1.example.com
    port: 443
    uuid: a1b2c3d4-e5f6-7890-abcd-ef1234567890
    alterId: 0
    cipher: auto
    network: ws
    tls: true
    servername: us1.example.com
    ws-opts:
      path: /ray

# ---- 4. 策略组 ----
proxy-groups:
  - name: "🚀 节点选择"
    type: select
    proxies:
      - "♻️ 自动选择"
      - "日本01"
      - "美国01"
      - DIRECT

  - name: "♻️ 自动选择"
    type: url-test
    proxies:
      - "日本01"
      - "美国01"
    url: "http://cp.cloudflare.com/generate_204"
    interval: 300
    tolerance: 50

  - name: "🤖 AI服务"
    type: select
    proxies:
      - "美国01"
      - "日本01"

  - name: "🐟 漏网之鱼"
    type: select
    proxies:
      - "🚀 节点选择"
      - DIRECT

# ---- 5. 规则 ----
rules:
  - DOMAIN-SUFFIX,openai.com,🤖 AI服务
  - DOMAIN-SUFFIX,chatgpt.com,🤖 AI服务
  - DOMAIN-SUFFIX,anthropic.com,🤖 AI服务
  - DOMAIN-SUFFIX,claude.ai,🤖 AI服务
  - DOMAIN-SUFFIX,cn,DIRECT
  - DOMAIN-KEYWORD,baidu,DIRECT
  - GEOIP,CN,DIRECT
  - MATCH,🐟 漏网之鱼

把节点信息换成你自己的,这份就能用。

逐段解释

1. 基础段

字段作用
mixed-portHTTP 和 SOCKS5 共用一个端口,7890 是惯例
allow-lan是否允许局域网其它设备连过来。手机想用电脑的代理就设 true
moderule / global / direct日常用 rule
log-level排查问题时改成 debug
ipv6除非你确定需要,否则 false 省事
external-controller给面板用的 API 端口

2. DNS 段(最容易配错的一段)

enhanced-mode: fake-ip 是重点。

它的原理:应用问"example.com 的 IP 是多少",Mihomo 不去真的解析,而是从 198.18.0.0/16 这个段里随便发一个假 IP 回去。应用拿着假 IP 来连接,Mihomo 认出这是假 IP,再按域名去匹配规则。

好处:

fake-ip-filter 里放的是不能用假 IP 的域名——比如局域网设备、某些需要真实 IP 的服务。

nameserver 用 DoH(https:// 开头)能避免 DNS 查询被明文窥探。

3. 节点段

每个协议的字段不一样。几个常用的:

Trojan:

- name: "节点名"
  type: trojan
  server: example.com
  port: 443
  password: "密码"
  sni: example.com
  udp: true

Hysteria2:

- name: "节点名"
  type: hysteria2
  server: example.com
  port: 443
  password: "密码"
  sni: example.com

Shadowsocks:

- name: "节点名"
  type: ss
  server: 1.2.3.4
  port: 8388
  cipher: aes-256-gcm
  password: "密码"
  udp: true

vmess 的写法在免费 V2Ray 节点那篇里有。

记得加 udp: true,否则游戏、语音、部分应用的 UDP 流量走不了。

4. 策略组段

四种类型够用了:

类型行为
select手动选,你在界面上点哪个用哪个
url-test自动选延迟最低的
fallback按顺序用,前一个挂了自动切下一个
load-balance轮流用多条

5. 规则段(顺序决定一切)

规则从上往下匹配,命中第一条就停

所以顺序错了会出大问题。看这个例子:

# ❌ 错误顺序
rules:
  - GEOIP,CN,DIRECT              # 这条会先命中
  - DOMAIN-SUFFIX,openai.com,🤖 AI服务   # 永远轮不到

如果某个 AI 服务的 IP 恰好被 GEOIP 判成 CN,它就直连了,然后你就上不去。

正确的顺序原则:越具体的越靠前。

rules:
  - DOMAIN-SUFFIX,...   # 具体域名规则
  - DOMAIN-KEYWORD,...  # 关键词规则
  - GEOIP,CN,DIRECT     # 地区规则
  - MATCH,兜底组         # 必须放最后

MATCH 必须是最后一条,它是兜底,匹配所有剩下的。

常用规则类型:

类型例子说明
DOMAINDOMAIN,www.google.com,PROXY完全匹配
DOMAIN-SUFFIXDOMAIN-SUFFIX,google.com,PROXY匹配这个域名和所有子域名
DOMAIN-KEYWORDDOMAIN-KEYWORD,google,PROXY包含关键词就匹配
IP-CIDRIP-CIDR,192.168.0.0/16,DIRECTIP 段
GEOIPGEOIP,CN,DIRECT按 IP 归属地
PROCESS-NAMEPROCESS-NAME,Telegram.exe,PROXY按进程名(要开 TUN)
MATCHMATCH,兜底组兜底

三个实用场景

场景一:给某个软件单独指定节点

PROCESS-NAME(需要 TUN 模式):

rules:
  - PROCESS-NAME,Steam.exe,🎮 游戏节点
  - PROCESS-NAME,Docker Desktop.exe,DIRECT

场景二:让某个网站直连

rules:
  - DOMAIN-SUFFIX,某网站.com,DIRECT
  # 放在其它规则前面

场景三:省流量(付费套餐按量计费时很有用)

把大流量的自动更新、云备份服务加进直连:

rules:
  - DOMAIN-SUFFIX,windowsupdate.com,DIRECT
  - DOMAIN-SUFFIX,icloud.com,DIRECT
  - DOMAIN-KEYWORD,steamcontent,DIRECT

我第一个月就是因为相册自动备份走了代理,白白吃掉几十个 G。

改完不生效?

按这个顺序查:

  1. YAML 缩进错了。这是最常见的。缩进必须用空格不能用 Tab,且层级要对齐。解析失败时客户端会回退到上一个可用配置,所以看起来像"没生效"。
  2. 没重载配置。客户端界面上点一下刷新/重载。
  3. 被订阅覆盖了。如果你改的是订阅拉下来的文件,下次更新订阅会覆盖掉。要持久化的话用客户端的「扩展脚本」或者本地配置。
  4. 规则顺序不对。前面有更宽泛的规则先命中了。

接着看

几个常被问到的问题

Mihomo 和 Clash 的配置文件通用吗?

基本通用。Mihomo 是 Clash 的超集,原来的配置能直接用,但 Mihomo 多支持一些协议(Hysteria2、TUIC、VLESS)和规则类型。反过来把 Mihomo 的配置喂给老 Clash 可能报错。

fake-ip 和 redir-host 选哪个?

日常用 fake-ip。它给每个域名分配一个假 IP,直接返回给应用,不用等真实 DNS 解析,速度快很多,也能避免 DNS 污染。redir-host 只在某些需要真实 IP 的场景(比如部分局域网服务)才用。

规则的顺序重要吗?

非常重要。规则是从上往下匹配,命中第一条就停止。所以特殊规则要放前面,MATCH 兜底必须放最后。把 GEOIP,CN,DIRECT 放在 AI 域名规则前面,会导致部分 AI 服务被误判直连。

改了配置文件不生效?

Clash 系需要重新加载配置。客户端界面上一般有刷新/重载按钮。另外注意 YAML 对缩进敏感,缩进错一格整个文件就解析失败,客户端会回退到上一个可用配置——所以看起来像"没生效"。

这篇是我自己实测后写的,环境变了结论也会变。发现哪条已经失效,欢迎写信到 [email protected],我会更新并标注日期。

接着看这几篇