用简单的话说,什么是 DNS?
人们输入的是 example.com 这样的名称,而计算机用数字来连接,这些数字叫做 IP 地址。DNS(域名系统)就是在两者之间进行转换的服务,好比一本把姓名变成电话号码的电话簿。
您看不到这一步,但它发生在几乎所有操作之前:打开网页、聊天应用、视频。它们都会先向 DNS 服务器询问“这个名称的地址是什么?”,然后才建立连接。
一次 DNS 查询是如何进行的?
简单来说:
- 您打开一个网站,或者某个应用请求一台服务器,例如
example.com。 - 手机向它的 DNS 服务器询问该名称的地址。这台服务器叫做解析器。
- 如果解析器不知道答案,就会向互联网上的其他 DNS 服务器询问,直到找到权威的那一个,然后把结果记住一段时间。
- 解析器回复一个地址,手机就连接到它。
手机使用的解析器并不固定。默认情况下,它是您的网络分配给您的那一个,通常是网络服务商或路由器的。您可以让手机改用另一个。
为什么 DNS 过滤可以拦截广告、跟踪器和网站?
过滤发生在第 2 步。带过滤功能的解析器保存着名称列表,例如广告服务器、跟踪器、钓鱼网站或成人网站。当手机询问列表中的某个名称时,解析器不会返回真实的地址,而是返回一个“已拦截”的答复,连接也就无法建立。
EZOBLOCKER 就是这样工作的,区别只在于它运行的位置。它通过本地隧道捕获手机的 DNS 查询,加密后发送到自己的服务器,并在那里、在广告或页面加载之前,拦截您开启的类别。发送到服务器的只有这些查询:您的网页、消息和视频不会经过它们。关于加密的更多内容,请见什么是 DNS over HTTPS。
由于判断是针对每个名称做出的,过滤很容易应用到整部手机:同一份列表既涵盖浏览器,也涵盖使用这些名称的应用。
DNS 过滤做不到什么?
DNS 过滤针对的是名称,而不是内容。这带来一些您应该了解的局限:
- 同名内容。 如果某个广告与它周围的视频或帖子来自同一个名称,拦截这个名称也会让内容无法使用。YouTube 视频广告、社交应用中的推广帖子和部分游戏内广告都属于这一类。
- 被允许网站内部的页面。 DNS 看不到您在网站上打开的是哪个页面或文件,只能看到网站的名称。
- 不在列表中的名称。 新出现的或未收录的网站,在被添加之前不会被拦截。
- 设置为其他解析器的手机。 如果 Android 的私人 DNS 填写了主机名,或者某个应用使用自己的 DNS,这些查询就会绕过过滤。请参阅如何在 Android 上设置私人 DNS。
完整列表见 DNS 无法拦截的内容。了解这些局限,有助于保持合理的预期。
DNS 服务器和 DNS 切换工具有什么区别?
DNS 服务器(解析器)是回答查询的服务。DNS 切换工具则是让手机使用不同于默认解析器的工具。从这个意义上说,EZOBLOCKER 就是一款 DNS 切换工具,并且在它自己的服务器上增加了分类过滤。您也可以在其中选择公共服务商,详见家庭 DNS 服务器参考。DNS 切换页面展示了它们是如何配合的。
我怎么知道手机使用的是哪个 DNS?
在电脑上,nslookup 等工具可以显示正在使用的解析器。在手机上,最简单的检查方式是看功能:打开 EZOBLOCKER 的保护状态检查。如果某个类别地址被拦截,而对照地址能正常加载,就说明您的查询正在经过过滤。
保护对隐私也有帮助,因为未加密的 DNS 可以被运营您所在网络的人读取。我们的拦截列表展示了各个类别以及它们的更新频率。