Clash Meta (Mihomo) 配置文件语法报错怎么改?排查 YAML 缩进与特殊字符

一、YAML 语法的严苛要求

Clash Meta (Mihomo) 的所有规则与节点配置均采用 YAML 格式。YAML 对格式要求极其严格,任何一处不合规都会导致整个文件被解析器直接拒绝:

fatal error: yaml: line 42: did not find expected key

二、排查四大高发语法错误

1. 严禁使用 Tab 制表符缩进

这是 90% 的新手手写配置报错的原因。YAML 规范绝对禁止使用 Tab 键缩进,必须全部使用半角英文空格(Space)。建议统一采用 2 个空格 作为一级缩进。

2. 冒号和横杠后必须留有一个空格

  • 错误写法:port:7890 或 -name: node1
  • 正确写法:port: 7890 和 - name: node1

3. 误输入了全角中文符号

特别是在编辑备注、节点名称或自定义规则时,很容易不小心敲入中文冒号 :、中文逗号 , 或全角双引号 “”。整个配置文件除节点名称字面量外,所有语法标点必须是纯英文字符。

4. 特殊字符未用引号包裹

如果密码、节点名称包含特殊字符(如 @、:、#、*、{ }),YAML 会误认为语法标记:

# 错误写法
password: my@secret#123

# 正确写法
password: "my@secret#123"