Clash 中文网搜索

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. 规则

规则从上到下匹配,命中即停止。模板的顺序是:

  1. 局域网直连(private);
  2. 广告拦截;
  3. AI 服务走专门的组;
  4. 国内网站和 IP 直连;
  5. 其余走“节点选择”。

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 官方安装包。

前往下载