下面我会把 DoH/DoT 讲清楚,然后给你一份能直接复制的国内外端点清单。
传统 DNS(UDP/TCP 53)默认是明文。这意味着同一网络里的旁路设备、热点运营者、ISP,通常都能:
HTTPS 解决的是“你访问的网站内容是否被窃听/篡改”,但 DNS 在 HTTPS 之前发生:
你得先解析出 IP,才能开始 TLS 握手。
所以只要 DNS 仍是明文,链路仍有一块很脆弱。
**DoH(DNS over HTTPS)**把 DNS 查询封装进 HTTPS 请求里,典型特征是:
Cloudflare 的文档对 DoH 的描述很直接:DNS 查询/响应会被加密,并通过 HTTP/HTTP2/HTTP3 传输,使用 443,把 DNS “包在 HTTPS 里”。
**DoT(DNS over TLS)**是把 DNS 跑在 TLS 加密的 TCP 连接之上,典型特征是:
Google 的 DoT 文档强调:DoT 通过 TLS 加密传统 DNS,并提供 strict(严格校验证书)与 opportunistic(尽力加密,失败回退明文)两种隐私配置模型。
| 维度 | DoH | DoT |
|---|---|---|
| 加密承载 | HTTPS(HTTP/1.1/2/3) | TLS over TCP |
| 常用端口 | 443 | 853 |
| 配置入口 | 浏览器“安全 DNS”、系统 DoH(部分 OS) | Android Private DNS、部分系统 DNS over TLS |
| 抗干扰能力(经验) | 更强 | 中等(更易被封 853) |
| 便于网络策略管控 | 较难 | 更容易 |
实践里一个很常见的策略是:
说明:这里优先列“公开可用、文档明确、常见且稳定”的公共解析器。不同服务商还会有拦截恶意/广告/成人内容等变体,我也会在备注里写出来。
https://doh.pub/dns-querydot.pub(端口 853)DNSPod 官方公告说明:从 2024-09-29 起,免费版 DoH/DoT 不再公开 IP 接入方式,建议统一使用上述域名接入,以便更稳定地控制访问流量。
阿里云公共 DNS 的 DoH/DoT 在官方文档里更偏“账号维度”配置(需要控制台的 Account ID,并且要手动打开 DoH/DoT 启用状态):
<user_id>.alidns.com 或 '<user_id>-自定义字段.alidns.com'https://<user_id>.alidns.com/dns-query 或 https://<user_id>-自定义字段.alidns.com/dns-query阿里云开发者文章也明确其遵循 RFC 8484(DoH)与 RFC 7858(DoT),并支持 TLS 1.2 / 1.3。
备注:阿里云文档里也提示这种 DoH/DoT 接入“不支持鉴权,不建议使用”,更适合懂得自己评估风险边界的用户/团队(例如需要统一观测和管控时)。
https://cloudflare-dns.com/dns-queryone.one.one.one(端口 853)Cloudflare 的 DoH 文档强调:DoH 通过 HTTP/HTTP2/HTTP3 传输并使用 443;其 DoH API 文档也明确给出了 https://cloudflare-dns.com/dns-query 作为 resolver 地址。
https://dns.google/dns-query(GET/POST)dns.google(端口 853)Google 同时提供一个更“应用层友好”的 JSON API(GET):
https://dns.google/resolve?官方也给出了 DoH 的隐私建议:尽量减少 HTTP headers、使用 EDNS padding、以及在隐私敏感模式下考虑 RFC 8484 的 POST。
Quad9 在官方页面把 DoH/DoT 写得很清楚(并区分不同服务变体):
https://dns.quad9.net/dns-querytls://dns.quad9.net(即 dns.quad9.net:853)另有 ECS 版(dns11.quad9.net)与不拦截版(dns10.quad9.net)。
AdGuard 提供三套免费公共 DNS,并在官方页面列出了 DoH / DoT 端点:
DoH
https://dns.adguard-dns.com/dns-queryhttps://unfiltered.adguard-dns.com/dns-queryhttps://family.adguard-dns.com/dns-queryDoT
tls://dns.adguard-dns.comtls://unfiltered.adguard-dns.comtls://family.adguard-dns.comMullvad 的官方文档给出了多档内容拦截,并统一在 *.dns.mullvad.net 上提供 DoH/DoT:
https://dns.mullvad.net/dns-querydns.mullvad.net(端口 853)并有更多变体:adblock.dns.mullvad.net、base.dns.mullvad.net、extended.dns.mullvad.net、family.dns.mullvad.net、all.dns.mullvad.net。
Mullvad 还明确指出:该服务主要用于“未连接 Mullvad VPN 时”,如果你已经在用 VPN,再套一层通常更慢。
Android 9+ 一般这样做:
dot.pub / dns.google / one.one.one.one)Chrome / Edge / Brave 一般在设置里开启“安全 DNS”,选择自定义 provider,然后填入 DoH URL(例如 https://dns.google/dns-query 或 https://cloudflare-dns.com/dns-query)。
提醒:浏览器 DoH 只影响浏览器内的解析,不等于系统全局。
例如 Cloudflare 的 DoT 文档提供了 kdig 的测试示例(展示 TLS 握手、证书链、延迟等)。
Cloudflare 的 DoH API 文档中给出了 curl 示例,并说明 DoH endpoint 支持 GET/POST,支持 application/dns-json 与 application/dns-message。
DoH/DoT 解决的是“DNS 查询在链路上被窥探/篡改”的问题,但它不会让你匿名:
所以它更像一种基础设施级别的安全加固:
把最脆弱的一段明文链路补齐。
Cloudflare DoH:https://developers.cloudflare.com/1.1.1.1/encryption/dns-over-https/
Cloudflare DoH API(含 https://cloudflare-dns.com/dns-query):https://developers.cloudflare.com/1.1.1.1/encryption/dns-over-https/make-api-requests/
Cloudflare DoT:https://developers.cloudflare.com/1.1.1.1/encryption/dns-over-tls/
Google Public DNS DoH:https://developers.google.com/speed/public-dns/docs/doh
Google Public DNS DoT:https://developers.google.com/speed/public-dns/docs/dns-over-tls
Quad9 服务地址(含 DoH/DoT):https://quad9.net/service/service-addresses-and-features/
DNSPod 公告(免费版 DoH/DoT 域名接入):https://docs.dnspod.cn/notices/mian-fei-ban-dot-dohbu-zai-gong-kai-ipjie-ru-de-gong-gao/
阿里云 公共DNS 接入配置(DoH/DoT 账号维度):https://help.aliyun.com/zh/dns/service-access
阿里云公共DNS安全传输介绍(DoH/DoT、TLS 1.2/1.3):https://developer.aliyun.com/article/757592
AdGuard Public DNS(DoH/DoT 地址清单):https://adguard-dns.io/en/public-dns.html
Mullvad 加密 DNS(端点、拦截档位、配置说明):https://mullvad.net/en/help/dns-over-https-and-dns-over-tls