> 小鸡一号位于不远的异国他乡,运行 AdGuard Home,作用是从源头得到尽可能干净安全的 DNS
机器多的没处用吗?直接本地 DoT 、DoH 或者代理转发 DNS 请求到国外公共 DNS 不就行。都是转发 DNS 请求,你开台机器转发和本地直接转发没区别。你搞台机器在国外完全多此一举。
你可以直接用 Overture 把一号机的活儿干了。不过我更推荐 mosdns,没有 overture 那种只能引入 2 个配置文件的限制。另外他们 DoT 、DoH 实现上游不一样。历史上 overture 出现过 DoT 实现 bug,一个 DoT 到 8.8.8.8 花了我 1s…… 而 mosdns 还自己实现了连接复用。coredns 就更算了,连个好的 IP 过滤实现都没有,每次还得重新编译。
> 如果想更纯,国内也可以加密,但不知道实际意义有多大,我觉得有点太过于极端
这个通常不需要,国内走加密不是为了应对 DNS 污染,而是运营商 DNS 劫持。这个涉及运营商网间收费。比如,你移动宽带用户访问我联通宽带资源,联通就要收移动的钱。小运营商为了省钱会自己建立一些反代缓存,通过 53 口 NAT DNS 劫持把用户请求导过来。不过,这个要不要防劫持还有待商议,因为小运营商网络不是很好,很多网都是租来的,你不打到它的反代上速度肯定会变慢。
> 当然你可以在二号上套娃一个 AdH,但分流不太方便,没有 Overture 灵活
部署一个 AdGuadHome 做记录统计和去广告,上游指向同机器上 overture 而不是外网 DNS.
> 比如缓存设置多大、用 DoT 还是 DoH 、是否有更好的 AdH 替代品等等。
缓存单人 500 条就够用,我从来没打满过。家庭用我觉得 1000 条肯定够。
以前我用的是 dnsmasq/unbound+chinadns. dnsmasq 和 unbound 做转发功能没 mosdns 多,但设计的其他方面比 overture 、mosdns 这种业余的肯定要专业。dnsmasq 和 unbound 都可以查询一些统计信息,里边就包括缓存信息。
> 希望能抛砖引玉,看看还有没有优化空间(那么只有砸钱了)。
你 DNS 转发到小鸡一号,和直接 DoT 、DoH 到外网公共 DNS 没有什么区别。小鸡一号完全没必要。
扩展一下关于 EDNS Client Subnet,我自己是不开这个。因为不仅要去污染,还要走代理。代理是不使用你本地解析的 IP 的,甚至都不需要解析到没有污染的 IP,只要能正确分流即可。参考
https://blog.skk.moe/post/what-happend-to-dns-in-proxy/比如 Surge 就没实现 Clash 那种 DNS 分流加无污染。
所以严格来说,完全可以不做 DNS 无污染。电脑上我会部署 mosdns 。如果你部署在路由上,想要记录查询请求,前边套一个 adguardhome 即可。