什么是 DNS over HTTPS?
在手机连接某个网站之前,它会先向 DNS 服务器询问该网站的地址(见什么是 DNS)。DNS over HTTPS,简称 DoH,把这个问题放进一条普通的 HTTPS 连接中发送,这与保护网上银行页面的是同一种加密通道。它由 RFC 8484 定义:DNS 问题被承载在发往 https://example-resolver.test/dns-query 这类地址的 HTTPS 请求中。
得到的答案和以前一样,变化在于手机与 DNS 服务器之间的这段路径是加密的。
普通 DNS、DoT 和 DoH 有什么区别?
| 普通 DNS | DNS over TLS(DoT) | DNS over HTTPS(DoH) | |
|---|---|---|---|
| 是否加密 | 否 | 是 | 是 |
| 端口 | 53 | 853 | 443(与网页相同) |
| 在网络上的形态 | 可读的 DNS 数据包 | 专用端口上的 TLS 连接 | 看起来像普通 HTTPS |
| 在哪里会遇到 | 大多数网络的默认方式 | Android 私人 DNS | 浏览器、应用、EZOBLOCKER |
专用的 DoT 端口有时会在企业网络、酒店和一些移动网络中被封锁。DoH 使用与网页相同的端口,因此很少有人会封锁它,否则网页也会随之无法访问。
为什么加密 DNS 很重要?
普通 DNS 可以被路径上的任何人读取:Wi-Fi 的所有者、网络运营商,或者共用公共热点的人。手机所查询的名称列表,能透露很多关于您行为的信息。普通 DNS 的答案还可能在途中被篡改,例如把您引向错误的地址。
加密同时解决了这两点:问题在途中无法被读取,答案在传输过程中也受到防篡改保护。但它不会让 DNS 服务器本身变成“盲人”,所以服务器是谁、保存什么,仍然很重要。
EZOBLOCKER 如何使用 DoH?
EZOBLOCKER 会在您的手机上运行一条小型本地隧道。隧道捕获 DNS 查询,并通过 DoH 加密后转发到 EZOBLOCKER 自己的服务器。对于您可以访问的网站,服务器会正常应答;对于您开启的类别,例如广告、跟踪器、赌博或成人网站,服务器则会给出“已拦截”的答复。过滤发生在服务器上,在任何内容加载之前。
发送了什么,没有发送什么:
- 手机只会向服务器发送 DNS 查询。您的网页、消息和视频不会经过它们。
- 服务器不会保存您访问过哪些网站的记录。它们对您的了解仅限于一个匿名的设备 ID、您选择的类别、您自己列表中的地址和您的订阅状态。
- 如果无法连接服务器,网站名称可能会短暂地发送到 Cloudflare 或 Quad9 等知名的公共 DNS 服务,这样您的网络就不会中断。
这就是系统会显示 VPN 图标的原因:手机的 VPN 功能是应用捕获 DNS 查询的唯一方式。这并不是把您的流量路由到某台 VPN 服务器。详情请参阅隐私页面。
我可以在 EZOBLOCKER 中选择其他 DoH 服务商吗?
可以。在“高级”>“DNS服务提供方”中,您可以选择一个公共服务商,或输入您自己的 DoH 地址,该地址必须以 https:// 开头。在这种模式下,您的查询会发送到该服务商,EZOBLOCKER 的类别不再生效。服务商及其 DoH 地址的对照表见家庭 DNS 服务器指南。
这与 Android 的私人 DNS 有何不同?
Android 的私人 DNS 使用的是带主机名的 DoT。如果在那里填写了主机名,它会优先于 EZOBLOCKER 的过滤,所以在使用应用期间,应将它保持为“关闭”或“自动”。具体步骤见如何在 Android 上设置私人 DNS。