目前楼主使用的是 AdGuard Home 搭建在 VPS 上,上游服务器均为支持 ECS 的境外 DNS,使用并行请求模式。目前可以做到无污染。但是存在几个问题:
-
使用 EDNS 请求时,AdGuard Home 使用的 subnet 是 VPS 的 IP,无法使用客户端(用户设备真实 IP )来请求 EDNS 从而加速访问。国内域名经常被解析到海外节点
-
如果在节点中加入境内支持 ECS 的 DNS 服务商(诸如 AliDNS,DNSPOD DNS ),并开启
最快 ip 模式,会导致结果出现被污染的 ip 。此时如果服务器在境外,由于最快 ip 模式是通过 ping 探测选出最快节点,是该 IP 到 VPS 的链路最快结果,也会影响解析准确度 -
出现 DNS 缓存时,ECS 就会失效 ( https://github.com/AdguardTeam/AdGuardHome/issues/1091 )
目前来看相对优雅的解决方案是:有一个产品可以将 Clash 的 DNS 和 AdGuard Home 结合起来
- 使用客户端的 ip 地址进行 EDNS 查询
- 支持 dns 分流,类似 Clash 的 GeoIP
- 缓存支持 ECS
