dns:
enable: true
prefer-h3: true
listen: :53053
ipv6: true
enhanced-mode: redir-host
proxy-server-nameserver:
- 国内 DNS
nameserver:
- 国内 DNS
nameserver-policy:
'geosite:private,microsoft@cn,category-games@cn,geolocation-cn':
- 运营商 DNS
'geosite:!cn':
- 国外 DNS
我猜楼主估计用了 fallback 什么的。
不用搞那么复杂啊。去看下 Mihimo 的文档 (
https://wiki.metacubex.one/config/dns/diagram/#_3 ),就会发现,命中了需要代理的规则的网址,是直接发送域名到代理服务器的,不是发送解析到的 IP 。解析 IP ,主要是为了后面判断是走直连还是代理,如果是走代理,就把域名(是的,还是发送域名而不是解析出来的 IP )发送给远端代理服务器。
网上好些做教程的估计都没看过官方文档,各种半桶水,我还见过说不用 fake-ip 肯定 DNS 泄露的,简直一派胡言。基本上我看到说有 DNSleak 的,都是因为不看文档只看各种半桶水教程并且 DNS 用了 fallback 。
按我上面这个简单的 DNS 设置,就能有很好的分流效果,那些 DNSleak 也不会检测出国内旗子。
如果要进阶一点,建议起 3 个 agh 的 docker ,分别做国内、运营商、国外 DNS ,而不是把 agh 放在 clash 之前。
本地缓存做好了,甚至都不需要追求 fake-ip ,还能避免很多奇奇怪怪的问题。