
先读懂映射与列表
YAML使用缩进表达层级,缩进应使用空格而不是Tab。key: value是字段映射,行首的短横线表示列表项。同一层级要对齐;某些值看起来像数字或布尔值,但字段可能要求字符串,应按文档确认类型。
包含冒号或特殊字符的名称,适当使用引号。代理组名称必须与规则引用逐字对应,大小写、空格和拼写都不能随意变化。修改前保留原文件,使用文本编辑器查看不可见字符,避免富文本软件引入全角符号。
一份只用于学习的最小结构
下面的配置仅在本机监听7890,所有流量都直连,没有远程节点。它用于理解字段关系,不提供代理服务;7890是示例端口,若被占用应选择其他可用端口,并同步修改应用设置。
mixed-port: 7890
allow-lan: false
bind-address: 127.0.0.1
mode: rule
log-level: info
proxies: []
proxy-groups:
- name: Local
type: select
proxies:
- DIRECT
rules:
- MATCH,Localmixed-port提供HTTP与SOCKS混合监听。allow-lan控制是否允许局域网访问,mode决定运行模式。proxies保存节点定义;proxy-groups组合可选策略;rules负责把请求交给策略。空节点列表不是语法错误,但不能凭空产生远程节点。
检查代理组与规则引用
select代理组让用户选择成员;其他组类型有各自的参数与行为。不要只修改组名而忘记规则引用。若配置使用proxy-providers,代理组还可能通过use引用远程集合,必须确认集合已经成功加载。
规则列表按顺序匹配,兜底规则通常放在最后。某个域名仍走直连时,先看连接记录实际命中哪条规则,再检查策略组当前选择。格式检查通过只证明配置可以加载,并不证明分流意图与实际行为一致。
DNS字段需要结合网络环境
dns是独立的配置区域,相关字段包括enable、listen、nameserver和enhanced-mode等。nameserver定义上游解析服务,listen是本机DNS监听,不是代理端口。fake-ip与redir-host有不同工作方式,不能仅凭一段流行示例选择。
先保留已工作的订阅DNS配置。确需修改时,核对上游可达性、域名解析与代理规则的关系,以及当前核心支持的字段。TUN中的DNS接管与DNS模块也有关联;只改其中一部分,可能使原本正常的解析路径失效。
把语法、引用与网络错误分开
- 解析报错:检查行号附近的缩进、引号、冒号及列表格式。
- 找不到策略或集合:检查名称引用和对应定义是否存在。
- 端口监听失败:检查占用、绑定地址和运行权限。
- 节点加载但连接失败:检查远端可用性、DNS与规则命中。
Linux可用Mihomo的-t参数进行配置检查,操作见核心安装教程。修改远程订阅文件前确认更新是否会覆盖它,个性化规则可优先使用客户端支持的覆盖机制。
向他人提供配置片段时,删去密码、UUID、订阅令牌和不必要的访问记录。保留错误所需的结构即可;如果全部字段同时变化,就很难判断哪一个导致故障。