跳到主要内容

隐私设置里常出现两个词:DNS over HTTPS 和 VPN。它们听上去像是在做同一件事,有些设置页甚至把两者都描述为“加密你的连接”。两者确实相关,但覆盖的是你打开网站时发生的不同环节。把它们混为一谈,会导致两种相反的错误:以为只要开了加密 DNS 就不需要 VPN,或者以为有了 VPN,各种 DNS 设置就都无关紧要。

本文解释 DNS over HTTPS(DoH)和 DNS over TLS(DoT)实际保护什么,VPN 保护什么,两者在哪里重叠,以及它们在 Android 手机和网页浏览器里如何配合。读完之后,你应当能判断自己需要其中之一还是两者兼用,并知道如何测试。

DNS 会暴露你的哪些信息

浏览器加载页面之前,必须先把 example.com 这样的名字转换成 IP 地址,这是域名系统(DNS)的工作。你的设备向 DNS 解析器发出一个叫做查询的问题,解析器返回答案。想了解完整背景,请读 DNS 是如何工作的,或 Cloudflare Learning 的通用介绍。

传统的 DNS 不加密。查询通常通过 53 端口以可读的文本形式传输。任何能看到你与解析器之间流量的人,比如公共 Wi-Fi 的所有者或你的网络运营商,都能读到你询问过的名字清单。他们看不到你加载的页面内容,也看不到你输入的东西,但一天的域名清单已经足以说明一个人的习惯。

这就是 DoH 和 DoT 要解决的问题。它们并没有改变 DNS 的用途,只是为你与解析器之间的对话加上了加密。

DoH 与 DoT 如何工作

DNS over HTTPS 由 RFC 8484 定义。设备或浏览器把 DNS 查询当作 HTTPS 请求发给解析器。对外部观察者来说,它就像 443 端口上普通的加密网页流量,看不到内容。DoH 常内置在浏览器中,一些操作系统也提供。

DNS over TLS 由 RFC 7858 定义。它把 DNS 查询包在 TLS 会话里,也就是 HTTPS 使用的同一层加密,但使用专用端口,通常是 853。这让网络很容易看出正在使用 DNS over TLS,尽管看不到里面的内容。DoT 常见于操作系统层面,Android 的“私人 DNS”设置就使用它。

DNS over HTTPS(DoH) DNS over TLS(DoT)
标准 RFC 8484 RFC 7858
常用端口 443,与网页流量相同 853,专用
加密内容 你与解析器之间的查询和应答 你与解析器之间的查询和应答
通常在哪里设置 浏览器内,有时在操作系统里 操作系统内,如 Android 私人 DNS
网络能否看出正在使用 较难,因为类似网页流量 较容易,因为有专用端口

两者做的是同一件关键的事:阻止本地网络在传输途中读取你的 DNS 问题。它们并没有把解析器从画面中去掉。你选择的 DNS 服务商仍能看到你发出的每个查询。你只是把信任从网络默认的解析器转移到了你选的那一个,所以最好知道它是谁。

加密 DNS 没有隐藏什么

人们很容易高估加密 DNS。查询完成后,你的设备仍然要连接网站的 IP 地址,网络能看到这个地址。根据网站和协议版本不同,站点名称也可能出现在连接建立的其他环节。流量的大小和时间规律依旧可见。而你自己的 IP 并没有变化,所以你访问的网站仍能看到它。

VPN 对 DNS 做了什么

VPN 在你的设备与 VPN 服务商的服务器之间建立加密隧道,并让流量通过它。具体哪些流量取决于设置,但在通常的全隧道配置下,包括你的 DNS 查询、网页请求和其他应用的流量。本地网络只能看到通往 VPN 服务器的加密连接,其余所知甚少。网站看到的是 VPN 服务器的地址,而不是你的地址。关于 VPN 保护什么,另有文章作了更详细的说明。

对 DNS 来说,常见有两种安排:

  • VPN 提供自己的 DNS 解析器,你的查询通过隧道发给它。本地网络读不到,但 VPN 服务商能读到,所以你是把 DNS 服务商应有的位置交给了 VPN 服务商。
  • VPN 让别的解析器处理查询,比如操作系统或浏览器里设置的那个。如果整台设备都走隧道,查询仍然在隧道内传输。

行为良好的 VPN 不会让 DNS 查询漏到隧道之外。一旦失败,就叫做 DNS 泄漏,你可以测试它。

DoH、DoT 与 VPN 的对照

DoH / DoT VPN
加密 DNS 查询 是 是,当 DNS 走隧道时
加密其他流量 否(HTTPS 已经覆盖了哪些,见 HTTPS 与 VPN) 是,设备与 VPN 服务器之间
改变网站看到的 IP 否 是,变为 VPN 服务器的地址
对本地网络隐藏 DNS 查询 是 是
谁仍能读到你的 DNS 查询 你选的解析器 VPN 服务商,或它使用的解析器
典型用途 在可信设备或家庭网络上的日常隐私 不可信网络、出行,或想改变可见 IP 时
成本与设置 通常是免费的设置项 来自服务商的服务

右列范围更广,左列更轻便且随时可用。它们不是对手,而是在回答不同的问题。

需要两者并用吗

这取决于你要保护什么,以及防备谁。一个简单的办法是对照典型场景。

  1. 在家使用自己的路由器。 你主要的顾虑可能是网络运营商看到每一次 DNS 查询。加密 DNS 以很低的成本就能堵上这个缺口。VPN 能隐藏更多,但你也多引入了一家公司,它现在能看到原来运营商看到的内容。
  2. 在咖啡馆、酒店或机场的公共 Wi-Fi 上。 你无法信任这个网络。加密 DNS 能阻止网络读取你的查询,这很有用,但其余流量依然如故。HTTPS 保护了其中的大部分,但不是全部,VPN 则在所有应用之上多加一层。这种情况下,两者并用很容易说得通,同样的道理也适用于任何你无法掌控的公共网络。
  3. 只是想改变可见的 IP。 只有 VPN 能做到。加密 DNS 改变不了网站看到的内容。
  4. VPN 已经开着。 只要 VPN 把查询保持在隧道内,DNS 通常不需要再加什么。可以用泄漏测试来检查。额外的 DNS 设置没有害处,但可能让人搞不清实际用的是哪个解析器。
  5. VPN 对部分应用关闭。 如果你使用分应用代理,或对某些网站关闭 VPN,浏览器或系统里的加密 DNS 仍会保护这些查询。

简单地说,加密 DNS 是一个合理的默认设置,VPN 则是针对不太信任的网络或情境的额外一层。两者都不应被当作匿名的保证。

Android 私人 DNS 与 VPN 应用

自 Android 9 起,Android 提供了名为“私人 DNS”的系统级加密 DNS 选项。它以 DNS over TLS 为基础,因此手机上所有应用的查询都可以在不安装任何东西的情况下被加密。菜单名称因厂商而异,通常在设置里搜索“私人 DNS”就能找到,常位于“网络和互联网”之下。

共有三种模式:

  • 关闭。 该功能不加密 DNS。
  • 自动。 手机尝试对网络的 DNS 服务器使用加密 DNS,不行就回退到普通 DNS。
  • 私人 DNS 提供商的主机名。 你输入某个解析器的主机名。只有该解析器支持 DNS over TLS,手机才会连接,否则查询会失败。这是最严格的模式。

VPN 连接时,有三点值得注意:

  • 你的 DNS 请求通常在 VPN 隧道内传输,这已经使本地网络看不到它们。
  • VPN 使用自己的 DNS 服务器还是系统的,取决于 VPN 应用;私人 DNS 与 VPN 如何相互作用,也可能因 Android 版本和厂商而异。不要想当然。
  • 如果你设置了严格的私人 DNS 主机名,开启 VPN 后查询立即失败,可能是 VPN 的 DNS 配置与之不兼容。改成自动,或在关闭私人 DNS 的情况下测试,就能知道是哪一部分引起了问题。

一个实用的做法:把私人 DNS 保持为自动,或设为你信任的服务商,在 VPN 关闭时使用,并在 VPN 开启时依靠它的隧道。然后在两种状态下各做一次 DNS 泄漏测试。如果你在 Android 上使用 XPASS,Android 设置指南介绍了如何安装 VPNclient 应用,并用 My Pass 页面显示的用户名和密码登录;Google 关于在 Android 上连接 VPN的页面则涵盖系统方面。

浏览器的 DNS 设置与 VPN

Firefox、Chrome 等浏览器可以独立于操作系统使用自己的 DoH。设置里它常被称为“安全 DNS”。启用后,浏览器可能把查询发给你选定的服务商,或自动选择的服务商,而不是使用系统的解析器。

在 VPN 连接的情况下,这会带来一些值得了解的影响:

  • 查询仍然加密。 它们通过 HTTPS 发给 DoH 服务商,开启 VPN 时,这个 HTTPS 连接也会经过隧道。
  • 解析器可能与 VPN 的不同。 DoH 服务商看到你的查询,来源是 VPN 服务器的地址。VPN 自己的解析器可能完全看不到这些查询。
  • 泄漏测试的结果可能不一样。 在浏览器里做的测试可能列出 DoH 服务商的服务器,而不是 VPN 的。这不一定是向你的网络运营商泄漏,但也不是你预期的结果。
  • 只影响浏览器。 其他应用继续使用系统或 VPN 的解析器。

如果你想让同一个解析器处理一切,就要有意识地选择:要么让 VPN 处理 DNS 并关闭浏览器的安全 DNS,要么保留浏览器设置并接受浏览器查询走另一条路径。两者都没有错,目标是知道实际用的是哪个。帮助指南 如何检查 VPN 是否在正常工作 会带你一步步做泄漏测试。

三个例子

校园网里的学生。 小蓓在大学 Wi-Fi 上使用笔记本。她在浏览器里开启安全 DNS,这样校园网读不到她的查询。她知道校园网仍能看到她连接了哪些地址,所以不会用它处理敏感事务。在咖啡馆做网银时,她再加上 VPN 作为第二层。

使用 Android 的旅行者。 卡里姆抵达新城市,连上机场网络。他把私人 DNS 保持为自动,并打开 VPN。VPN 覆盖了他所有的应用。他做了一次简短的 DNS 泄漏测试,看到查询是通过隧道发出的,而不是他平时的网络运营商。

在家远程办公的人。 小侬用家里的路由器办公。她在路由器和笔记本上设置了加密 DNS,因为主要风险是网络运营商读取查询。她只在其他地方办公时才开 VPN。她也明白自己选的解析器能看到她的查询,所以选了她读过隐私说明的那一个。

常见错误与局限

  • 以为 DoH 可以取代 VPN。 它只保护查询。你的 IP 和连接本身对网络依然可见。
  • 以为有了 VPN,浏览器的 DNS 设置就无关紧要。 它们可能改变实际应答的解析器。
  • 设置了严格的私人 DNS 主机名,查询失败时却怪 VPN。 请在关闭私人 DNS 的情况下测试。
  • 相信加密 DNS 就等于匿名。 解析器能看到你的查询,网站能看到你的 IP。
  • 同时调整多项 DNS 设置。 一次只改一项并测试,这样才知道哪一项起了作用。
  • 跳过泄漏测试。 设置页告诉你配置了什么,而不是实际发生了什么。
  • 无视法律和使用条款。 无论 VPN 还是加密 DNS,都不是绕开你所用网络或服务规则的手段。
  • 忘了 DNS 只是一层。 系统更新、强密码和双重验证同样重要。

总结

DNS over HTTPS 和 DNS over TLS 加密设备与解析器之间的 DNS 查询,做得既便宜又好。VPN 加密所有经过隧道的内容,并改变网站看到的 IP,但需要你信任服务商。两者解决的是不同的问题,因此是互补而非互换的关系。把加密 DNS 当作合理的默认设置,在不太信任的网络上加用 VPN,知道哪个解析器在回答你的查询,并用 DNS 泄漏测试来验证。

如果你需要在这些网络上使用 VPN,XPASS 价格页面展示了固定天数的通行证如何运作,不会自动续费。

常见问题

DNS over HTTPS 和 VPN 是一回事吗?

不是。DNS over HTTPS 只加密设备或浏览器与 DNS 解析器之间的 DNS 查询。VPN 则加密所有经过其隧道的流量,并改变网站看到的 IP 地址。DoH 不会改变你的 IP,也不会向你与目的地之间的网络隐藏你连接了哪些网站。

DNS over HTTPS 与 DNS over TLS 有什么区别?

两者都加密 DNS 查询。DNS over HTTPS(RFC 8484)把查询放进普通的 HTTPS,使用 443 端口,看上去与网页流量相似。DNS over TLS(RFC 7858)使用专用端口,通常是 853,网络更容易识别或管理它。Android 的私人 DNS 功能以 DNS over TLS 为基础。

用了 VPN 之后,Android 上还需要私人 DNS 吗?

不一定。VPN 连接期间,DNS 请求通常在加密隧道内传输,而私人 DNS 与 VPN 如何相互配合,取决于 Android 版本和 VPN 应用。关闭 VPN 时,比如在家里的 Wi-Fi 上,私人 DNS 仍然有用。可以做一次 DNS 泄漏测试,看实际使用的是哪个解析器。

浏览器的 DNS 设置会和 VPN 冲突吗?

可能会。如果浏览器启用了使用自己服务商的安全 DNS,它可能通过该服务商解析域名,而不是 VPN 的解析器。查询依旧加密,开启 VPN 时也仍经过隧道,但 DNS 泄漏测试可能显示出你没预期的解析器。

DNS over HTTPS 能让我匿名吗?

不能。它保护 DNS 查询内容不被本地网络读取,但你选的解析器仍能看到这些查询,你访问的网站仍能看到你的 IP,其他信号也仍可能显示目的地。本文的任何内容都不会让一次浏览变得匿名。

关于作者

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 泄漏?

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

阅读约 10 分钟

VPN 安全

HTTPS 与 VPN 的区别:各自保护什么

HTTPS 保护浏览器与网站之间的连接,VPN 保护设备与 VPN 服务器之间的路径。两者重叠的部分比很多人想象的要少。

阅读约 9 分钟

VPN 基础

VPN 究竟能保护什么?

VPN 在几个方面保护得很好:不可信网络上的流量、本地网络能看到的内容,以及网站记录的 IP 地址。本文梳理这些保护及其局限。

阅读约 9 分钟