DNS over HTTPS(DoH)与DNS over TLS(DoT)完全解析

从DNS查询这一步开始,就可以隐藏你正打算访问哪个网站。

为什么传统DNS查询可能会被看到

普通的DNS查询以未加密的明文形式(通常经UDP 53端口)传输,因此中间环节能够看到你在查询哪个网站的地址。访问网站时,浏览器首先会向DNS服务器发起查询,把域名转换成IP地址。传统DNS在传输这个查询和响应时不做任何加密,导致同一网络中的其他设备或ISP能够轻易窥探到你在查询哪些域名,严重时甚至理论上有可能被中间人篡改、伪造成指向另一个IP地址的响应。

什么是DoH(DNS over HTTPS)

DoH把DNS查询包裹在HTTPS中加密传输,使用的正是网页访问同样使用的443端口,因此表面上很难与普通HTTPS流量区分开。Chrome、Firefox、Edge等主流浏览器都在自身设置中支持DoH,Cloudflare(1.1.1.1)、Google(8.8.8.8)等公共DNS服务商也都提供DoH端点。

什么是DoT(DNS over TLS)

DoT同样使用TLS加密DNS查询,但不与普通HTTPS共用443端口,而是使用专门指定的853端口。这使得网络管理员相对更容易单独识别DoT流量并对其应用策略。安卓系统的"专用DNS"设置就是典型的DoT支持案例。

DoH和DoT的关键区别

两者都对DNS查询内容进行加密,目的同样是防止被窃听和篡改。区别在于传输方式:DoH混杂在普通网页流量中,网络管理员很难单独过滤或屏蔽DNS流量;而DoT使用独立端口,更便于企业或学校网络按策略允许或屏蔽。因此企业IT部门往往更倾向于DoT,而重视个人隐私的用户则更偏好DoH。

加密DNS的优点与局限

DoH、DoT能有效阻止第三方(比如ISP或公共Wi-Fi管理者)看到"你查询了哪个域名",但并不能完全隐藏之后实际连接该服务器时交换的IP地址或SNI(服务器名称指示)信息。此外,如果学校、公司或路由器本身设有屏蔽特定网站的策略,使用DoH的设备有可能绕过这种屏蔽,这对网络管理员来说反而可能成为一个麻烦。

如何设置

Chrome可以在"设置>隐私设置和安全性>安全"菜单中打开"使用安全DNS",并选择Cloudflare、Google等提供商。Firefox可以在网络设置中启用"DNS over HTTPS"。安卓系统则可以在"设置>网络>专用DNS"菜单中输入支持DoT的服务器主机名(例如dns.google),为整台设备的DNS查询启用加密。

想直接更换DNS服务器

如果只是想在不加密的情况下更换公共DNS服务器,这是一个更简单的独立设置,值得单独了解。

想了解DNS记录类型

如果对A、CNAME、MX这些DNS记录类型本身感兴趣,也可以一并了解一下。

常见问题

开启DoH会拖慢网速吗?

虽然会增加加解密的过程,但以现代设备的处理速度,几乎感觉不到明显延迟。不过如果所用的DoH服务器物理距离较远,首次连接时可能会出现一点延迟。

在公司或学校网络里使用DoH会有问题吗?

如果公司或学校通过DNS屏蔽的方式限制访问某些网站,使用DoH的设备有可能绕过这种限制。因此一些机构会在自己的网络中专门制定策略来屏蔽或限制DoH流量。