Mihomo 配置文件怎么写:一份能直接用的最小配置加逐段解释
Clash Meta / Mihomo 的 YAML 配置从零讲起。端口、DNS、节点、策略组、规则五段各是干什么的,给一份能直接改改就用的模板。
大部分人用订阅就够了,不需要碰配置文件。但有三种情况你会需要:
- 想给 AI 工具或某个应用锁定固定节点
- 想把多条订阅合并成一个配置
- 订阅给的规则不合适,想自己改分流
这篇把配置文件拆成五段讲清楚。
一份最小可用配置
先给完整的,下面逐段解释:
# ---- 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-port | HTTP 和 SOCKS5 共用一个端口,7890 是惯例 |
allow-lan | 是否允许局域网其它设备连过来。手机想用电脑的代理就设 true |
mode | rule / 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,再按域名去匹配规则。
好处:
- 快(不用等真实解析)
- 准(规则按域名匹配,不受 DNS 污染影响)
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 必须是最后一条,它是兜底,匹配所有剩下的。
常用规则类型:
| 类型 | 例子 | 说明 |
|---|---|---|
DOMAIN | DOMAIN,www.google.com,PROXY | 完全匹配 |
DOMAIN-SUFFIX | DOMAIN-SUFFIX,google.com,PROXY | 匹配这个域名和所有子域名 |
DOMAIN-KEYWORD | DOMAIN-KEYWORD,google,PROXY | 包含关键词就匹配 |
IP-CIDR | IP-CIDR,192.168.0.0/16,DIRECT | IP 段 |
GEOIP | GEOIP,CN,DIRECT | 按 IP 归属地 |
PROCESS-NAME | PROCESS-NAME,Telegram.exe,PROXY | 按进程名(要开 TUN) |
MATCH | MATCH,兜底组 | 兜底 |
三个实用场景
场景一:给某个软件单独指定节点
用 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。
改完不生效?
按这个顺序查:
- YAML 缩进错了。这是最常见的。缩进必须用空格不能用 Tab,且层级要对齐。解析失败时客户端会回退到上一个可用配置,所以看起来像"没生效"。
- 没重载配置。客户端界面上点一下刷新/重载。
- 被订阅覆盖了。如果你改的是订阅拉下来的文件,下次更新订阅会覆盖掉。要持久化的话用客户端的「扩展脚本」或者本地配置。
- 规则顺序不对。前面有更宽泛的规则先命中了。
接着看
几个常被问到的问题
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 对缩进敏感,缩进错一格整个文件就解析失败,客户端会回退到上一个可用配置——所以看起来像"没生效"。