DNS over TLS是什么:工作原理、端口与DoH区别
简答: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如何工作
- 设备先取得要查询的域名,例如某个网站的域名。
- 客户端与配置的DNS解析器建立TCP连接,DoT通常使用853端口。
- 双方进行TLS握手,客户端根据服务器名称和证书验证对方身份。
- DNS查询通过加密连接发送,解析器返回的DNS响应也通过该连接传回。
- 设备根据响应取得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有什么区别
| 技术 | 主要保护对象 | 典型传输方式 | 不能单独解决的问题 |
|---|---|---|---|
| DoT | DNS查询与响应的传输机密性和完整性 | TLS加密的TCP连接,通常使用853端口 | 不保护其他应用流量;专用端口可能被识别或阻断 |
| DoH | DNS查询与响应的传输机密性和完整性 | 封装在HTTPS中,通常使用443端口 | 仍需信任所选解析器;不等于完整网络隧道 |
| DNSSEC | DNS数据来源与完整性验证 | 不是传输加密协议 | 不能单独隐藏查询内容 |
| 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”;不同厂商可能把菜单名称放在“连接与共享”或设置搜索中。
- 导入:打开“设置”,搜索“私人DNS”,或进入“网络和互联网”→“私人DNS”;选择“私人DNS提供商主机名”,填写解析服务商提供的主机名。
- 开启:点击保存,并确认选项没有停留在“关闭”。如果只是想让系统自动选择加密方式,可选择“自动”;如果要指定DoT服务端,应使用“私人DNS提供商主机名”。
- 验证:重新打开网页和常用应用,观察是否能正常解析;若无法联网,回到“私人DNS”改为“自动”进行对照。Android官方提醒,私人DNS只保护DNS问题和答案,不会保护其他网络流量。
Android官方帮助页提供了上述设置入口和三种选项:关闭、自动、私人DNS提供商主机名,详见Android官方高级网络设置说明。Android 9及以上还具备系统级DoT支持背景,但具体菜单名称和厂商策略可能不同。
DoT开启后连不上:按这个顺序排查
- 先恢复可用性:把私人DNS临时改为“自动”,确认问题是否只在指定DoT服务器时出现。
- 核对主机名:不要把网页地址、IP地址或带路径的URL填进“私人DNS提供商主机名”;应使用服务商明确给出的主机名。
- 检查系统时间:TLS证书验证依赖正确时间。日期、时区明显错误时,先启用自动设置日期和时间。
- 检查网络限制:DoT通常需要访问853端口。若某个办公网、酒店网或公共网络只允许常见网页流量,可能出现连接失败;可在另一网络下做对照。
- 检查服务端状态:更换解析服务商前,先确认目标服务是否公开支持DoT、主机名是否仍有效。无法核实的服务地址不要直接使用。
- 记录对照结果:至少在同一设备、同一网络下分别测试“关闭、自动、指定主机名”三种状态,记录能否打开网页、是否出现解析错误和恢复时间。
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支持背景。老版本或厂商定制系统的菜单和能力可能不同,应以设备实际设置为准。