菜单
中文 (简体)

AdGuard DNS 支持结构化 DNS 错误,这是什么意思?

这次 AdGuard DNS v2.10 的发布,堪比 DNS-over-QUIC 实现的程度。AdGuard DNS 再次成为全球首个在成为正式标准前率先引入新功能的公共 DNS 解析器。这次的亮点是「结构化 DNS 错误」(英语:Structured DNS Errors,简称:SDE)。

您可以阅读以下详细解析。如果时间有限,欢迎查看简要说明:

  • 当网站在 DNS 级别被阻止时,用户将看到类似「无法访问此网站」或「没有互联网连接」的错误提示,却没有说明被阻止的原因是什么。
  • 为了解释这一点,DNS 服务器可以将用户重定向到带有解释的页面。但 HTTPS 网站(大多数网站都是 HTTPS),要求单独的证书。
  • 更简单的解决方案是:结构化 DNS 错误 (SDE)。通过新技术,DNS 响应中可以附带更多信息(如阻止原因、责任方和联系信息),以便浏览器读取并传达给用户,从而大大提升信息传达的透明度。
  • 要使该系统生效,浏览器必须支持 SDE。这正是我们所倡导的。

结构化 DNS 错误是什么:详细解析

DNS 级别过滤在全球被广泛使用,AdGuard DNS 就拥有超过 1 亿用户。人们使用 DNS 过滤来屏蔽广告、追踪器,或保护儿童。即使用户没有手动设置 DNS,他们仍然会遇到 DNS 过滤,这可能是由于所在国家或公司的政策所致。几乎所有互联网用户都曾遇到过因 DNS 被阻止的网站。

DNS 级别的阻止会限制整个域名的访问权限。当用户尝试访问 https://example.com 时,浏览器将发送 DNS 请求,DNS 服务器回复该域名已被阻止,浏览器显示「无法访问此网站」或「没有互联网连接」的通知。

无法访问网站的错误

若未手动阻止该域名,用户可能不明白无法打开页面的原因,疑惑是否需要重新加载页面或检查网络连接。

  • 出现错误?要重新载入页面?
  • 没用。互联网连接有问题?
  • 互联网没问题呢。网页被阻止?是的,为什么呢?
  • DNS 服务停止响应?报告错误。

缺乏 DNS 服务与用户之间的有效沟通就是一个问题。DNS 服务不仅希望而且可以解决该问题,比如将用户重定向到一个解释页面,让他们知道,发生了什么并提供相关联系信息。

那么为什么不这么做呢?

其中的难点在于以下原因:

  • 如果是 HTTP 网站(连接未加密)DNS 服务器可以安全地将用户重定向到一个非加密的页面。
  • 如果是 HTTPS 网站,浏览器会执行证书认证,并期望看到 https://example.com 的有效证书。如果 AdGuard DNS 将用户重定向到自己的页面,浏览器会显示证书验证错误。

证书错误

一种解决方案是在用户设备上安装特定证书,但这并非总是可行或安全的。更简便的方法是在 DNS 响应中发送更多信息。

为此,2020 扩展 DNS 错误标准被引入,使得 DNS 响应可以包含一个错误代码和 EXTRA-TEXT 字段,提供进一步的说明。而结构化 DNS 错误草案还提议在 EXTRA-TEXT 字段中加入 I-JSON(一种受限的 JSON 格式)文件,便于浏览器轻松读取并以用户友好的方式显示。

这些 I-JSON 文件可以包含:

  • 阻止原因
  • 供查询的联系信息(如果页面被误拦截)
  • 此次 DNS 过滤责任方(可选)
  • 其他可选信息

这极为便捷。这样的系统可以提升 DNS 服务与用户之间的透明度,保障用户的安全。如果用户理解网站被阻止的原因,他们就不会轻易放弃一个安全的 DNS 服务而转向一个未加密的服务。

实现「扩展 DNS 错误」和「结构化 DNS 错误」需要什么

浏览器必须支持这些新技术。毕竟,浏览器决定用户能看到什么信息,无论是简单的连接错误,还是对被阻止网站的详细解释及后续措施。

因此,我们呼吁浏览器厂商支持 RFC8914 及其提议的更新。此更改将帮助数十亿用户更透明、友好地使用互联网。

AdGuard DNS 中的实际效果

我们创建了一个 Demo 扩展。它显示,如果浏览器支持「结构化 DNS 错误」的话,AdGuard DNS 将如何工作。有了这个扩展,当用户尝试访问被 AdGuard DNS 阻止的网站时,它将读取通过 SDE 发送的信息,并显示一个简洁易懂的说明页面。相比上面的例子,这更容易理解,对吧?

解释页面

您可以从 Chrome Web StoreGitHub. 安装该扩展。

其他改进:为用户和企业提供更个性化的体验

我们的用户群体既包括为家庭设置 DNS 的个人用户,也包括大型组织。需求各异:有些人仅需手动设置 10 台设备即可,有些人则需连接 1000 台设备并倾向于自动化设置。为更好地了解用户需求,我们新增了引导问卷,以收集关于用户目标和预期设备数量的信息。

仪表盘

这将帮助我们为用户个性化 DNS 服务,例如为需要的用户提供更多自动化选项信息。

我们期待亲爱的用户们反馈

如往常一样,我们欢迎您在社交媒体GitHub 上分享反馈意见和建议。

喜欢这篇文章吗?