AdGuard Home 调整
Upstream DNS
Upstream DNS 选择:
- 国外 Public DNS
- 支持 DoT / DoH / H3 / DoQ,不然流量可以被轻松篡改
- 支持 ECS(EDNS client subnet)
为啥需要支持 ECS 呢?如果你的 Upsteam DNS 不支持的话,那么你拿到的 IP 地址,就是 Upsteam DNS 服务器所在地的最近 IP 地址;当然,如果 Upsteam DNS 在国内倒还好,但是选择的是国外的 DNS,自然得考虑这种情况,不然你访问国内的站却跳到国际站,使用起来是有点奇怪的。那如果支持 ECS 会发生什么呢?DNS 服务器会向上传递客户端的子网信息,这样拿到的 DNS 地址,理论上就和你本地 ISP DNS 请求的差不多。实际上,至少国内站能解析到国内的 IP 地址,其他的就无所谓了,反正国内访问国内速度也不会差太多。
那么基于以上原则,可以选择如下 Public DNS Server
DNS | DoT | DoH | DoQ | H3 | 备注 |
---|---|---|---|---|---|
Google Public DNS | tls://dns.google | https://dns.google/dns-query | / | h3://dns.google/dns-query | Google 的表现一贯不错,ECS 支持相当 nice;ECS 取客户端 IP 地址 /24 用于提供 ECS 支持 |
OpenDNS | tls://dns.opendns.com | https://doh.opendns.com/dns-query | / | / | OpenDNS 的 ECS 支持相对一般,部分域名可能没有,直接就近解析;ECS 支持根据 IP 归属地取 OpenDNS 自己的子网映射表,返回用户 IP 归属地就近 CDN IP |
Quad9 DNS | tls://dns11.quad9.net | https://dns11.quad9.net/dns-query | / | / | 使用率不高,不做评价 |
AdGuard DNS | tls://dns.adguard-dns.com | https://dns.adguard-dns.com/dns-query | quic://dns.adguard-dns.com | h3://dns.adguard-dns.com/dns-query | 使用率不高,不做评价 |
Next DNS | tls://dns.nextdns.io | https://dns.nextdns.io/dns-query | quic://dns.nextdns.io | h3://dns.nextdns.io/dns-query | 个人感觉 ECS 支持比 OpenDNS 好,不过需要你去注册成为它的用户,才能打开 ECS 支持;ECS 支持根据 IP 归属地取 NextDNS 自己的的子网映射表,返回用户 IP 归属地就近 CDN IP |
其他的 Public DNS,没有观测到支持 ECS 这个功能,所以就暂不考虑了。你说 CloudFlare?人家承诺了隐私保护,自然不支持 ECS 功能了。
这样在 Adguard Home 上开启 ECS(EDNS client subnet) 支持即可。
Bootstrap DNS
随便写一个能跑的 DNS 即可,这个 DNS 只用于解析 UpSteam DNS 的地址。
Cache
由于选择了国外 Public DNS,需要开 Cache,Cache 大小 64 MiB,把最大 / 最小 TTL 值都设置为一天(86400)。开启 Cache 的目的就是加快 DNS 的响应速度,不然每次都从 UpSteam DNS 拉取解析结果,平均响应时间的数据会很难看。
DNS Rewrite
使用 DNS 来维护自己的自有域,可比改 HOST 文件优雅地多,当然把自己的一堆自有域名添加上去,反正是自己的 DNS Server。
规则调整
因为 Tencent NT QQ,新增了一个 tpstelemetry.tencent.com 的域名,如果顾名思义的话,就是一个遥感服务的域名。对我来说,不需要!很讨厌这个东西,所以直接屏蔽掉。
在 DNS Query Log 里面,还发现了大量 tt.cn 的相关子域名查询,然后发现这个域名就是个广告域名,索性全域加入 Block List,同样 beizi.biz 也加入。针对广告和遥测的列表如下了
||tt.cn^
||beizi.biz^
||tpstelemetry.tencent.com^
其他的,订阅的规则列表已经几乎涵盖了,不需要太折腾了。