新一代加密 DNS · RFC 9250

DNS over QUIC(DoQ)
协议详解

把 DNS 报文搬上 QUIC 连接:基于 UDP、多路复用、0-RTT、连接迁移,在高丢包移动网络下比 DoT 更快更稳。

UDP 853专用端口(亦可 443)
RFC 92502022 年 IETF 标准化
0-RTT重连零往返恢复
迁移Wi-Fi/4G 切换不断线
TL;DR · 核心结论

DoQ(DNS over QUIC)由 IETF RFC 9250(2022)定义:它不再像 DoT 那样把 DNS 报文放进 TCP+TLS 隧道,而是直接承载在 QUIC 连接上,底层走 UDP(专用 853,需要混淆时用 443)。它免费获得 QUIC 的全部红利——查询间多路复用不互相队头阻塞、重连时 0-RTT 把首个查询随握手包一起发出、手机从 Wi-Fi 切到 4G 时靠连接 ID 无缝迁移。目前 AdGuard Home 等本地递归软件已支持 DoQ 上游,公共解析器如 Cloudflare 也提供端点,但浏览器与操作系统级原生支持仍在推进,成熟度暂时落后于 DoH 与 DoT。

How It Works

DoQ 为什么比 DoT 更快

理解 QUIC 带来的四个关键提升

要理解 DoQ,先理解它解决了 DoT 的什么痛点。DoT 跑在 TCP 之上:TCP 是一条有序字节流,一个包丢失会卡住后面所有包(队头阻塞),在手机这种高丢包、频繁切换网络的链路上,DoT 的延迟和失败率都会明显上升。QUIC 把传输层从 TCP 搬到 UDP 上自己实现,从设计上绕开了这些问题,DoQ 只是把 DNS 报文放进这条新传输里。

多路复用:多个查询互不阻塞

一次上网往往要同时查好几个域名(主站、CDN、统计接口)。在 DoT 的 TCP 字节流里,这些查询共用一条有序通道,一个丢包会拖住全部;在 DoQ/QUIC 里,每个查询是一条独立 stream,某个 stream 丢包只影响它自己,其他查询照常返回。

0-RTT:重连时少一次往返

客户端与服务器首次连接仍需一次完整 QUIC 握手。但之后短时间内重连(例如手机息屏再亮屏),客户端可以凭会话票据在第一个包里就带上 DNS 查询,实现 0-RTT,省掉一次往返延迟。RFC 9250 同时提醒:0-RTT 数据存在被重放的风险,对有副作用的请求要谨慎,普通 DNS 查询幂等,风险可控。

连接迁移:切网不断线

TCP 连接由「四元组」(源 IP、源端口、目的 IP、目的端口)标识,手机从 Wi-Fi 切到 4G 时源 IP 变了,TCP 连接就断了,DoT 必须重新握手。QUIC 用连接 ID 标识连接而非地址,只要两端还认识对方,地址变了连接照样继续——这对移动设备体验提升很大。

内置丢包恢复

QUIC 在 UDP 之上自己做拥塞控制、ACK 与快速重传,不依赖中间网络设备的 TCP 栈,在丢包率高的链路上恢复更快。这也是 DoQ 在弱网环境下相对 DoT 的实际优势。

Comparison

DoQ 与 DoT、DoH 全面对比

三种加密 DNS 在同一张表里看差异

维度DoT(RFC 7858)DoH(RFC 8484)DoQ(RFC 9250)
底层传输TCP + TLSTCP + TLS + HTTP/2UDP + QUIC
默认端口853/TCP443/TCP853/UDP,可 443/UDP
队头阻塞有(TCP 字节流)有(TCP 层)无(stream 级隔离)
0-RTT不支持依赖 TLS 会话恢复,较弱原生支持 0-RTT
连接迁移不支持不支持原生支持
生态成熟度高(安卓/iOS/路由器)高(浏览器/Win11)较低(递归软件/公共解析器先行)
主要场景系统级全局加密浏览器、封锁规避弱网、高性能递归、未来方向
Ecosystem

当前谁在支持 DoQ

协议虽新,但已经有可落地的软件与服务

DoQ 属于「协议先进、生态追赶中」的状态。根据 IETF Datatracker 上 RFC 9250 的状态,它已成为正式标准(Internet Standard),但各端支持节奏不一:

本地递归 / 过滤软件

开源的 AdGuard Home(Go 编写的本地 DNS 去广告/过滤软件)已支持把 DoQ 配置为上游解析协议,也就是说你可以在自家路由器或 NAS 上跑 AdGuard Home,让它通过 DoQ 向上游公共解析器取结果,再分发给局域网设备。

公共解析器

Cloudflare 在其 1.1.1.1 加密 DNS 文档中同时提供 DoH、DoT 与 DoQ 端点,是较早把三种协议都上线的公共解析服务。自建 DoQ 服务端则需要在 UDP 853(或 443)上跑一个支持 DoQ 的递归/转发程序,并放行对应 UDP 端口。

浏览器与操作系统

由于 QUIC/HTTP3 本身还在各端逐步铺开,操作系统级「私人 DNS」目前仍以 DoT 为主,浏览器安全 DNS 以 DoH 为主。DoQ 短期内更适合作为服务端到服务端、或递归软件到上游之间的高性能通道,而不是普通用户手机上的第一选择。

FAQ

常见问题

DoQ 使用 TCP 还是 UDP?走哪个端口?+
DoQ 基于 QUIC,底层是 UDP。RFC 9250 规定专用 UDP 853 端口;当需要与网页流量混在一起以规避封锁时,也可使用 UDP 443。它不像 DoT 那样跑在 TCP 上。
DoQ 相比 DoH、DoT 的核心优势是什么?+
DoQ 复用 QUIC 的多路复用(多个查询互不队头阻塞)、0-RTT 恢复握手(重连时首个查询可零往返发出)、连接迁移(手机 Wi-Fi 切 4G 不中断)以及更快的丢包恢复。在高丢包移动网络下延迟与成功率优于基于 TCP 的 DoT。
现在有哪些客户端或软件原生支持 DoQ?+
服务端与本地递归软件方面,AdGuard Home 已支持把 DoQ 作为上游;公共解析器中 Cloudflare 等提供 DoQ 端点。浏览器与操作系统级支持仍在推进中,生态成熟度目前低于 DoH 与 DoT。
DoQ 的 0-RTT 有什么安全注意事项?+
0-RTT 允许重连时把查询随首个数据包一起发出、省去一次往返,但这部分数据可能被重放攻击。RFC 9250 因此要求对 0-RTT 数据保持谨慎,敏感或有副作用的操作不应依赖 0-RTT;普通 DNS 查询本身幂等,风险相对可控。
References

参考来源