把 DNS 查询封装进 HTTPS 请求的加密解析协议,默认 443 端口、与网页流量混淆,浏览器与 Windows 原生支持。
DoH(DNS over HTTPS)是 IETF RFC 8484 定义的加密 DNS 协议:DNS 查询报文以 application/dns-message 媒体类型封装进 HTTPS 请求,默认走 443 端口,与普通网页流量混淆,运营商与中间节点无法窥探或篡改解析内容。支持 GET(base64url 编码到 dns 参数)与 POST(报文放请求体)两种模式。浏览器安全 DNS、Windows 11 原生 DoH 均基于此标准;对比走 853 端口的 DoT,DoH 更适合浏览器与封锁规避场景。
一次普通 DNS 查询如何变成一次加密的 HTTPS 请求
RFC 8484 规定 DNS 报文以 application/dns-message 媒体类型承载,客户端与服务器都能正确识别"这是 DNS 数据"。
把二进制 DNS 报文做 base64url 编码后放入 dns 查询参数,URI 模板形如 https://服务器/dns-query{?dns},可复用 HTTP 缓存。
把 DNS 报文直接放在 HTTPS 请求体中,查询内容不进入 URL 与访问日志,适合隐私要求更高的场景。
响应可携带 Cache-Control / Expires 等 HTTP 缓存语义(RFC 8484 第 5 节),减少重复解析、降低服务器负载。
三种解析方式在同一张表里看差异
| 维度 | 明文 DNS(UDP 53) | DoT(RFC 7858) | DoH(RFC 8484) |
|---|---|---|---|
| 默认端口 | 53/UDP | 853/TCP | 443/TCP |
| 加密方式 | 无,明文 | TLS 专用隧道 | HTTPS(TLS) |
| 流量特征 | 一眼可识别 | 853 端口独立,易被"特殊照顾" | 与网页流量混淆,最难识别屏蔽 |
| 原生支持 | 全部设备 | 安卓私人 DNS、iOS、路由器 | Chrome/Edge/Firefox、Windows 11 |
| 主要风险 | 窃听、篡改、污染 | 端口被封禁时不可用 | 依赖 HTTPS 基础设施,请求头略重 |
自建与主流公共 DoH 端点,复制即用
https://dns.23-4.cn/dns-queryhttps://cloudflare-dns.com/dns-queryhttps://dns.google/dns-queryhttps://dns.alidns.com/dns-query浏览器(Chrome/Edge/Firefox)在设置中搜索"安全 DNS"填入上述地址;Windows 11 在「网络和 Internet → DNS 服务器分配 → 手动」中选择"仅 DoH"即可。
dns 查询参数中,适合缓存友好场景;POST 方式把报文直接放在请求体里,适合大查询与隐私要求更高的场景。