修改端口和模式
基础字段.yaml
基础字段 diff.yaml
mixed-port 和 mode 都是标量,普通键会直接覆盖原值.
修改 DNS
递归修改
DNS 子字段.yaml
DNS 子字段 diff.yaml
完整替换
DNS 完整替换.yaml
dns-force 会删除原 dns 对象中的其他字段,只保留上面的内容.
添加直连规则
添加直连规则.yaml
添加直连规则 diff.yaml
添加 Provider
添加规则 Provider.yaml
修改策略组
修改策略组.yaml
修改策略组 diff.yaml
YAML 锚点和 <<
覆写文件会先由 YAML 解析器展开锚点、别名和 << 合并键.
使用锚点.yaml
锚点覆盖结果 diff.yaml
reality-opts.short-id
YumeBox 会保护顶层 proxies 列表中 reality-opts.short-id 的字符串值.这样 0123 和 1e5 不会被 YAML 解析成数字.
Reality short-id.yaml
Reality short-id 预期.yaml
short-id 不会触发这个专用保护.
字面量键
尖括号会关闭修饰符解析,并在编译时去掉尖括号:字面量键.yaml
字面量键结果 diff.yaml
rules+ 会被解析成向 rules 追加;包裹后才会写入名为 rules+ 的字段.
多个覆写文件
覆写文件按照订阅中的绑定顺序执行,后一个文件可以修改前一个文件的结果.第一个覆写.yaml
第二个覆写.yaml
覆写链最终 diff.yaml
空文件
空文件或只包含空白字符的文件会被跳过,不会修改配置:空覆写.yaml
skip empty override file.
YAML 解析错误
缩进错误、非法映射或未闭合字符串会停止当前覆写链:错误的缩进.yaml
错误的根类型
YAML 顶层不是对象时,覆写引擎会把根配置替换成该值;随后编译器会拒绝它:错误的根类型.yaml
geosite-matcher 校验错误
覆写本身可以写入字符串,但最终校验只接受 mph 和 succinct:
错误的 Matcher.yaml
运行时边界
用户覆写完成后,YumeBox 仍会执行运行时补丁:
因此,覆写成功不代表所有字段都会成为最终运行值;运行模式相关设置可能在最后被应用补丁调整.
