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 配置可能被内核拒绝、回退为空只是推断,并要求按实际开关和配置继续核对。

作者原文

感谢补充。你提供的信息说明我上次的判断有误,这里更正一下:你的订阅没有 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 即可,建议在应用内编辑保存,出错时会直接提示并回滚。不需要专门复现。

还需要你确认:

  1. 打开设置页的「DNS 覆写」后,dns.nameserver 是否生效?
  2. 你最初看到“开关显示开启”的,是设置页这个开关,还是弹窗里的「启用 DNS」?
  3. 打开时如果出现了确认弹窗,也请告诉我,那说明订阅文件里还有受保护的字段。