Birds – Flying beyond the wall

DNS over TLS是什么:工作原理、端口与DoH区别

更新于 2026-10-25 · birds.mom

简答:DNS over TLS(DoT)就是把DNS查询放进TLS加密的TCP连接中,通常使用853端口,减少查询被监听或篡改的风险。它只保护DNS查询与响应,不等同于VPN;普通用户可优先选择严格验证模式,并在Android的“私人DNS”中配置。

定义:DNS over TLS(DoT)是一种通过TLS加密DNS客户端与递归解析器之间通信的标准,核心目标是保护DNS查询和响应在传输过程中的机密性与完整性。

先看结论:DoT解决什么问题

普通DNS通常通过未加密的UDP或TCP消息传输,查询内容可能被链路上的观察者读取,也可能遭遇传输过程中的篡改。DoT则使用TLS加密客户端与DNS解析器之间的通信,降低DNS查询被窃听和在途修改的风险。相关标准见RFC 7858:DNS over TLS规范,Google的说明也将DoT定义为通过TLS加密TCP连接提供DNS解析。

最快判断:如果你只想减少DNS查询明文暴露,DoT有帮助;如果你想隐藏全部网络活动、改变设备出口地址或保护所有应用流量,DoT并不能替代VPN或其他完整的网络安全方案。

问题DoT能否解决说明
DNS查询被明文读取可以降低风险查询和响应在客户端到解析器之间通过TLS传输。
DNS响应在途被篡改可以降低风险TLS提供传输加密与完整性保护,并可验证服务器证书。
隐藏全部访问记录不能解析服务商仍可能看到其收到的查询;DoT也不加密其他应用流量。
替代VPN不能DoT只处理DNS问题,不承载网页、应用或文件传输。

DNS over TLS如何工作

  1. 设备先取得要查询的域名,例如某个网站的域名。
  2. 客户端与配置的DNS解析器建立TCP连接,DoT通常使用853端口。
  3. 双方进行TLS握手,客户端根据服务器名称和证书验证对方身份。
  4. DNS查询通过加密连接发送,解析器返回的DNS响应也通过该连接传回。
  5. 设备根据响应取得IP地址,再由后续的HTTP、HTTPS或其他应用协议访问目标服务。

这里要区分两层:DoT保护的是“设备到递归DNS解析器”之间的DNS传输;它不会自动保护解析器后续向权威DNS服务器查询的所有链路,也不会让网站看不到你的访问请求。Google公开文档说明,严格隐私配置要求客户端连接指定服务器,并在853端口建立经过认证的TLS连接,连接失败时不会回退到无加密DNS。

DoT通常使用专用的853端口,因此网络管理者可能识别出存在DoT连接;查询内容本身仍由TLS保护。Cloudflare对DoT和DoH端口、流量可见性及差异的说明可参阅DNS over TLS与DNS over HTTPS对比。

严格隐私模式与机会性隐私模式怎么选

模式连接要求安全边界适合人群
严格隐私模式必须连到指定服务器,并完成TLS身份验证TLS失败时直接报错,不回退到明文DNS重视查询隐私、可以接受部分网络不兼容的用户
机会性隐私模式尽量使用加密连接TLS连接失败时可能回退到未加密DNS,保护能力取决于回退行为更看重兼容性的网络环境

Google的DoT文档明确区分了strict和opportunistic两种配置。若你的目标是避免DNS查询无保护传输,优先选择能够验证服务器身份、且失败不回退到明文DNS的严格模式。若开启后出现“无法解析域名”或所有应用都无法联网,再检查网络是否阻断853端口、服务器名称是否填写正确,以及设备时间是否准确。

DoT、DoH、DNSSEC和HTTPS有什么区别

技术主要保护对象典型传输方式不能单独解决的问题
DoTDNS查询与响应的传输机密性和完整性TLS加密的TCP连接,通常使用853端口不保护其他应用流量;专用端口可能被识别或阻断
DoHDNS查询与响应的传输机密性和完整性封装在HTTPS中,通常使用443端口仍需信任所选解析器;不等于完整网络隧道
DNSSECDNS数据来源与完整性验证不是传输加密协议不能单独隐藏查询内容
HTTPS浏览器或应用与网站之间的通信HTTPS连接网站使用HTTPS时,DNS查询仍可能在连接前暴露

DoT与DoH都属于加密DNS,但承载方式不同:DoT使用专用的TLS连接,DoH将DNS消息放进HTTPS请求。Cloudflare指出,DoT通常使用853端口,DoH通常使用443端口;DoH的DNS流量更容易与普通HTTPS流量混在一起。DNSSEC则是另一类机制,重点是验证DNS数据的真实性和完整性,不负责隐藏传输内容。Microsoft对加密DNS与DNSSEC的关系也作了类似区分,可参考Microsoft Learn的DNS加密说明。

Android上如何配置DoT

Android提供的“私人DNS”就是面向系统的加密DNS配置入口。Android官方帮助给出的路径是“设置”→“网络和互联网”→“私人DNS”;不同厂商可能把菜单名称放在“连接与共享”或设置搜索中。

  1. 导入:打开“设置”,搜索“私人DNS”,或进入“网络和互联网”→“私人DNS”;选择“私人DNS提供商主机名”,填写解析服务商提供的主机名。
  2. 开启:点击保存,并确认选项没有停留在“关闭”。如果只是想让系统自动选择加密方式,可选择“自动”;如果要指定DoT服务端,应使用“私人DNS提供商主机名”。
  3. 验证:重新打开网页和常用应用,观察是否能正常解析;若无法联网,回到“私人DNS”改为“自动”进行对照。Android官方提醒,私人DNS只保护DNS问题和答案,不会保护其他网络流量。

Android官方帮助页提供了上述设置入口和三种选项:关闭、自动、私人DNS提供商主机名,详见Android官方高级网络设置说明。Android 9及以上还具备系统级DoT支持背景,但具体菜单名称和厂商策略可能不同。

DoT开启后连不上:按这个顺序排查

  1. 先恢复可用性:把私人DNS临时改为“自动”,确认问题是否只在指定DoT服务器时出现。
  2. 核对主机名:不要把网页地址、IP地址或带路径的URL填进“私人DNS提供商主机名”;应使用服务商明确给出的主机名。
  3. 检查系统时间:TLS证书验证依赖正确时间。日期、时区明显错误时,先启用自动设置日期和时间。
  4. 检查网络限制:DoT通常需要访问853端口。若某个办公网、酒店网或公共网络只允许常见网页流量,可能出现连接失败;可在另一网络下做对照。
  5. 检查服务端状态:更换解析服务商前,先确认目标服务是否公开支持DoT、主机名是否仍有效。无法核实的服务地址不要直接使用。
  6. 记录对照结果:至少在同一设备、同一网络下分别测试“关闭、自动、指定主机名”三种状态,记录能否打开网页、是否出现解析错误和恢复时间。

DoT没有统一的“必然更快”结论。若要判断是否影响延迟,建议在同一地点、同一网络、相近时段分别进行多次域名解析和网页访问对照,并同时记录失败次数;单次结果不足以下结论。

选择和使用DoT前的自查清单

  • 确认服务商公开说明了DoT支持、服务器主机名和证书验证方式。
  • 优先使用严格验证,除非你明确接受TLS失败后的明文回退风险。
  • 了解解析服务商仍可能看到发送给它的DNS查询,不要把DoT误解为完全匿名。
  • 确认所在网络允许所需连接;企业网络还应遵守管理员策略。
  • 出现异常时保留“配置前、配置后、换网络后”的对照记录,不要同时修改DNS、MTU和代理等多个变量。
  • 使用任何网络配置前,遵守所在地法律与服务条款。

如果你还需要判断普通DNS、加密DNS和不同解析器的差异,可以继续阅读站内的DNS over HTTPS是什么、DNS泄漏是什么和公共DNS哪个好。

常见问题

DNS over TLS和普通DNS最核心的区别是什么?

普通DNS查询通常以未加密的UDP或TCP消息传输,DoT则把DNS通信放进TLS加密连接中,重点减少查询内容被读取或在途修改的风险。

DNS over TLS默认一定使用853端口吗?

标准化的DoT部署通常使用853端口。实际服务仍应以解析服务商公开的配置说明为准,不要仅凭端口号判断某个服务器是否支持DoT。

DoT能隐藏我访问了哪些网站吗?

不能完全隐藏。DoT主要保护设备到DNS解析器之间的查询;解析服务商可能看到收到的查询,后续应用连接也不由DoT负责保护。

DoT和DoH哪个更安全?

两者都能加密DNS传输,没有脱离使用场景的统一优胜结论。DoT结构清晰、便于网络管理,但853端口更容易被识别;DoH使用HTTPS承载,通常更像普通网页流量。

为什么开启DoT后反而无法上网?

常见原因包括主机名填错、设备时间错误、证书验证失败、网络限制853端口或解析服务端暂时不可用。先改为“自动”确认,再逐项核对。

DNSSEC能替代DNS over TLS吗?

不能。DNSSEC主要验证DNS数据来源和完整性,DoT主要加密客户端与解析器之间的传输,两者解决的威胁模型不同,可以互补使用。

Android所有版本都能配置私人DNS吗?

Android官方帮助提供了私人DNS设置入口;Android 9及以上具备系统级DoT支持背景。老版本或厂商定制系统的菜单和能力可能不同,应以设备实际设置为准。

相关阅读

参考资料

  1. Google Public DNS:DNS-over-TLS
  2. Cloudflare:DNS over TLS与DNS over HTTPS
  3. Microsoft Learn:使用DNS over HTTPS进行DNS加密
  4. Android帮助:管理高级网络设置