前言

AdGuard 应该有不少小伙伴都使用过,人尽皆知它是用来去广告的插件,有浏览器插件版、桌面电脑版、和手机 App 版。但当AdGuard Home几个字第一次摆在面前时可能有很多小伙伴第一反应可能依然是去广告,毕竟翻译成中文是广告卫士·家庭版,字面上大致可以理解为在家里用的去广告软件。然而事实真的是这样吗?它到底是什么?为什么去广告没有效果?

AdGuard Home 是什么?

官方简介表示:

AdGuard Home 是一款全网广告拦截与反跟踪软件。

然而博主发现了 FAQ 中的一句话:

未来,AdGuard Home 将不止是一个 DNS 服务器。

这飘忽不定的文字表述,仿佛是害怕被天朝的广告法处罚一样。不过这不难理解,毕竟没有多少人真正了解 DNS 是什么,也不会有多少人对 DNS 感兴趣(似乎有人在背后议论着一个叫 Mike 还是 Bill 的家伙),但对于广告大家是真的厌恶。

言归正传。准确来说首先它是一个开源的 DNS 服务器,部署方便、UI 友好易用,有着防污染、防跟踪、防篡改的能力,其次才是它的去广告、反跟踪功能,是通过重定向 DNS 解析记录实现的。如果只是单纯的去广告,那么这个文章也就没有什么意义了,因为去广告插件比比皆是,比它实用的太多了。

此外还需要说明的一点是广告卫士·家庭版这个名称纯属博主的恶搞翻译,官方并没有给出其中文名称。

AdGuard Home 怎样做到 DNS 防污染?

如果觉得防污染只是把 ISP 下发的 DNS 改成 114 之类的公共 DNS,那么也太 too young too simple 了。现在当你使用传统的 DNS 时某些邪恶势力会在中间作梗,拦截请求并给一个错误的解析结果,从而污染本地 DNS 缓存。这并不是简单的改个 IP 就能解决的。

现阶段想要防止 DNS 被污染,就不得不说说 DNS over TLS 和 DNS over HTTPS 这两个已经诞生很久的却未被大众所熟知的技术:

  • DNS over TLS(缩写:DoT) TLS 使用安全协议,这与 HTTPS 网站用来加密和认证通信的协议相同。(TLS 也称为 SSL。)DoT 在用于 DNS 查询的用户数据报协议(UDP)的基础上添加了 TLS 加密。此外,它确保 DNS 请求和响应不会被中间人攻击篡改或伪造。
  • DNS over HTTPS(缩写:DoH)是一个进行安全化的域名解析方案。其意义在于以加密的 HTTPS 协议进行 DNS 解析请求,避免原始 DNS 协议中用户的 DNS 解析请求被窃听或者修改的问题(例如中间人攻击)来达到保护用户隐私的目的。

看完这两个技术的简介,小伙伴们一定会有疑问:HTTPS 不也是将 TLS 用于加密的?DNS over TLS 和 DNS over HTTPS 到底有什么区别呢?

DoT 和 DoH 之间最重要的区别是它们使用的端口。DoT 使用 853 这个专用端口,即使请求和响应本身都经过 TLS 加密也可以被探测到使用的是 DoT 流量,而 DoH 则使用的是所有其他 HTTPS 流量使用的 443 端口,DNS 查询和响应就会伪装在了 HTTPS 流量中,基本不会探测到是正常访问网络还是 DNS 查询。

除此之外还有个 DNS over QUIC (缩写:DoQ),具有比 DoT/DoH 更低的连接延迟和更好的丢包恢复性能。只不过目前技术尚未成熟,所以暂且就不讨论它了。

AdGuard Home 是支持以上提及的几项技术的,所以就利用它可以搭建一个理论上纯净、无污染的 DNS 服务器。

AdGuard Home 去广告效果怎样?

既然有去广告功能,自然还是要讨论它的去广告效果的。不过在这里博主要给小伙伴们直接泼一盆冷水了,广告的种类和形态是多样的,不要指望一个 DNS 能把所有的广告消灭干净了。

对于 PC 端的网页广告效果最好的有且仅有浏览器插件,如果配合 AdGuard Home 在广告到达浏览器之前进行阻挡一些会给设备节省不少的计算开销,理论上来说会起到一定的省电效果,但估计也没人会在意。如果只是单纯的使用 AdGuard Home 并没有什么效果,少量的被拦截的广告会在页面上留下一个空白区域。

对于手机上的广告最直观的感受是手机收到的推送广告明显减少了,然后是部分 App 的开屏广告消失了,还是能起到一定作用的。对于 ADUI 这样的广告级魔改安卓系统效果尤其明显。

当然我们不要忘了它还是反跟踪软件,像智能电视、智能盒子、智能音箱、智能冰箱、智能马桶(编不下去了)之类的设备虽然他们并不是都有广告,但都是有跟踪程序的。咱们就反跟踪嘛,防止互联网巨头们知道我们什么时候看电视、什么时候听歌、什么时候吃饭、什么时候拉屎。使用下来如果你细心就会发现 TB 和 PDD 再也不会在你拉屎的时候给你推荐卫生纸了。

AdGuard Home 的使用场景

AdGuard Home 中的“Home”已经阐明了其产品定位,自然是在家庭网路环境使用,搭建属于自己家的 DNS 服务器。当然从功能角度上看是远不止在家庭网络中使用的,也没人会阻止你在其它的地方使用:

  • 比如你作为一个公司的 IT 管理(破修电脑的网管),可以在公司网络环境下部署,屏蔽一些网站,防止其他人摸鱼,然后可以向老板邀功,只不过似乎显得不够专业,而且会引起公愤。
  • 比如你作为一个运维,在公司的服务器上部署,就 等 着 被 炒 鱿 鱼 吧 !(大雾

以上纯属玩笑,言归正传,简单分析一下:

  • 家庭网络也就是局域网是没得说的,咱家自然是咱自己做主,DNS 防污染和去广告都是刚需。
  • 公司网络虽然也是局域网,但毕竟不是你家。网络架构只是其中是一个因素,更多的还是在于人。比如像某些大公司,怎么也得去请示一下 leader 吧?怎么也得开个会讨论一下吧?开会讨论是否部署去广告?你是觉得你的福报不够多还是想怎样?当然如果你拥有自己的公司,那么这个决定权还是在你自己。
  • 广域网部署,比如 VPS 可能并不是一个好的选择。在中国大陆如果对外开放 DNS 服务可能会有政策风险,而部署在国外 VPS 网络不稳定、速度慢,不可能比得直接用公共 DNS 的解析速度,不但广告没去掉还把网速给拖慢了。

所以说 AdGuard 这个“Home”的定位是相当精准的。如果小伙伴们家中有软路由、NAS 、树莓派或者其它长期开机的 Linux 设备并且自身拥有扎实的网络基础知识,不妨试试。

AdGuard Home 系列


本博客已开设 Telegram 频道,欢迎小伙伴们订阅关注。

参考资料

基于 HTTPS 的 DNS 和基于 TLS 的 DNS | 安全 DNS