DoT 是把域名查询放进 TLS 加密通道里传输的做法,用固定的 853 端口。它和 DoH 的加密强度一样,区别在端口:853 一眼能认出是加密的域名查询,443 则混在普通网页流量里。
域名查询默认是明文的。链路上任何一环都能看到你在查哪个域名,也都能改掉返回的结果。第 89 期介绍过 DNS over HTTPS,它把查询塞进网页请求里加密传输;另一条路线叫 DNS over TLS,出现得更早,2016 年定下标准。
它的做法比较直接:客户端和解析服务器先建立一条 TLS 连接,再把原来明文的查询原样放进这条连接里传输。协议结构没变,外面套了一层加密。它走 853 端口,这个端口是专门留给它的。
两种方式加密强度一样,差别在可识别性。DoT 占着一个独立端口,网络管理者一看端口号就知道这是加密的域名查询,可以选择放行、记录或者拦截。DoH 用 443 端口,和普通网页访问混在一起,要区分就得动更复杂的手段。
这个差别决定了各自的地盘。企业、学校、运营商这类要管住自家网络的场景更认 DoT:加密照样有,策略也照样能执行,甚至可以在内部搭一台自己的加密解析服务器。对个人用户,浏览器里内置的通常是 DoH,因为它更难被识别和拦截。
两种方式都只保护客户端到解析服务器这一段。解析服务器自己看得见你查了什么,它是否如实回答,也不在这套加密的保证范围里。
在这两条路线之外,还有一种更新的做法:把域名查询放到基于无连接传输的 QUIC 协议上,兼顾加密和更低的连接开销。三条路线解决的是同一个问题,选哪条更多取决于这条网络归谁管。