wonfen:Clash Verge Rev DNS 覆写开关与 Merge 配置判断的更正
在 Clash Verge Rev #8431 的后续更正中,wonfen 说明本例 nameserver-policy 来自 Merge,因此未出现订阅确认弹窗属正常;真正控制 dns_config.yaml 合并的是设置页「DNS 覆写」,弹窗中的「启用 DNS」只写入 dns.enable。还指出缺少 proxy-server-nameserver 时 respect-rules 配置可能被内核拒绝、回退为空只是推断,并要求按实际开关和配置继续核对。
作者原文@wonfen感谢补充。你提供的信息说明我上次的判断有误,这里更正一下:你的订阅没有
nameserver-policy(它来自你的 Merge),所以不会触发确认,没有弹窗是正常的。这次的问题不是确认保护造成的。1. DNS 覆写不生效
enabled: false就是当前订阅的 DNS 覆写处于关闭状态,所以dns_config.yaml没有被合并。你很可能操作的是另一个开关。这里有两个容易混淆的开关:
- 设置 → Clash 设置 →「DNS 覆写」:真正决定是否合并
dns_config.yaml。切换后立即生效,没有保存按钮。- 这一行的齿轮打开的弹窗里的「启用 DNS」:只是写入
dns_config.yaml的dns.enable,不控制覆写。覆写关闭时保存,也只提示「DNS 设置已保存」,配置不会生效。请打开前者,不需要重启核心,然后看「当前配置」里的
dns.nameserver是否变成 8.8.8.8 / 1.1.1.1。开启后,DNS 页面里已填写的字段优先于 Merge。如果页面里也填了
nameserver-policy,它会整体替换 Merge 里的那份;页面留空则保留 Merge 的。2.
dns段为空直接用 shell 改
Merge.yaml会绕过应用内保存时的校验。缺少proxy-server-nameserver的配置被内核拒绝后,应用很可能退回了基础配置,所以dns为空。这一步仍是推断。如果是这样,proxies和rules也会一起没有。按上次给的写法补上proxy-server-nameserver即可,建议在应用内编辑保存,出错时会直接提示并回滚。不需要专门复现。还需要你确认:
- 打开设置页的「DNS 覆写」后,
dns.nameserver是否生效?- 你最初看到“开关显示开启”的,是设置页这个开关,还是弹窗里的「启用 DNS」?
- 打开时如果出现了确认弹窗,也请告诉我,那说明订阅文件里还有受保护的字段。