DNS 加密协议对比:DoT、DoH、DoQ

名词速览

  • Plain DNS:明文 DNS,默认使用 UDP/53,必要时用 TCP/53(如响应被截断、区域传送等)。
  • DoT:DNS over TLS,使用 TLS 之上的 TCP,默认端口 853(RFC 7858/8310)。
  • DoH:DNS over HTTPS,基于 HTTPS(HTTP/2 或 HTTP/3),默认端口 443(RFC 8484)。
  • DoQ:DNS over QUIC,基于 QUIC + TLS 1.3,默认端口 UDP/853(RFC 9250,IANA 已分配在 853/udp)。

分层关系(简化 TCP/IP 模型)

  • 应用层:HTTP、HTTPS、DNS(DoH 属于 HTTPS 应用层封装)
  • 安全层:TLS(为 TCP 或 QUIC 提供加密)
  • 传输层:TCP、UDP、QUIC
  • 网络层:IP
  • 链路层:以太网等
  • 物理层:双绞线/光纤/无线等

要点

  • Plain DNS 工作在 UDP/TCP 之上,不加密。
  • DoT = TCP + TLS + DNS(专用端口 853)。
  • DoH = TCP/QUIC + TLS + HTTP(S) + DNS(走 443,与普通 HTTPS 共端口)。
  • DoQ = QUIC + TLS 1.3 + DNS(专用端口 UDP/853)。

物理层 链路层 网络层 传输层 安全层 应用层 双绞线/光纤/无线 Ethernet IP TCP UDP QUIC TLS HTTP HTTPS DNS DoH DNS over HTTPS

基础知识与勘误

  • Plain DNS 默认走 UDP/53,遇到响应截断(TC 位)或需要可靠传输时会改用 TCP/53。
  • DoT 在 TCP 之上建立 TLS 隧道传输 DNS 报文,默认端口 853;可以复用长连接以降低握手开销。
  • DoH 把 DNS 作为 HTTPS 的一种资源(application/dns-message),通常使用 HTTP/2 或 HTTP/3,端口 443,易与普通 HTTPS 混同。
  • DoQ 直接使用 QUIC(基于 UDP)承载 DNS,具备低时延与避免队头阻塞的优势,但当前生态覆盖仍在增长中。
  • "QUIC 就一定比 TCP 快 X%"这类笼统结论并不准确;实际表现与网络状况(丢包、抖动、RTT)、连接是否可复用、实现细节和服务端部署有关。
  • DoH 并非"把 DNS 放进 HTTP 就一定更慢/更快",性能取决于连接复用、网络质量与实现;很多情况下 DoH/3 与 DoT 体验相近甚至更好。
  • DoT 可以使用 SNI 验证证书主机名;DoH 则依赖 HTTPS 的常规证书校验与主机名匹配。
  • 加密 DNS 只能防止链路上的窃听与篡改,不等于"完全匿名"。解析器仍可能记录查询;请选可信提供商并查看隐私政策。

DNS 家族 加密的 DNS 传输基座 Plain DNS UDP/TCP + DNS TCP UDP QUIC DoT TCP + TLS + DNS DoH HTTP/2,3 + TLS + DNS DoQ QUIC + TLS 1.3 + DNS

对比总览

协议 传输层 加密 封装 默认端口 典型特点
Plain DNS UDP/TCP DNS 原生 53 简单高效,明文可见,易被篡改/审计
DoT TCP TLS 1.2/1.3 DNS 853 专用端口,易被端口封锁,系统级支持较好
DoH TCP/QUIC TLS 1.2/1.3 HTTP/2-3 + DNS 443 与 HTTPS 共端口,穿透性强,浏览器优先支持
DoQ QUIC TLS 1.3 DNS 853/UDP 低时延、避免队头阻塞,生态在发展

性能与时延

  • 连接复用:DoT/DoH/DoQ 均可复用长连接以降低握手成本;DoH/2、DoH/3 和 DoQ 还能在单连接内多路复用请求。
  • 队头阻塞:TCP 存在应用层"队头阻塞"问题;HTTP/2 在 TCP 上通过多路复用缓解但仍受 TCP 的丢包影响,QUIC(DoH/3、DoQ)在传输层避免了队头阻塞,对高丢包/移动网络更友好。
  • 首包时延:首连时 DoT 需要 TCP+TLS 握手;DoH/2 类似;DoH/3/DoQ 基于 QUIC,重连和迁移更快。长期负载下差异更多取决于实现与网络条件。
  • 可达性:DoH 使用 443 端口,最不易被简单端口封锁;DoT 使用 853,常被一刀切阻断;DoQ 使用 853/UDP,现阶段也可能被阻断或未放行。

客户端与系统支持

  • 浏览器:Chromium 家族与 Firefox 默认内置 DoH(可自动升级到支持 DoH 的解析器或使用内置名单提供商)。
  • Windows:Windows 11 原生支持 DoH。
  • Android:Android 9+ 提供"私有 DNS"(系统级 DoT)。系统级 DoH 的覆盖取决于版本/厂商。
  • Apple 平台:iOS 14+/macOS 11+ 通过描述文件或 NetworkExtension 支持 DoT 与 DoH。

部署与选型建议

  • 常规/受限网络(如公共 Wi‑Fi、需要穿透简单封锁):优先 DoH(端口 443),可启用 HTTP/3。
  • 系统级统一出口(路由器、网关、Android 私有 DNS):优先 DoT(853),若网络允许可加配 DoH 作为回退。
  • 高丢包/移动网络:优先具备 QUIC 的 DoH/3 或 DoQ(取决于解析器与客户端支持)。
  • 企业/合规场景:按策略选择(DoH 可与现有 HTTPS 基础设施融合;DoT 便于与 DNS 控制面分离)。

小结

  • 首选 DoH(443,穿透性强),若可用则启用 HTTP/3。
  • 如果需要系统级统一:优先 DoT(853)+ 持久连接,必要时回退 DoH(443)。
  • 若你的解析器与客户端均支持:尝试 DoQ(移动网络体验常更佳)。

参考标准

  • RFC 7858, RFC 8310(DNS over TLS)
  • RFC 8484(DNS over HTTPS)
  • RFC 9250(DNS over QUIC)

DNS 服务推荐

相关推荐
feifeigo1235 小时前
MATLAB的无线传感器网络(WSN)算法仿真
网络·算法·matlab
爱吃汽的小橘7 小时前
异步串口通信和逻辑分析仪
运维·服务器·网络·单片机·嵌入式硬件·fpga开发
2503_924806859 小时前
海外IP的适用业务范围
网络·网络协议·tcp/ip
Hello.Reader9 小时前
Flink State V2 实战从同步到异步的跃迁
网络·windows·flink
mobai710 小时前
华为NetEngine 8000 M1A路由器配置
网络·华为·智能路由器
-快乐的程序员-10 小时前
simple websocket用法
网络·websocket·网络协议
想不明白的过度思考者10 小时前
JavaEE初阶——中秋特辑:网络编程送祝福从 Socket 基础到 TCP/UDP 实战
网络·tcp/ip·udp·java-ee
nightunderblackcat11 小时前
四大名著智能可视化推演平台
前端·网络·爬虫·python·状态模式
沐浴露z11 小时前
【深入理解计算机网路07】详解局域网:以太网、VLAN与无线局域网
网络·网络协议·计算机网络·408