我的 adg 部署在家里的 NAS 上,只有公网 IPv6 ,通过 DDNS 日常使用没有问题。
在家里,手机电脑等设备,都与 adg 在同一局域网下,但由于设备都是优先使用 IPv6 ,访问内网服务时,比如访问 NAS 后台( nas.abc.cc ),还会去 adg 的上游 DNS 查询一下 v6 地址,而不是直接使用内网 IP ( 10.0.0.10 ),而每次查询都有 100ms 左右的耗时,即使在内网也能明显感觉使用 adg 做 DNS 时,访问网页会变慢。
用 adg 本意是为了屏蔽广告,尝试了各种方法,自定义过滤规则,重写 DNS 等,都只能顾一头,比如
||*.abc.cc^$client=myphone,dnstype=A,dnsrewrite=10.0.0.10
这样写规则,内网使用没问题,但在外网访问时,会同时查询到公网 v6 和内网 v4 地址,但由于 v4 几乎无延迟就查询到了,返回给下游的是内网 v4 ,在外网就访问不了。
帅气的 v 站老哥们,有没有解决方案啊,在内网使用时仅返回内网 v4 ,外网仅返回公网 v6 。 (在使用同一个私人 DNS 地址的情况下,不用每次回家或出门时修改私人 DNS 服务器)
![]() | 1 itiao 62 天前 试试看开启 禁用 IPV6 解析? |
![]() | 2 Puteulanus 62 天前 ![]() |
3 pdone OP @itiao 禁用 v6 解析 在局域网以外就访问不了了 @Puteulanus 客户端是用安卓系统自带的私人 dns 设置,使用的是 doh ,如果每次出门都修改这个 doh 地址,可以实现分别解析 v6 和 v4 ,不过这样要经常修改 |
![]() | 4 Puteulanus &nbp; 62 天前 @pdone 我是说 adguard home 的 客户端 设置,能不能比如把家里的 v6 段划成一个客户端,然后用 client 修饰符让规则只应用于家里过来的请求,这样就把内网和外网的 DNS 请求给分开了 ![]() |
5 pdone OP @Puteulanus #4 这个思路可以,我尝试一下,感谢 |
![]() | 6 jesky 62 天前 看起来你在意的是“每次查询都有 100ms 左右的耗时”,那你就把你的域名 *.abc.cc 指定为公网 IPv6 就可以了,然后需要一个脚本定时更新这个记录,就如同 DDNS 服务定时把 IP 更新到 DNS 服务器,你这个就等于是定时更新到本地 DNS 服务里。 |
7 pingdog 62 天前 via Android 内网 v6Only ,做 dns64 |
8 pdone OP @Puteulanus 再次感谢老哥,按你的思路也已经解决目前的困扰了 @jesky 是的,这是接下来要优化的地方,既然 ddns 能更新记录,我也要更新 adg 的记录,就不用每次去上游查询了 @fuzzsh 我研究一下 |
9 pingdog 62 天前 via Android 手机 PC 网用 v6 Only 没问题,有嵌入式设备就要另外开 wifi, 大多数不支持 ipv6 |
10 mac100 62 天前 @Puteulanus 完全看不明白什么意思。。 |