跳到主要内容

DNS over TLS 和 VPN 都被形容为"加密",也都出现在隐私检查清单里。这种相似性掩盖了范围上的巨大差异。DNS over TLS 保护的是一次对话,也就是设备请求解析器把名称转换成地址的那一次。VPN 保护的是设备到 VPN 服务器之前的每一次对话。如果把二者当成可互相替代的东西,要么在其中一个上花了不必要的力气,要么留下另一个并不能填补的缺口。

本文沿着一次查询逐段往下走,让你清楚地看到每个工具作用在哪里。同时也会讲到 DoT 失败时的表现、与 VPN 一起使用时会有什么变化,以及检查自己设置的简短步骤。相近的话题 DNS over HTTPS 与 VPN 比较的是偏网页形态的"表亲",本文则专注于使用独立端口的 TLS,以及网络层面的相关问题。

DNS over TLS 保护什么:只有一段

打开网站时,设备首先需要名称背后的地址。这次查询由 RFC 1035 定义,传统上以明文经 53 端口传输。设备到解析器之间路径上的任何人都能读到你查询的名称,往往还能篡改答案。

RFC 7858 规定的 DNS over TLS,把同样的查询包进 TLS 会话里。查询本身完全一样,变的只是包装。由此有三点结论:

  • 你查询的名称对你与解析器之间的观察者是隐藏的。 本地网络能看到你在与解析器通信、通信量多大,但看不到是哪些名称。
  • 篡改变得困难得多。 TLS 会验证解析器的身份,并能发现答案在传输中被修改。
  • 其他一切不变。 解析器本身仍然看得到你查询的每个名称。设备之后仍会直接连接网站的地址,就这个地址而言是公开的,网站也仍然看到你的真实 IP。

所以,DoT 保护的是一段路径上的内容。它不对解析器隐藏你,不隐藏目标地址,也不触及 DNS 以外的任何流量。想了解名称是如何被解析的基本情况,可读 DNS 是如何工作的。

一次 DoT 查询的过程

一次加密查询遵循一个简短的顺序。

  1. 你的设备,或替它转发的家用路由器,在 853 端口向解析器建立 TCP 连接。
  2. 进行 TLS 握手,双方都支持时使用 TLS 1.3。解析器出示证书。
  3. 如果你为解析器配置了主机名,设备会检查证书是否与该名称匹配。如果你只配置了地址,可能没有严格的名称检查。
  4. DNS 问题通过加密会话发出,答案沿同样路径返回。
  5. 连接常常保持打开以便复用,后续查询跳过握手,更快。

实际中有两点要紧。专用端口让 DoT 容易被识别,也容易被封锁,这既是它在运维上的优势(管理员可以管理它),也是弱点(网络可以直接不允许)。其次,是否检查证书,决定了 DoT 是能抵抗冒牌解析器,还是只能对被动旁观者隐藏查询。

严格模式与机会模式

RFC 7858 描述了两种使用方式,二者的区别决定了出问题时会发生什么。

行为 严格(Strict) 机会(Opportunistic)
必须成功建立 TLS 连接 是 否
检查解析器身份 是,按主机名 常常不检查
853 端口被封锁时 查询失败 退回普通 DNS
防范被动观察者 是 通常可以,除非退回
防范主动冒充者 是 不可靠
风险 在限制严格的网络里名称无法解析 悄悄降级,你可能毫无察觉

没有哪种在所有情况下都更好。严格模式给出明确的承诺和看得见的失败;机会模式给出方便,但网络一干预,保护就悄悄消失。如果选择严格模式,要有心理准备:在酒店和机场网络里偶尔会出现"网络坏了"的时刻;如果选择机会模式,不要以为保护总是开着的。

VPN 能保护而 DoT 不能保护的

VPN 与 DoT 有四点不同。

  • 范围。 隧道承载设备发出的一切:网页请求、应用流量、DNS 等。DoT 只承载 DNS。
  • 目标地址。 开启 VPN 后,本地网络只看到通往 VPN 服务器的加密连接,看不到你打开的网站。仅用 DoT 时,网络仍然看得到你连接的每个目标 IP。
  • 网站看到的地址。 VPN 用它的出口地址替换你的 IP。DoT 不碰你的 IP。
  • 信任转移到哪里。 VPN 把信任从本地网络转移到 VPN 运营方,后者能看到你的流量去了哪里。DoT 把名称的信任转移到你选择的解析器。关于运营方能看到什么、不能看到什么,请读 VPN 服务商能看到你的什么。

这两种工具都不会加密你在网页上读到的内容,那是 HTTPS 的工作,而且两者都不能让你匿名。

逐点看谁能看到什么

设想同一次查询和访问的四种设置。沿着路径走一遍,就能看出每种工具如何改变画面。

观察者 普通 DNS,无 VPN 仅 DoT 仅 VPN VPN 加 DoT
Wi-Fi 所有者:你查询的名称 看得到 隐藏 隐藏,在隧道内 隐藏
Wi-Fi 所有者:你连接的网站 看到地址 看到地址 只看到 VPN 服务器 只看到 VPN 服务器
你的宽带运营商:名称 看得到 隐藏 隐藏 隐藏
DNS 解析器:你查询的名称 看得到 看得到 看得到(取决于 VPN 选用的解析器) 看得到
DNS 解析器:谁在查询 你的 IP 你的 IP VPN 的地址 VPN 的地址或你的,取决于路由
网站:你的 IP 你的 你的 VPN 出口 VPN 出口
VPN 运营方 不涉及 不涉及 看到流量,可能看到查询 看到流量,出口之后的查询可能被加密

请注意两点。第一,在"仅 VPN"一栏,解析器是谁取决于由谁运营。许多 VPN 服务运行自己的解析器;如果是这样,VPN 运营方既看到你的流量,也看到你的查询。第二,在"仅 DoT"一栏,观察者并没有停止看到你,只是失去了名称。这是不大的收益,在共享网络里,以及面对出售或分析查询记录的服务商时,价值最大。

两者同时使用:三种结果

把 DoT 与 VPN 组合起来,会有三种结果,只有测试才能知道你属于哪一种。

  1. DNS 走隧道。 VPN 应用把所有查询,包括 DoT 会话,都放在隧道里。本地网络完全看不到。这是常见的、预期的情况。
  2. DoT 绕过隧道。 配置了 DoT 的操作系统或路由器,把加密的查询直接发给它选定的解析器,在 VPN 之外。查询仍然是加密的,被动观察者读不到名称,但你设置的解析器会看到你的真实地址,DNS 泄漏测试会显示出一个意想不到的解析器。这与明文泄漏不同,但也不是你想要的。什么是 DNS 泄漏 解释了这种区别。
  3. DoT 在隧道内或网络上被封锁。 严格模式失败,名称无法解析,直到你改动某些设置。机会模式则悄悄退回 VPN 的解析器,这是可以接受的。

这些结果本身都不是错误,而是配置的结果。重要的是知道你属于哪一种,所以要测试,而不是假设。

用了 VPN,DoT 还有什么用

很容易认为 VPN 让 DoT 变得多余。对隧道内的流量来说,常常确实如此,但在一些情况下 DoT 依然有用。

  • VPN 关闭的时候。 在家里你也许不会整天开着 VPN。设备或路由器上的 DoT 能让宽带运营商不那么容易看到你的查询。
  • 对无法运行 VPN 应用的设备。 通过 DoT 转发 DNS 的路由器,无需任何客户端软件,就能覆盖智能电视、音箱或游戏机。
  • VPN 服务器与其上游解析器之间。 运营良好的服务可以在上游使用加密 DNS,使查询不在运营方自己的路径上暴露。作为客户,你从外部无法验证这一点,可以询问服务商书面声明里是怎么说的。
  • 作为分层思路的提醒。 如果 VPN 会话短暂掉线,加密 DNS 仍然保护那段空档里发出的查询,不过它不会隐藏设备之后连接的目标。

检查你自己的设置

一次简短的测试用不了十分钟。

  1. 记下起点。 关闭 VPN,运行 DNS 泄漏测试页面,记下它报告的解析器。
  2. 开启 VPN,再测一次。解析器应当变成 VPN 的,或你配置的 DoT 解析器,不应再是宽带运营商的默认解析器。
  3. 与你的意图对照。 如果你期望看到 VPN 的解析器,却看到你配置的 DoT 解析器,说明 DoT 绕过了隧道。决定是接受,还是改设置。
  4. 试一个限制严格的网络。 在酒店或访客网络上,看严格模式下会发生什么。如果查询失败,在那段时间改用移动数据。
  5. 测试重连。 断开连接,确认查询的表现仍符合你的预期。

帮助文章 如何检查 VPN 是否正常工作 列出了应与此一同进行的其他检查。

DoT 与 VPN 不一致时如何排查

  • 开启 VPN 后名称无法解析。 DoT 解析器可能从隧道内部无法到达。暂时把 DoT 改为自动或关闭,看查询是否恢复。
  • 查询很慢。 每个新的 TLS 连接都增加一次握手。离你很远的解析器,或延迟很高的隧道,会让情况更糟。试试换解析器,或使用 VPN 自己的。
  • 认证页面(captive portal)不出现。 公共网络需要普通的 DNS 查询才能显示登录页。严格的 DoT 设置可能阻止这一点。短暂关闭该设置,登录后再打开并连接 VPN。
  • 泄漏测试显示两个不同的解析器。 一个可能是 VPN 的,另一个是你选的 DoT。决定要哪个,移除另一个。
  • 除了某个应用,其他都正常。 有些应用自带解析器,不理会系统设置,这是针对单个应用的问题。

三个简短场景

共用一台路由器的家庭。 父母把路由器配置成通过 DoT 转发查询。家里的智能电视和音箱无需安装任何应用就受到覆盖,宽带运营商也读不到名称了。孩子们的手机在公共 Wi-Fi 上还运行 VPN,隐藏在这些网络上的目标地址。

校园 Wi-Fi 上的学生。 她把笔记本设为严格 DoT。在校园访客网络上,853 端口被封,什么都加载不出来。她马上发现了,那段时间改用自己的移动数据,并把 DoT 设置保留给家里的网络。

咖啡馆里的远程办公者。 他启动 VPN 并运行泄漏测试。显示的解析器是他自己选的 DoT,而不是 VPN 的。他认为可以接受,因为那是他信任的解析器,但他把看到的情况记了下来,以便在更新后重新检查。

总结

DNS over TLS 保护一段:你的设备或路由器向一个解析器请求地址。它对中间的网络隐藏名称,也让篡改更困难,但解析器仍看得到名称,网站仍看到你的 IP,目标地址依然可见。VPN 保护设备发往 VPN 服务器的全部内容,并替换网站看到的地址,同时把信任转移给运营方。当 DNS 走隧道时,二者配合良好;当 DoT 绕过隧道时,可能出人意料,所以要测试实际行为。把 DoT 看作有用的额外一层,而不是 VPN 的替代品,反过来也一样。

如果你想试试日常使用的 VPN 通行证,可以在价格页面查看各个选项。

常见问题

DNS over TLS 与 VPN 的主要区别是什么?

DNS over TLS 只加密设备(或路由器)与某一个 DNS 解析器之间的查询。VPN 则加密设备通过隧道发送的全部流量,并改变网站看到的地址。DoT 保护一段,VPN 保护通往 VPN 服务器的整条路径。

DNS over TLS 能隐藏我访问了哪些网站吗?

它能让本地网络看不到你查询的名称,但不能隐藏网站本身。查询之后,设备仍会连接网站的 IP 地址,网络看得到这些地址。只有像 VPN 这样的隧道才能把这些目标地址对本地网络隐藏。

DNS over TLS 和 VPN 可以同时使用吗?

可以。通常 VPN 会把 DNS 流量放进它的隧道,查询因此受到双重保护。有些设置里 DoT 连接在隧道之外运行,所以最好做一次 DNS 泄漏测试,看看实际使用的解析器和路径。

为什么 DNS over TLS 在某些 Wi-Fi 上不能用?

DoT 使用独立的端口,通常是 853。有些网络会封锁它,在严格模式下设备会无法解析名称,而不是退回未加密的 DNS。换个网络或把设置改成自动,通常就能恢复。

用了 VPN 还需要 DNS over TLS 吗?

对隧道内的流量通常不需要,因为查询本来就在隧道里。但 DoT 在 VPN 关闭时、在为全家服务的路由器上,或在 VPN 服务器与其上游解析器之间(如果运营方采用)仍然有用。

关于作者

Bob Kanokphon Thongdee,XPASS VPN 创始人

Bob Kanokphon Thongdee

  • XPASS VPN 创始人
  • eSIMonline.asia 联合创始人
  • 7 年以上网络营销经验
  • Cojourney Visa 与 Cojourney Travel 创始人

短途出行或忙碌的一个月,需要 VPN?

XPASS 提供按天数计算的预付通行证。一次付款,不会自动续费。

查看通行证

继续阅读

VPN 基础

DNS 是如何工作的:从域名到 IP 地址

DNS 是把网站名称转换成设备实际连接的 IP 地址的查询系统。本文逐步讲解一次查询的过程,以及它为什么与隐私有关。

阅读约 9 分钟

VPN 安全

DNS over HTTPS 与 VPN 有何不同?需要两者一起用吗

DoH 与 DoT 让本地网络看不到你的 DNS 查询,VPN 则包住你的全部流量。了解各自覆盖什么、Android 私人 DNS 如何配合,以及何时需要两者并用。

阅读约 9 分钟

VPN 安全

什么是 DNS 泄漏?

DNS 泄漏是指设备在 VPN 隧道之外查询网站地址。本文说明它为什么发生、如何检测,以及该怎么处理。

阅读约 10 分钟

隐私指南

VPN 服务商能看到你的哪些信息?

VPN 不是消除信任,而是转移信任。本文说明 VPN 服务商在技术上能看到你的账户、支付、连接和流量中的哪些内容,以及如何评估服务商。

阅读约 9 分钟

故障排除

如何检查 VPN 是否正常工作

VPN 显示已连接,也可能没有真正发挥作用。用这些检查确认流量确实经过 VPN,并解决 IP 不变的情况。

阅读约 7 分钟