机场学习站首推无忧链接官网 →
客户端教程

Mihomo 配置文件:一份可读懂的 config.yaml

读懂配置文件的结构,订阅里再长的 YAML 也不再吓人。

更新 2026-10-02 · 难度:进阶 · 约 14 分钟

先看结论

Mihomo 配置文件由几个顶层段落组成:基础项、dns、tun、proxies(节点)、proxy-groups(策略组)、rules(规则)。看懂这六块,就能读懂大部分订阅配置。

一份最小示例

示例:最小 config.yaml(占位符不可直接使用)
mixed-port: 7890
allow-lan: false
mode: rule
log-level: info

proxies:
  - name: "示例节点"
    type: trojan
    server: <服务器地址>
    port: 443
    password: <你的密码>
    sni: <伪装域名>

proxy-groups:
  - name: Proxy
    type: select
    proxies:
      - 示例节点
      - DIRECT

rules:
  - GEOIP,CN,DIRECT
  - MATCH,Proxy

逐块解读

mixed-port
同时提供 HTTP 与 SOCKS 的本地监听端口,系统代理会指向它。
allow-lan
是否允许局域网里的其他设备使用这个端口。不需要时保持 false。
mode
运行模式:rule、global 或 direct。
proxies
节点列表,每个节点的字段见节点配置字段。
proxy-groups
策略组:把节点组织成可选择、可自动测速或可故障转移的组。
rules
分流规则,自上而下匹配,见分流规则。

常见的策略组类型

类型行为用途
select手动选择一个日常选节点
url-test定期测速,自动选延迟最低的自动选节点
fallback按顺序,前一个不可用才用下一个故障转移
load-balance在多个节点间分摊请求分摊负载

修改配置的安全做法

  1. 修改前备份原文件。
  2. 一次只改一处,改完检查缩进(YAML 对缩进敏感)。
  3. 通过客户端或内核的日志确认配置加载成功。
  4. 订阅配置会被更新覆盖,长期保留的规则请放在扩展配置里。

proxy-providers 与 rule-providers

当节点和规则数量变多,把它们全部写在一份配置里会很难维护。provider 机制让你把节点列表和规则集放到远程或独立的文件里,由内核定时更新。proxy-providers 管节点来源,rule-providers 管规则来源,两者都需要声明地址、类型、更新间隔和本地缓存路径。配置里再引用 provider 的名字,策略组就能使用其中的节点,规则就能使用其中的条目。

示例:节点提供者(地址为占位)
proxy-providers:
  my-nodes:
    type: http
    url: <订阅或节点列表地址>
    path: ./providers/my-nodes.yaml
    interval: 3600

proxy-groups:
  - name: Proxy
    type: select
    use:
      - my-nodes

几个常用的顶层字段速查

allow-lan
是否允许局域网设备使用本机代理端口。
bind-address
监听的网卡地址,默认全部。
ipv6
是否启用 IPv6 支持。
unified-delay
统一延迟计算方式,使不同类型节点的延迟更可比。
external-controller
外部控制接口的监听地址。

改完配置,先校验再启动

内核提供配置检查的功能,可以在不真正启动的情况下检测配置的语法与字段是否合法。养成"先校验再启动"的习惯,能避免因为一个缩进错误导致代理整体不可用。校验通过之后,再用日志确认各部分都正常加载。

示例:校验配置(路径为占位)
mihomo -t -d <你的工作目录>

常见错误对照

报错或现象常见原因
启动失败,提示解析错误YAML 缩进或冒号后缺少空格
提示找不到某个代理或组规则或策略组里引用的名称与实际名称不一致
provider 一直加载失败地址不可访问,或 behavior 与内容类型不符
规则集加载成功但没效果没有在 rules 里引用,或被更靠前的规则抢先命中

读一份陌生的订阅配置,推荐的顺序

拿到一份陌生的配置文件,不要从头到尾逐行读,而是按"结构由大到小"的顺序:先看顶层有哪些段落,判断这份配置包含哪些功能;再看 proxies 里有多少节点、类型是什么;然后看 proxy-groups,理解节点是怎么被组织的;接着看 rules,理解分流的思路;最后看 dns 与 tun,了解解析与接管方式。这样读下来,十分钟就能对一份配置有整体认识,而不会迷失在细节里。

  1. 数一数顶层段落,确认有哪些功能。
  2. 看 proxies:数量、协议类型、命名风格。
  3. 看 proxy-groups:有哪些组、类型是什么、谁引用了谁。
  4. 看 rules:从上到下,注意兜底规则。
  5. 看 dns 与 tun:确认解析与接管方式。

在这个过程中,遇到不认识的字段,先记下,再去查文档,而不是立刻停下来研究。先建立整体印象,再回头补细节。

配置文件的"版本管理"

配置文件会随着你的调整不断变化,而你经常需要回到"上一个可用的版本"。最简单的办法,是每次修改前复制一份带日期的备份;稍微讲究一点,可以用版本控制工具管理配置目录,每次修改都留下一条记录。这样,无论改坏了什么,你都能迅速恢复,也能看到每次修改的内容与原因。对于需要长期维护的配置,这个习惯带来的价值,会随时间越来越大。

关于「Mihomo配置文件」的常见问题

YAML 缩进用 Tab 还是空格?

用空格,不要用 Tab。同一层级的缩进要保持一致。

为什么改了配置没生效?

常见原因:没有重新加载配置、改的是会被订阅覆盖的文件、或者配置出错导致加载失败。

YAML 里的中文名称有问题吗?

一般没有,内核支持中文名称,但在规则和策略组里引用时必须与定义处完全一致,包括空格和标点。

Clash配置文件是什么格式?

是 YAML 格式的文本,常见的顶层字段有 proxies、proxy-groups、rules 和 dns。YAML 对缩进敏感,手工修改时用空格而不是制表符,改完先用客户端的检查功能验证。

继续学习

首推无忧链接官网去看看 →