先看结构,再看具体参数
YAML 用便于阅读的文本表达数据结构,常见配置包含映射、列表和标量。它不是看到冒号就自动理解意图的自然语言:键名、缩进和标点都会影响解析。学习时先辨认哪些字段同级,哪些条目从属于某个字段,再阅读每个选项的具体作用。
配置文件能被 YAML 解析器读取,并不代表符合 Mihomo 当前版本的字段定义。格式验证、语义验证和实际连接验证是不同阶段,不能把其中一步通过当作全部正确。修改前先保存副本,有助于定位是格式变化还是功能设置引起异常。
用空格表达层级
缩进需要保持一致,不使用制表符充当层级缩进。日常编辑可统一使用两个空格,并打开编辑器的空白符显示,以免视觉上对齐的文本实际上使用了不同字符。层级由相对缩进表达,同一个映射下的同级字段应对齐。
出现报错时,不仅要看提示行,还要检查上一行是否少了符号或引号。复制文本后可能混入全角冒号、不可见字符或错误空格,需要在纯文本编辑器中核对。不要通过随意增加空格来试错,应先画清父子层级再修改。
键值、列表和注释如何阅读
键值对将一个字段与其值关联;列表通常由短横线开始,并从属于上层字段。注释有助于解释用途,但不会代替真实配置。包含特殊字符的字符串需要按照语法规则使用引号,复制规则时也要核对逗号与名称,而不只是观察缩进。
重复的同名键可能导致解析器报错或出现非预期处理,因此不要靠新增一整段同名字段来覆盖原设置。应先确认原字段的位置,再在正确层级修改。处理策略名称和文件路径时,保持引用一致,尤其注意大小写、引号和多余空格。
阅读一份最小教学示例
下面示例只在本机提供监听入口,规则全部直连,不启用 DNS 接管,也不包含代理服务。它用于学习顶层字段与规则列表的结构,不是可直接套用到任意设备的完整优化配置。合并到其他文件前,应先核对是否存在同名字段及端口冲突。
# 教学示例:仅本机监听、全部直连
mixed-port: 7890
allow-lan: false
mode: rule
log-level: info
rules:
- DOMAIN-SUFFIX,example.com,DIRECT
- MATCH,DIRECT分三步验证一次修改
第一步验证语法与编码,确认缩进、符号和字段层级可读。第二步按内核或前端文档执行配置检查,确认选项和引用有效。第三步启动后发起一个具体请求,观察实际日志。通用在线检查网站可能保留输入内容,含凭据的文件应优先在本地处理。
出现问题时,将最近一次修改恢复到副本,再分小段定位。不要同时升级内核、替换前端和重写全部规则,否则难以确定原因。理解规则优先级后,可以进一步检查条件顺序;解析异常则转到DNS 知识,避免用格式调整代替网络诊断。
阅读后的检查清单
- 同级字段对齐,缩进仅使用空格。
- 没有重复键、全角标点和错误引用。
- 已分别验证语法、内核选项与实际连接。
具体选项以所用版本和对应项目文档为准。本文提供一般排查路径,不代表对特定网络的测试结果。
