为什么传统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查询启用加密。