名词速览
- 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 服务推荐
- 宁屏 DNS: https://www.nullprivate.com 支持 DoT, DoH(支持 HTTP3), 原生支持去广告与分流.
- 自部署版本: https://github.com/NullPrivate/NullPrivate