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-dnsdns-systematic-diagnosis 第四层)。
  • DoH 需要 Bootstrap:解析 DoH 域名本身可能又要 DNS(见 dns-bootstrap-problem)。
创建于 2026/7/31 更新于 2026/7/31