为什么传统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查询启用加密。
标准化的过程
DoT于2016年以RFC 7858标准化,DoH于2018年以RFC 8484标准化。两者的目的相同,都是通过加密查询防止窃听和篡改。DoH作为后来者,借助现有的HTTPS机制,浏览器等应用不需要依赖设备本身的设置就可以独立启用。
选择解析服务与隐私
即使DNS查询已加密,接收查询的服务商仍然知道你查询了哪些域名。也就是说,窃听的第三方减少了,但信任的对象从运营商转到了公共DNS服务商等。建议查看各服务商的隐私政策,了解日志保存多久、用于什么目的,再选择自己放心的对象。
安卓"专用DNS"的工作方式
安卓9及以上系统提供的专用DNS是以DoT方式实现的。自动模式下,如果网络自带的DNS支持加密就会使用加密,不支持则回退到普通DNS。手动指定主机名的模式则更严格,如果无法连接到支持的服务器,域名解析会直接失败。
不能正常工作时的检查要点
公司或学校网络有时会阻断853端口或某些DoH服务器,导致无法连接。仅在内部使用的域名也可能因此无法解析,这时需要关闭DoH,回到单位的DNS。另外,更改设置后可能需要重启浏览器或清除缓存才能生效。
如何确认加密DNS已经生效
部分公共DNS服务商提供检测页面,可以显示你当前的DNS查询是否通过DoH或DoT完成。浏览器里启用安全DNS后,也可以在设置页面确认状态是否显示为已启用。如果检测结果与预期不符,常见原因有:设备上的其他软件(如VPN或安全软件)接管了DNS、网络强制使用自己的DNS,或者设置只对其中一个应用生效。
企业和学校网络的管理角度
对网络管理员来说,明文DNS便于做内容过滤、安全监控和排查故障。DoH让这些设备更难看到查询内容,因此一些单位会通过策略统一配置浏览器的DoH设置,或指定使用单位自己的DoH服务器,以便兼顾加密与管理。个人用户在工作设备上不要擅自更改,以免违反使用规定。
与带过滤功能的DNS搭配
部分公共DNS会拦截传播恶意软件或有害网站的域名解析。把加密与过滤结合使用,可以同时提高传输安全和对恶意网站的防护。但不同服务商的拦截标准不同,偶尔也会出现误拦截。