前言

这篇教程由来

很久没折腾了,最近在家冲浪发现很多网站解析和打开都很慢,甚至影响日常上网。

排查了节点问题,最终锁定dns污染。

接下来我将结合网上查阅信息,整理一下配置思路,顺便供自己以后查阅。

如何设置 Ad Guard Home,来更有效的防止 DNS 污染,本教程不启用去广告功能,我觉得也没啥用。

本教程通过爱快docker部署:部署网上教程多,如果是爱快参考这个爱快软路由轻松开启docker,部署广告过滤adguardhome_软件应用_什么值得买 (smzdm.com)

注意

此Adguard 仅用于国外域名解析,填入插件使用。 国内使用运营商的最快无需折腾了。

设置

  • 使用 AdGuard【家长控制】服务:如果家中有尚未成年的孩子,建议开启,屏蔽成人内容。
  • 强制安全搜索:在 Bing、Google、Yandex、YouTube 等网站上强制使用安全搜索,屏蔽 NSFW 内容。

pi1DUfJ.png

DNS设置

pi1Ds0K.png

国际网络环境,比如海外的 VPS 或者给科学魔法爱国上网软件做 DNS ,则推荐使用 Google (opens new window)和 Quad9 (opens new window)的公共 DNS。给科学魔法爱国上网软件使用的前提是它们必须在魔法名单中。

tls://dns11.quad9.net
https://dns.cloudflare.com/dns-query
https://dns.quad9.net/dns-query

上游 DNS 服务器输入框下面有几个单选项,字面理解应该是解析策略、模式之类的选项,官方暂时没有给出详细介绍,所以博主根据字面含义和自身实际体验总结如下:

  • 负载均衡:使用加权随机算法来选择最快的服务器。用到了算法,这就很玄学了。实际其实就是随机选择一个上游 DNS 服务器中的一个进行解析请求,哪个延迟低就更偏向于用哪一个。
  • 并行请求:同时请求所有上游 DNS 服务器,取最快给出的响应结果,所以解析速度很快。在上游 DNS 服务器设置合理的情况下属于万金油方案,解析速度和访问速度都很快。所以也非常适合上游 DNS 服务器连接延迟大和不稳定的情况,就比如科学魔法爱国上网使用场景。
  • 最快的 IP 地址:同时请求所有上游 DNS 服务器,在所有响应结果中选出延迟最低且可用的 IP。因为要等待所有上游 DNS 服务器响应结果,而且还要测试 IP 延迟及可用性,所以解析速度会很慢。只适合上游 DNS 服务器延迟特别低且网络非常稳定的场景,否则实际使用中可能会遇到首次打开网页非常慢,甚至可能打不开,要多刷新几次。再者低延迟 IP 不一定速度就快,还要看实际负载情况,所以这个方案的实际可用性是最差的。

#Bootstrap DNS 服务器

Bootstrap DNS 服务器(引导 DNS 服务器)的作用只是解析上游 DoT/DoH 技术 DNS 服务器的域名,所以这里需要填写使用 UDP 协议的传统 DNS 服务器 IP 地址

8.8.8.8
8.8.4.4
9.9.9.11
149.112.112.11

DNS 服务设定

  • 速度限制:0
  • 使用 EDNS :前面提及的上游 DNS 服务器都是支持 EDNS (ECS) 的,它有助于获取到更合适的 CDN 节点,建议勾选。
  • 使用 DNSSEC : 用于效验 DNS 记录的签名,防止 DNS 缓存被投毒,建议勾选。勾选后会在日志页面请求列显示小绿锁图标。
  • 禁用 IPv6 :丢弃 IPv6 的 DNS 查询。在本地网络和网站都支持 IPv6 会优先使用 IPv6 去访问网站,但目前 IPv6 的建设还处于初级阶段,大多数地区的 IPv6 网络体验都一般。还有一些代理软件对 IPv6 支持不佳,开启后可能会影响国际互联网的访问。如果对此没有特殊需求,那么直勾选即可,这样既不影响 BT 软件连接 IPv6 网络,又可以优先使用 IPv4 来上网。如果只有 IPv4 ,那么是否勾选没有区别。

#DNS 缓存配置

先简单科普一下 TTL ,它是英语 Time To Live 的简称,中文翻译为 “存活时间”。放在 DNS 解析中意为一条域名解析记录在 DNS 服务器中的存留时间,单位是秒。

正常情况下 TTL 默认 0 即可,即从上游 DNS 服务器获取 TTL 值。如果你所部署的网络环境到上游 DNS 服务器的延迟比较高,那么可以适当增加 TTL 值,让缓存更持久,短时间内请求同样域名的解析会直接从缓存中读取,实现秒解析。不过 TTL 值不宜过大,不然会导致记录不能及时更新,结果是网站无法正常打开。据博主观察目前多数域名的 TTL 值普遍在 300 以内,所以给出以下设置参考值:

  • 覆盖最小 TTL 值:600
  • 覆盖最大 TTL 值:3600

Openwrt配置

pi1rw4g.png

Op 远程服务器填写本地dns

最终效果

pi1rWUU.png

pi1rf5F.png

Last modification:November 13th, 2023 at 11:19 am
如果觉得我的文章对你有用,请随意赞赏