DoH
DoH(DNS over HTTPS)把 DNS 查询—响应映射为 HTTPS 交换(通常 443),复用现有 HTTPS 设施、难以按端口区分,但会把 DNS 控制权从系统转移到应用层。
#type / concept
#status / growing
#tech / network
#protocol / dns
[!info] related notes
DoH
一句话定义
DoH(DNS over HTTPS) 把每次 DNS 查询—响应映射为一个 HTTPS 交换(通常端口 443),让 DNS 流量伪装/复用进普通 HTTPS,难以仅按端口与普通网页流量区分。
核心机制 / 工作原理
DNS → HTTPS(POST/GET + JSON 或二进制 body)→ 端口 443
每个 DNS 报文被打包进 HTTP 请求,到达 DoH 解析器后解开再正常递归。
优点
- 复用现有 HTTPS 基础设施(证书、CDN、443 端口)
- 很难被仅按「UDP 53 / TCP 853」特征识别与封锁
- 浏览器可以直接实现,不依赖系统配置
代价
- 控制权从操作系统转移到应用:Chrome/Firefox 可自带 DoH,绕过 Windows DNS、路由器 DNS、甚至部分 Mihomo 配置
- 企业/VPN/本地 DNS 与浏览器 DoH 之间可能发生冲突,排障链更复杂
- 集中到少数大型 DoH 解析器带来隐私与单点依赖问题
最小例子 / 最小场景
Chrome 设置里选「使用安全 DNS」并填自定义 DoH:
https://dns.google/dns-query
https://1.1.1.1/dns-query
此后 Chrome 的解析可能完全不经过系统 192.168.x.x。
边界与易混淆点
- DoH 加密了内容,但 DoH 解析器仍同时知道「你是谁(IP)+ 你查什么(域名)」(见 oblivious-doh-odoh 解决此问题)。
- 配置了 DoH ≠ 系统其他程序也走 DoH;curl、PowerShell、代理客户端可能仍用系统/UDP DNS。
- 排障时「我设了系统 DNS 还不行」可能正是 Chrome 用了自己的 DoH(见 browser-secure-dns、dns-systematic-diagnosis 第四层)。
- DoH 需要 Bootstrap:解析 DoH 域名本身可能又要 DNS(见 dns-bootstrap-problem)。