什么是加密 DNS?(DoH 与 DoT)
在互联网的早期,DNS(域名系统)查询就像寄明信片,内容是明文的。这意味着运营商或中间人可以轻易看到你访问了哪些网站,甚至篡改结果(即“DNS 劫持”)。
为了解决这个问题,DoH 和 DoT 应运而生。它们的核心目标一致:通过加密手段,让你的 DNS 查询变得不可见且不可篡改。

1. DoH (DNS over HTTPS)
定义: 将 DNS 查询加密后,封装在标准的 HTTPS 流量中发送。
端口: 使用 443 端口(与网页浏览流量完全一致)。
优势:
隐蔽性极高: 流量混在普通上网流量里,防火墙很难分辨出你在进行 DNS 查询,因此极难被拦截或阻断。
生态丰富: 浏览器(Chrome/Firefox)、Cloudflare Worker、Nginx 等工具支持极好,甚至可以轻松搭建自己的解析服务器。
劣势:
开销略大: 多了 HTTP 层封装,数据包比 DoT 稍重。
隐私争议: 某些应用(如浏览器)会绕过系统全局 DNS 走自己的 DoH,可能导致公司或学校的网络策略失效。

2. DoT (DNS over TLS)
定义: 直接在 TLS 加密层之上运行 DNS 协议。
端口: 使用专用的 853 端口。
优势:
效率更高: 相比 DoH 少了 HTTP 层的封装,握手更快,延迟理论上更低。
纯净原生: Android 系统的“私人 DNS”功能原生支持 DoT,配置简单,不需要安装第三方 App。
劣势:
易被识别: 因为 853 是专属端口,网络管理员如果想禁用加密 DNS,可以直接封锁该端口,导致 DoT 失效。
DoH vs DoT:核心对比表
总结建议:我该怎么选?
如果你在桌面端或复杂网络环境下: 推荐 DoH。它能有效穿透各种网络限制,且在 PC 上几乎没有性能感知的差异。
如果你在移动端(Android): 推荐 DoT。在系统设置的“私人 DNS”中直接输入地址(如
dns.google或dot.pub)即可,比装 App 运行 DoH 更省电。如果你追求极致隐私: 两者都可以。关键不在于协议,而在于你信任哪家 DNS 服务商(如 Cloudflare、Google 或国内的腾讯、阿里)。
国内可直连DoH服务
国内目前可用的DoH(2025-11-15)
https://coding.gs/2024/06/09/available-doh/
经过一段时间的摸索与测试,我收集了一些在国内表现出色的DoH服务。这些服务在稳定性、速度和隐私保护方面都表现良好,能够为大家提供更为安全的上网体验。
直接使用海外DoH会有较高延迟,推荐进行 DNS分流 或者 自建本地DNS服务器 进行缓存。
国内
海外
2025-11-15 发现
v.recipes支持使用任意上游DoH,使用方法是https://v.recipes/dns/(你的上游DoH地址),例如https://v.recipes/dns/dns.google/dns-query
2025-06-15 主流DoH基本都不可用了,可以考虑自己反代,不太推荐直连公共DoH了。
2025-03-01 目前还是推荐
Quad 101OpenDNS和Cloudflare,相对比较稳定和快速。
2024-12-6 Quad9、RethinkDNS、Cloudflare的域名DoH又可以使用了。
2024-9-21 更新了一次,有Quad9、RethinkDNS、Cloudflare的域名DoH已经失效。
2024-8-19 经过ITDog测试,所有DoH仍然有效。
CF-Workers-DoH
CF-Workers-DoH 是一个基于 Cloudflare Workers 构建的 DNS over HTTPS (DoH) 解析服务。它允许你通过 HTTPS 协议进行 DNS 查询,提高查询的安全性和隐私保护。
https://github.com/cmliu/CF-Workers-DoH

Cloudflare One
https://developers.cloudflare.com/cloudflare-one/networks/resolvers-and-proxies/dns/dns-over-https/
借助 Cloudflare Gateway,您可以按DNS 位置或用户过滤 DNS over HTTPS (DoH) 请求,而无需在您的设备上安装 Cloudflare One 客户端。
基于位置的策略要求您将 DNS 请求发送到特定位置的 DoH 端点,而基于身份的策略要求请求包含特定用户的 DoH 令牌。
基于位置筛选DOH请求
基于位置的策略要求您将 DNS 查询发送到分配给该位置的唯一DoH 端点:
https://<YOUR_DOH_SUBDOMAIN>.cloudflare-gateway.com/dns-query第一步:进入控制面板
登录你的 Cloudflare 账号。
在浏览器地址栏直接访问 Cloudflare Zero Trust 的仪表盘:
https://one.dash.cloudflare.com/
第二步:找到“解析程序和代理”
进入仪表盘后,点击左侧菜单栏:
点击 “网络”。
在展开的子菜单中,找到并点击 “解析程序和代理”。
第三步:配置 DNS 位置
在“解析程序和代理”页面中,你会看到 DNS 位置 选项卡。
点击默认的位置名称:Default Location。
点击右侧或旁边的 “配置” 按钮。
第四步:开启 DoH 并获取地址
进入配置页面后,你会看到类似下方的界面设置。请按照以下说明操作:
1. 启用 IPv6 DNS(可选但推荐)
在 "DNS endpoints" 区域,找到 IPv6 DNS 并将其开关打开。
注意:系统会为你分配一个 IPv6 阻止列表 ID,例如 2a06:98c1:54::2:3ac6,这通常无需更改。
2. 开启基于 HTTPS 的 DNS (DoH)
这是最关键的一步!找到 “基于 HTTPS 的 DNS (DoH)” 选项。
将开关设置为 “开”。
此时,系统会自动生成一个专属的 DoH 地址。
3. 保存设置
不要忘记滚动到页面底部,点击 “保存” 按钮。
第五步:设置为默认位置(可选)
在页面下方的“默认 DNS 位置”区域,如果需要,你可以勾选“设置为默认 DNS 位置”。这通常用于 Cloudflare WARP 客户端的设备策略,如果你只是在浏览器或路由器使用该 DoH 地址,这一步可以跳过。