Openwrt系列 AdGuard Home设置教程:防DNS污染与去广告的正确方法

浏览:5511次阅读
没有评论

前言

这篇教程来详细讲解如何正确设置 Ad Guard Home

来更有效的防止 DNS 污染以及去广告

与其它 Ad Guard Home 教程的只讲方法、不讲逻辑的胡乱设置不同

认真看完这篇教程你会收获大量的知识和启发。

设置

常规设置

文字介绍已经很好理解了,按需设置即可

重点是以下几个

如果你尚处于单身状态,那么就不要开启,否则会影响生理卫生知识的学习

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

Openwrt 系列 AdGuard Home 设置教程:防 DNS 污染与去广告的正确方法

DNS 设置

Openwrt 系列 AdGuard Home 设置教程:防 DNS 污染与去广告的正确方法

上游 DNS 服务器

AdGuard 文档 (opens new window) 中给出了一些知名的 DNS 服务器供选择。

根据所在网络环境的不同推荐以下两组支持 ECS 功能的 DNS 服务器

如果有科学魔法爱国上网需求,你应该部署两个 AdGuard Home,通过 DNS 分流才能达到较为理想的防污染和去广告效果。

  • 中国大陆网络环境推荐选择 腾讯 (DNSPod) (opens new window) 阿里云 (opens new window)的公共 DNS,使用它们你会惊奇的发现偶尔某些不存在的网站都是能正常解析的,只不过解析的结果并不是离你的代理服务器最近的 IP,所以效果并不理想,而且非常不稳定。

中国大陆不推荐使用任何海外的 DNS,因为延迟很高且都受到了不同程度的干扰,可用性不高,强行设置只会得到减速效果或者报错。

tls://dns.pub
https://dns.pub/dns-query
tls://dns.alidns.com
https://dns.alidns.com/dns-query
  • 国际网络环境,比如海外的 VPS 或者给科学魔法爱国上网软件做 DNS,则推荐使用 Google (opens new window)Quad9 (opens new window) 的公共 DNS。给科学魔法爱国上网软件使用的前提是它们必须在魔法名单中。
tls://dns.google
https://dns.google/dns-query
tls://dns11.quad9.net
https://dns11.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 地址。

Openwrt 系列 AdGuard Home 设置教程:防 DNS 污染与去广告的正确方法

同样的这里根据网络环境的不同推荐两组:

  • 中国大陆
119.29.29.29
119.28.28.28
223.5.5.5
223.6.6.6
  • 国际
8.8.8.8
8.8.4.4
9.9.9.11
149.112.112.11

设置完点击测试上游服务器,没有问题点保存即可。

这里也可以留空,使用后面将要提到的 DNS 重写功能把 DoT/DoH DNS 服务器的域名直接指向它的 IP 是一种更优雅的使用方式。

DNS 服务设定

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

Openwrt 系列 AdGuard Home 设置教程:防 DNS 污染与去广告的正确方法

DNS 缓存配置

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

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

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

加密设置

设置管理页面使用 HTTPS 加密以及 AdGuard Home 自身的 DoH/DoT 功能,如果不对外开放服务,只是在本地局域网使用是用不到的

对外开放 DNS 服务在中国大陆可能会有“法律”风险,而部署在国外网络速度缓慢,所以对于普通用户而言加密设置就成了摆设。

Openwrt 系列 AdGuard Home 设置教程:防 DNS 污染与去广告的正确方法

客户端设置

在这里可以单独设置每个设备单独使用的上游 DNS 及过滤规则,需要将设备 DNS 设置为 AdGuard Home 服务器的在 IP,或者使用下面将要提到的 DHCP 设置。每个人的需求不一样,所以这个部分就不详细说明了。

Openwrt 系列 AdGuard Home 设置教程:防 DNS 污染与去广告的正确方法

DHCP 设置

使用 AdGuard Home 作为 DHCP 服务器去代替路由器上的 DHCP 服务器,这个功能的主要作用是自动分配 AdGuard Home 的 DNS 给到设备,然后配合 客户端设置 去做精细化 DNS 和过滤规则设置。除非是你的路由设备的 DHCP 功能缺斤少两,否则一般是用不到的。目前这个功能处于实验阶段,稳定性还有待考证。有兴趣的小伙伴可以自己去深入研究,这里不做过多赘述。

Openwrt 系列 AdGuard Home 设置教程:防 DNS 污染与去广告的正确方法

过滤器

DNS 封锁清单

这里是人民群众喜闻乐见的去广告环节。

Openwrt 系列 AdGuard Home 设置教程:防 DNS 污染与去广告的正确方法

使用官方默认的 AdGuard DNS filter 规则的效果对于中国大陆的网络而言属于聊胜于无,所以需要添加一些其它的规则

然而规则并不是越多越好,多了会影解析速度,真正需要的是高质量。博主个人比较推荐 anti-ADhalflife 这两个规则。

规则列表

名称简介地址
AdGuard DNS Filter官方维护的广告规则,涵盖多种过滤规则https://adguardteam.github.io/AdGuardSDNSFilter/Filters/filter.txt
AdAwayAdAway 官方的去广告 Host 规则https://adaway.org/hosts.txt
ADgk适用于 AdGuard for Android 的去广告规则,去视频 APP 广告、开屏广告https://banbendalao.coding.net/p/adgk/d/ADgk/git/raw/master/ADgk.txt
anti-AD命中率高、兼容性强https://anti-ad.net/easylist.txt
halflife涵盖了 EasyList China、EasyList Lite、CJX 's Annoyance、乘风视频过滤规则,以及补充的其它规则https://cdn.jsdelivr.net/gh/o0HalfLife0o/list@master/ad.txt
EasyListAdblock Plus 官方维护的广告规则https://easylist-downloads.adblockplus.org/easylist.txt
EasyList China面向中文用户的 EasyList 去广告规则https://easylist-downloads.adblockplus.org/easylistchina.txt
EasyPrivacy反隐私跟踪、挖矿规则https://easylist-downloads.adblockplus.org/easyprivacy.txt
Xinggsf 乘风通用国内网站广告过滤规则https://gitee.com/xinggsf/Adblock-Rule/raw/master/rule.txt
Xinggsf 乘风视频视频网站广告过滤规则https://gitee.com/xinggsf/Adblock-Rule/raw/master/mv.txt
MalwareDomainList恶意软件过滤规则https://www.malwaredomainlist.com/hostslist/hosts.txt
Adblock Warning Removal List去除禁止广告拦截提示规则https://easylist-downloads.adblockplus.org/antiadblockfilters.txt
Fanboy's Annoyances List去除页面弹窗广告规则https://easylist-downloads.adblockplus.org/fanboy-annoyance.txt

DNS 白名单

在这里你可以设置排除封锁清单中的被屏蔽的域名

比如做淘宝客、广告联盟之类的人群可能会用得到,毕竟封锁清单基本涵盖了他们的业务范围。

Openwrt 系列 AdGuard Home 设置教程:防 DNS 污染与去广告的正确方法

DNS 重写

在这里你可以方便的把一个域名指向一个 IP,简单来说这个功能相当于 hosts。

最典型的一个使用场景是把 DoH/DoT DNS 服务器的域名直接指向它们的 IP,这样就不再需要进行我查我自己这样浪费时间的迷惑操作了,可进一步加快解析的速度。一般来说 DoT/DoH DNS 服务器的 IP 是固定的,而且 IP 地址和它们自家的传统 DNS 服务器的 IP 是一致的。

Openwrt 系列 AdGuard Home 设置教程:防 DNS 污染与去广告的正确方法

已阻止服务

在这里你可以一键禁止访问一些热门网站和服务,比如 Facebook、Twitter。

Openwrt 系列 AdGuard Home 设置教程:防 DNS 污染与去广告的正确方法

自定义过滤规则

在这里你可以自定义符合 adblock 语法或 Hosts 语法的规则,以及检查过滤域名是否被过滤。具体如何使用可以参考页面上的示例和官方文档。

Openwrt 系列 AdGuard Home 设置教程:防 DNS 污染与去广告的正确方法

正文完
 0
包子
版权声明:本站原创文章,由 包子 于2023-06-05发表,共计4353字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
评论(没有评论)