配置改了几行,内核却无法启动,日志把位置指向文件中间。此时先保存原文件与报错,不要马上用在线格式化器重写整份配置。YAML 的错误位置有时是解析器终于无法继续的位置,真正的问题可能在前一行。
先定位最近的修改范围
对照修改前能运行的文件,查看新增段落的缩进、冒号和列表短横线。尤其检查是否把 Tab 混进空格,中文输入法是否打出了全角冒号,以及某个字段是否被误放到了上一层内部。
例如 rules 下的每个规则都是列表项。把短横线删掉,或把 rules 放进 dns 内部,会改变结构。格式看上去整齐,并不意味着语义正确;一些字段必须出现在指定层级。
错误行附近还要看什么
带特殊符号的字符串可以根据 YAML 语法适当使用引号,但不要把所有内容随意包起来掩盖问题。检查未闭合的引号与方括号,确认复制过来的代码围栏没有一起粘进配置文件。
如果报错提到某个字段不支持,再检查实际内核版本。把新文档字段写进旧内核,不属于缩进问题,重排空格也解决不了。客户端生成的最终配置与编辑器里那份文件还可能不同,应先确认检查的是哪一个。
检查通过以后继续验证连接
独立内核可使用 -t 检查配置,图形客户端则优先使用自己的检查或日志入口。通过检查不代表节点可用,也不保证远程规则下载成功。下一步仍是观察一条真实请求的规则与出口。
排错时一次只恢复或调整一段。若整份文件已被大范围改写,退回备份再逐项重做,通常比继续修补更快。最终保留一份可读的差异记录,方便下次订阅更新后判断自己的修改是否还在。