加密 DNS · RFC 8484

DNS over HTTPS(DoH)
协议详解

把 DNS 查询封装进 HTTPS 请求的加密解析协议,默认 443 端口、与网页流量混淆,浏览器与 Windows 原生支持。

443默认端口 · 与网页流量混淆
RFC 84842018 年 IETF 发布
GET/POST两种请求模式
原生Chrome/Edge/Firefox/Win11
TL;DR · 核心结论

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 更适合浏览器与封锁规避场景。

How It Works

DoH 的工作原理

一次普通 DNS 查询如何变成一次加密的 HTTPS 请求

封装 application/dns-message

RFC 8484 规定 DNS 报文以 application/dns-message 媒体类型承载,客户端与服务器都能正确识别"这是 DNS 数据"。

GET 模式 缓存友好

把二进制 DNS 报文做 base64url 编码后放入 dns 查询参数,URI 模板形如 https://服务器/dns-query{?dns},可复用 HTTP 缓存。

POST 模式 隐私友好

把 DNS 报文直接放在 HTTPS 请求体中,查询内容不进入 URL 与访问日志,适合隐私要求更高的场景。

复用 HTTP 缓存

响应可携带 Cache-Control / Expires 等 HTTP 缓存语义(RFC 8484 第 5 节),减少重复解析、降低服务器负载。

Comparison

DoH 与明文 DNS、DoT 的对比

三种解析方式在同一张表里看差异

维度明文 DNS(UDP 53)DoT(RFC 7858)DoH(RFC 8484)
默认端口53/UDP853/TCP443/TCP
加密方式无,明文TLS 专用隧道HTTPS(TLS)
流量特征一眼可识别853 端口独立,易被"特殊照顾"与网页流量混淆,最难识别屏蔽
原生支持全部设备安卓私人 DNS、iOS、路由器Chrome/Edge/Firefox、Windows 11
主要风险窃听、篡改、污染端口被封禁时不可用依赖 HTTPS 基础设施,请求头略重
Quick Start

常见 DoH 服务地址与配置

自建与主流公共 DoH 端点,复制即用

https://dns.23-4.cn/dns-query
https://cloudflare-dns.com/dns-query
https://dns.google/dns-query
https://dns.alidns.com/dns-query

浏览器(Chrome/Edge/Firefox)在设置中搜索"安全 DNS"填入上述地址;Windows 11 在「网络和 Internet → DNS 服务器分配 → 手动」中选择"仅 DoH"即可。

FAQ

常见问题

DoH 默认使用哪个端口?+
DoH 默认使用 443 端口,与正常 HTTPS 网页流量同端口,因此难以被针对 DNS 的封锁识别与单独屏蔽。
DoH 和 DoT 有什么区别,怎么选?+
DoH 走 443 端口、封装在 HTTPS 里,适合浏览器与桌面端;DoT 走专用 853 端口、协议开销低,适合安卓私人 DNS 与路由器全局加密。二者安全性相当,按设备场景选择,也可同时开启。
DoH 请求支持哪几种方式?+
RFC 8484 定义了两种:GET 方式把二进制 DNS 报文做 base64url 编码放在 dns 查询参数中,适合缓存友好场景;POST 方式把报文直接放在请求体里,适合大查询与隐私要求更高的场景。
DoH 会泄露我的隐私吗?+
DoH 用 TLS 加密查询内容,运营商和中间节点看不到你解析了哪些域名,但 DoH 服务器本身仍能看到,所以应选择零日志、信誉良好的服务商(如自建零日志节点)。
References

参考来源