wonfen:Clash Verge Rev 的 DNS 覆写状态字段与 respect-rules 配置要求
在 Clash Verge Rev #8431 的 DNS 问题讨论中,wonfen 说明,订阅含受保护 DNS 字段时,开启 DNS 覆写需要按订阅确认;相关字段变化后须重新确认,未确认时不合并 dns_config.yaml。enable_dns_settings 是旧字段,实际状态看 profile_dns_settings。mihomo 的 respect-rules: true 必须同时配置 proxy-server-nameserver,否则会拒绝配置,作者已在 1.19.32 验证。开关显示开启却没有确认弹窗的原因仍未定位;PR #8473 处理的是类似的开关同步问题,不一定解决该报告。配置被拒后回退默认配置、导致 DNS 段为空只是尚未复现的推断。
作者原文@wonfen你这里是两个独立的问题。
1. DNS 覆写不生效
你的订阅带有
nameserver-policy。这类订阅开启 DNS 覆写前需要确认:弹窗「是否开启 DNS 覆写?」里选「仍然开启」。确认按订阅分别记录,订阅里相关的 DNS 字段变化后要重新确认。未确认时不会合并dns_config.yaml,运行时继续用订阅的 DNS。这是有意设计,也和你贴的运行时配置一致。
verge.yaml里的enable_dns_settings是旧字段,不代表当前订阅是否已开启,实际状态看profile_dns_settings。不过,“开关显示开启,也没有弹窗”不符合设计,目前还没有定位到原因。我们查到并在 #8473 中修复了一个类似的问题:部分操作重新生成配置后,覆写已关闭,开关却没有更新。但切换订阅这条路径本来就会更新开关,所以这个修复不一定能解决你的情况。
2. Merge 加
respect-rules: true后dns段消失Merge 只会合并
dns,不会清空它。mihomo 要求respect-rules: true必须同时配置proxy-server-nameserver,否则会拒绝这份配置(已在 1.19.32 上验证)。请改成:dns: respect-rules: true proxy-server-nameserver: - 223.5.5.5配置被拒后,应用可能退回了默认配置,所以才看到
dns段为空。这一步只是推断,还没有复现。请提供以下信息,方便继续定位:
- 把 DNS 覆写开关关掉再打开,会不会出现上面的弹窗?
verge.yaml中profile_dns_settings下当前订阅的内容(当前订阅的 uid 见profiles.yaml的current)。两个文件都在~/Library/Application Support/io.github.clash-verge-rev.clash-verge-rev/。- 订阅里有没有
proxy-server-nameserver?dns段为空时,proxies和rules是否也一起没了?Merge 是在应用里编辑保存的,还是直接改的文件?