Mihomo 配置文件入门:从零写一份可用的 config.yaml(逐段讲解)
Clash 中文网编辑部 · 更新于 2026/10/22 · 对照版本 Mihomo(Clash.Meta 内核) v1.19.33
Mihomo 的配置文件是一个 YAML 文件(通常叫 config.yaml),由通用设置、proxy-providers(代理集合)、proxy-groups(代理组)、rule-providers(规则集合)、rules(规则)和 dns 几部分组成。 本文先给出一份完整可用的模板,再逐段讲解每一部分的作用,最后给出多机场合并的写法。
完整模板
把订阅链接换成你自己的即可使用:
# ========== 1. 通用设置 ==========
mixed-port: 7890 # HTTP 与 SOCKS5 混合端口
allow-lan: false # 是否允许局域网设备连接
mode: rule # rule / global / direct
log-level: info
ipv6: false
unified-delay: true
tcp-concurrent: true
find-process-mode: strict
profile:
store-selected: true # 记住代理组选择
store-fake-ip: true
# ========== 2. 外部控制 ==========
external-controller: 127.0.0.1:9090
secret: ""
external-ui: ui
external-ui-url: "https://github.com/MetaCubeX/metacubexd/archive/refs/heads/gh-pages.zip"
# ========== 3. 代理集合(引用订阅) ==========
proxy-providers:
airport:
type: http
url: "https://example.com/your-subscription"
path: ./providers/airport.yaml
interval: 86400
health-check:
enable: true
url: https://www.gstatic.com/generate_204
interval: 300
exclude-filter: "剩余|到期|官网|流量"
# ========== 4. 代理组 ==========
proxy-groups:
- name: 节点选择
type: select
proxies: [自动选择, 香港, 日本, 美国, DIRECT]
- name: 自动选择
type: url-test
use: [airport]
url: https://www.gstatic.com/generate_204
interval: 300
tolerance: 50
- name: 香港
type: url-test
use: [airport]
filter: "(?i)港|hk|hong kong"
url: https://www.gstatic.com/generate_204
interval: 300
- name: 日本
type: url-test
use: [airport]
filter: "(?i)日本|jp|japan"
url: https://www.gstatic.com/generate_204
interval: 300
- name: 美国
type: url-test
use: [airport]
filter: "(?i)美|us|united states"
url: https://www.gstatic.com/generate_204
interval: 300
- name: AI 服务
type: select
proxies: [美国, 日本, 节点选择]
# ========== 5. 规则 ==========
rules:
- GEOSITE,private,DIRECT
- GEOIP,private,DIRECT,no-resolve
- GEOSITE,category-ads-all,REJECT
- GEOSITE,openai,AI 服务
- GEOSITE,anthropic,AI 服务
- GEOSITE,cn,DIRECT
- GEOIP,CN,DIRECT,no-resolve
- MATCH,节点选择
# ========== 6. DNS ==========
dns:
enable: true
ipv6: false
enhanced-mode: fake-ip
fake-ip-range: 198.18.0.1/16
fake-ip-filter:
- "+.lan"
- "+.local"
- "time.*.com"
- "ntp.*.com"
default-nameserver: [223.5.5.5, 119.29.29.29]
nameserver:
- https://dns.alidns.com/dns-query
- https://doh.pub/dns-query
proxy-server-nameserver:
- https://dns.alidns.com/dns-query
# ========== 7. 嗅探 ==========
sniffer:
enable: true
sniff:
HTTP: { ports: [80, 8080-8880], override-destination: true }
TLS: { ports: [443, 8443] }
QUIC: { ports: [443, 8443] }
逐段讲解
1. 通用设置
| 字段 | 作用 |
|---|---|
mixed-port |
同时支持 HTTP 和 SOCKS5 的端口,客户端代理设置填这个 |
allow-lan |
true 时局域网设备可连接,服务器上通常需要开启并设置防火墙 |
mode |
默认代理模式 |
unified-delay |
延迟测试排除握手差异 |
tcp-concurrent |
同时连接目标的多个 IP,取最快 |
find-process-mode |
进程识别,PROCESS-NAME 规则需要 |
profile.store-selected |
重启后保留代理组的选择 |
2. 外部控制
开启 API 和 Web 面板,详见 Web 面板教程。external-controller 监听非本机地址时必须设置 secret。
3. 代理集合
proxy-providers 让内核自己去下载订阅、定时更新,节点会出现在 use: 了它的代理组中:
interval: 86400:每天更新一次;health-check:定时测试节点可用性;exclude-filter:排除“剩余流量”等信息节点。
详见 代理集合与规则集合。
4. 代理组
模板的分组思路:
节点选择(手动)
├─ 自动选择(全部节点中最快)
├─ 香港 / 日本 / 美国(各地区中最快)
└─ DIRECT
AI 服务(手动,默认美国)
filter 用正则按节点名称筛选,(?i) 表示不区分大小写。这样无论机场节点怎么变,地区分组都会自动更新。代理组类型详见 代理组详解。
5. 规则
规则从上到下匹配,命中即停止。模板的顺序是:
- 局域网直连(
private); - 广告拦截;
- AI 服务走专门的组;
- 国内网站和 IP 直连;
- 其余走“节点选择”。
GEOSITE / GEOIP 依赖地理数据库,见 GeoData 教程;规则写法见 规则详解。
6. DNS
fake-ip模式速度快、防污染;default-nameserver必须是 IP,用于解析 DoH 服务器的域名;proxy-server-nameserver专门解析节点域名,避免节点域名被污染。
详见 DNS 配置详解。
7. 嗅探
从流量中识别真实域名,TUN 模式下提高域名规则准确度。
多机场合并模板
只需在 proxy-providers 中添加多个集合,并在代理组的 use 中同时引用:
proxy-providers:
airport-a:
type: http
url: "https://a.example.com/sub"
path: ./providers/a.yaml
interval: 86400
override:
additional-prefix: "[A] " # 给节点名加前缀,便于区分
airport-b:
type: http
url: "https://b.example.com/sub"
path: ./providers/b.yaml
interval: 86400
override:
additional-prefix: "[B] "
proxy-groups:
- name: 自动选择
type: url-test
use: [airport-a, airport-b]
url: https://www.gstatic.com/generate_204
interval: 300
- name: 主备切换
type: fallback
use: [airport-a, airport-b]
url: https://www.gstatic.com/generate_204
interval: 300
override.additional-prefix 会给该集合的所有节点名加上前缀,避免两个机场的同名节点冲突。
修改后检查
mihomo -d /etc/mihomo -t
常见错误:
| 错误 | 原因 |
|---|---|
yaml: line X: did not find expected key |
第 X 行附近缩进错误 |
proxy group ... not found |
规则或代理组引用了不存在的组名 |
mapping values are not allowed |
冒号后缺少空格,或值包含冒号未加引号 |
在图形客户端中使用这份配置
- Clash Verge Rev:订阅页「新建」→ 类型选「本地」,粘贴配置;
- 其他客户端:导入本地 YAML 文件。
注意图形客户端会接管端口、allow-lan、external-controller 等字段,以客户端设置为准。
相关教程
常见问题
配置文件里的缩进有要求吗?
有。YAML 用空格缩进表示层级,不能使用 Tab,同一层级的缩进必须对齐。
机场订阅可以直接当配置文件用吗?
可以。Clash 格式的订阅本身就是一份完整的 config.yaml;自己写配置时,通常用 proxy-providers 引用订阅中的节点,规则和分组由自己掌控。
为什么要自己写配置而不直接用订阅?
自己写配置可以统一多个机场、自定义分组和规则、控制 DNS,并且不受机场配置变化的影响。图形客户端用户通常用覆写功能即可,不必从零编写。
还没安装 Mihomo(Clash.Meta 内核)?
最新版 v1.19.33,直链 GitHub 官方安装包。