DNS over HTTPS:它是什么以及如何保护您的查询

最后更新: 十月22,2026
作者: 像素化
  • DoH 使用 HTTPS 对 DNS 查询进行加密,从而提高隐私性和安全性,防止窃听和篡改。
  • 它不等同于 VPN:它保护域名搜索,但不能保护所有流量或您的 IP 地址。
  • 它的部署具有性能优势,但也与家长控制、监控和审查存在冲突。

数据中心中的服务器,代表 DNS 服务器所在的架构。

当你输入网址时,后台有一个组件在运行,确保你访问的是正确的网站:域名系统 (DNS)。DNS将易于记忆的域名转换成计算机可以理解的 IP 地址。这确实很方便,但多年来它一直存在一个重大漏洞:这些查询以未加密的方式传输。这就是为什么 DNS over HTTPS(也称为 DoH)如此受欢迎的原因——它增加了一层额外的保护,使你的互联网服务提供商更难追踪你访问的域名。

首先需要澄清一点:DoH 可以提升 DNS 查询的隐私性,但它并非 VPN,也不会将您的整个连接变成一条秘密隧道。本文将深入探讨 DoH 的本质、其流行原因、如何在 Chrome、Edge 和 Firefox 中启用它、它的优缺点、它与 DNS over TLS 和 VPN 的区别,以及它在技术和实际应用中的局限性。

什么是 DNS?为什么传统系统无法满足需求?

DNS 服务器是几乎无人关注的组件之一,但它却是网络浏览的基础。其作用是将域名与相应服务器的 IP 地址关联起来。当您访问网站时,您的计算机无法识别字母:它需要 IP 地址才能知道要连接到哪台服务器。许多路由器都预装了由互联网服务提供商配置好的 DNS 服务器,这使得访问过程非常便捷,但也给控制该基础设施的人员留下了明显的痕迹。

根本问题在于传统的DNS查询以明文形式发送,没有任何保护措施。这使得窃听、中间人攻击和篡改响应成为可能。互联网服务提供商可以获知您查询的域名以及查询时间;共享网络上的攻击者可以尝试拦截请求并返回欺诈性响应。这种技术被称为DNS劫持,最终可能导致您访问虚假页面、垃圾广告或旨在窃取数据的网站。历史上,政府和互联网服务提供商也曾利用这些漏洞实施审查、屏蔽域名或投放额外广告。

  • 被动听话: 有人观察你的查询记录,推断出你经常使用哪些服务或网站。
  • 中间人攻击: 通信被拦截,响应被修改以冒充服务器。
  • 屏蔽和过滤: 它阻止某些域名的解析,以控制对内容的访问。

DNS over HTTPS:对查询进行加密,使其不被所有人看到。

用木块拼成“加密”一词,说明通过 HTTPS 对 DNS 查询进行加密。

DNS over HTTPS(简称 DoH)是一种利用 HTTPS 协议以加密形式传输 DNS 查询和响应的解决方案。它不会发送明文 DNS 请求,而是将其封装在安全连接中,通常使用 443 端口(安全网站使用的端口)。这样可以保护查询和响应,防止外部人员轻易读取它们。

要实现这一点,被查询的 DNS 服务器也必须支持基于域的 DNS (DoH )。仅仅在浏览器中启用一个选项是不够的:所选的解析器必须符合此标准。该规范一直在不断发展,目前仍被视为一项新兴技术,尽管自 2018 年以来,谷歌和 Mozilla 基金会等公司一直在对其进行测试和集成。除了提高隐私性之外,测试表明 DoH 还可以降低延迟并加快查询速度,因为它并非总是需要解析整个域,而只需解析所需的最小部分即可。

DoH的优势:更高的隐私性、更少的操控性和更好的性能

最明显的优势在于安全性。由于 DNS 查询经过加密传输,因此很难被窥探或篡改。这增加了中间人攻击的难度,降低了在公共 Wi-Fi 网络上的风险,并防止本地运营商清楚地看到您正在请求哪些域名。由于 DoH 流量使用 443 端口,因此它与其他 HTTPS 连接混杂在一起,难以与普通的网络访问区分开来。

此外,还有性能方面的考量。DoH可以通过改变域名解析方式和更有效地利用缓存来降低延迟并加快 DNS 通信速度。例如,某些 API 的 GET 方法经过优化,可以更高效地进行缓存。实际上,这可以带来略微更快的浏览速度,虽然它并非万能灵药,而且这种提升也并非总是显而易见。此外,由于 DoH 是在浏览器中实现的,用户无需等待互联网服务提供商激活它。

缺点与争议:加密技术何时让生活变得复杂

并非所有人都对基于域名的加密 (DoH) 持积极态度。这种加密方式在保护用户的同时,也增加了网络监控的难度。许多家长控制程序依赖于检查 DNS 查询来确定孩子试图访问哪些网站;而 DoH 使得这项任务变得更加复杂,甚至可能根本无法完成。企业网络管理员也面临着类似的情况,他们无法了解哪些域名正在被查询,也无法像以前那样轻松地执行某些规则。

互联网服务提供商也失去了监控访问和应机构要求屏蔽特定域名的能力。这引发了一场合理的争论:一些人认为这是隐私的胜利,而另一些人则认为这是一个控制和管理问题。以DoT为例,它还因使用自身易于识别的端口而受到批评,这使得即使不知道具体请求内容,也能识别出DNS查询。DoH通过伪装在HTTPS流量中来避免这种明显的信号,但作为代价,网络管理员用于管理通信的工具也相应减少。

如何在 Chrome、Edge 和 Firefox 中启用 DoH

双手在笔记本电脑上打字,屏幕上显示网络安全图形,代表浏览器中的卫生部设置。

在现代浏览器中启用域名系统 (DNS) 通常很简单,尤其是在基于 Chromium 或 Firefox 的浏览器中。虽然有些浏览器的高级设置菜单中可能隐藏着此选项,但实际上它一直都存在。在进行任何更改之前,务必了解浏览器仅保护自身的 DNS 查询:如果设备上的其他应用程序未在系统级别进行配置,则它们可能仍然使用不同的 DNS 系统。

  双通道内存故障的解决方案

Google Chrome

在 Chrome 浏览器中,快捷方法是输入 chrome://flags/#dns-over-https 在地址栏中。 这样就能直接进入 Chrome 的实验性功能或功能页面。你会看到一个名为“安全 DNS 查询”的选项已选中;点击标有“默认”的下拉菜单,然后选择“启用”。之后,你需要重启浏览器才能使更改生效。

微软边缘

在基于 Chromium 的 Edge 浏览器中,该过程几乎完全相同。 打开浏览器并输入 edge://flags/#dns-over-https 在搜索栏中进入 Edge 浏览器的“设置”页面,即可看到“安全 DNS 查询”选项。将“默认值”更改为“启用”,并在提示时重启浏览器。

Mozilla Firefox浏览器

在 Firefox 中,无需进入“实验性功能”设置。点击右上角的菜单按钮,然后选择“选项”。在“常规”部分,滚动到最底部,点击“网络设置”。在弹出的窗口中,勾选“启用 HTTPS 上的 DNS”旁边的复选框。之后,您可以选择 Cloudflare 和 NextDNS 等服务提供商,通过 HTTPS 进行加密。

DNS over TLS (DoT):另一种加密路径

DNS over TLS(简称 DoT)是另一种保护 DNS 查询的方式。它不使用 HTTPS,而是通过 TCP 连接和标准端口 853 使用 TLS 加密。TLS与 HTTPS 的安全基础相同,因此其原理类似:创建一个加密隧道,只有连接双方才能解密和处理信息。这使得中间人攻击更加困难,并防止第三方读取或篡改查询。

DotT 具有诸多优势,尤其与不提供任何安全措施的传统 DNS 相比。加密技术可以防止网络犯罪分子拦截请求,并能有效抵御某些审查措施。然而,它要求客户端和服务器都具备兼容性。虽然一些服务商提供兼容的服务器,但在台式机或笔记本电脑上使用通常需要安装额外的软件;而从 Android 9 开始,Android 系统已经集成了 DotT 功能。Windows 和 Linux 系统也有相应的解决方案,但它们的易用性可能不如用户预期。

许多数据保护专家批评DoT使用单一且易于识别的端口,认为这是其诸多缺点之一。虽然无法得知用户正在访问哪个网站,但却可以检测到DNS流量。对于一些网络管理员来说,这很有用,因为它能让他们掌握网络活动的全貌;而对于另一些管理员来说,这则信号他们宁愿隐藏。此外,DoT的普及程度远不及传统DNS,其服务器端应用也有限。人们担心,少数几家公司会日益集中DNS查询,从而可能形成某种国际垄断。

卫生部与交通部:保护同一事物的两种方式

DoH 和 DoT 的主要区别在于端口以及流量伪装方式。DoT使用其专属端口 853,而 DoH 使用 443 端口,并与普通的 HTTPS 连接混为一谈。这一看似微小的差异引发了广泛的讨论。从隐私角度来看,DNS 查询与其他流量的不可区分性是一项优势:如果它们不被识别,就不容易被操纵。然而,从网络管理角度来看,控制权的丧失使得安全或过滤策略的实施变得更加困难。

从本质上讲,存在两种不同的愿景。互联网工程任务组 (IETF) 是众多互联网标准的制定者,它支持 DoT(隐私保护),而谷歌和 Mozilla 基金会则大力推广 DoH(隐私保护)。这两种技术并非相互对立,而是代表了对隐私、网络可见性和中介机构角色的不同理解。选择哪一种取决于需要保护的内容以及网络的管理者。

DoH 与 VPN:它保护的是问题本身,而不是整个旅程。

使用平板电脑和 VPN 应用的用户,比较 DoH 与 VPN 的隐私保护效果。

在讨论隐私问题时,DoH 和 VPN 经常被提及,但它们的功能并不相同。DoH保护的是名称查询;而 VPN 保护的是数据的传输路径。最简单的理解方式是,DoH 就像把敏感问题装进一个密封的信封里,而 VPN 则让整个数据传输过程先经过一条私密的隧道,然后再回到公共道路上。两者都能提升隐私保护,但只有 VPN 能够全面保护手机、平板电脑和计算机的流量。

网站加载之前,DNS 会做什么?

在浏览器加载网站之前,您的设备需要知道其位置。DNS的工作原理类似于电话簿,将网站名称转换为 IP 地址。这个过程无时无刻不在发生:当您打开网页、启动应用程序、更新电子邮件或播放视频时。大多数情况下,这个过程悄无声息地进行,您不会注意到,这固然方便,但也容易让人忽略其隐私问题。传统的 DNS 查询没有加密,因此您的互联网服务提供商、您的雇主、您的学校、咖啡馆的 Wi-Fi 或酒店网络都可以看到您的设备正在尝试访问哪些域名。他们虽然看不到 HTTPS 页面的完整内容,但确实可以大致了解您的网络活动。

DNS 查询并不会泄露你浏览过的所有页面或你在表单中输入的所有内容,但域名列表却可能暴露你的习惯、兴趣、工作工具、健康研究或金融服务。正因如此,加密 DNS 已成为一项实用的隐私保护功能。它虽然不会泄露所有信息,但其泄露的内容远超许多人的想象。

卫生部隐瞒了什么,又揭示了什么?

DoH 通过 HTTPS 发送 DNS 查询,HTTPS 是安全网站使用的加密协议。请求从您的设备发出时是加密的,并到达支持该标准的解析器。在公共 Wi-Fi 网络上,这可以有效防止网络运营商无意中读取您的查询。如果您的互联网服务提供商管理 DNS,切换到 DoH 解析器可以防止他们以通常的方式看到这些查询。此外,如果网络篡改名称解析结果,加密的 DNS 可以减少某些形式的篡改。

  高性能测试数据系统的设计

现在,DoH 隐藏的是域名查询,而不是整个通信过程。它或许能阻止一些观察者清楚地看到域名查询,但并不会将你的整个互联网连接变成加密隧道。一旦设备获知了 IP 地址,连接的其余部分就会按照正常路径进行,除非有其他隐私工具更改了路径。DoH 不会对你连接的网站、应用或服务隐藏你的真实 IP 地址,也不会让你看起来像身处其他城市或国家。如果你登录了某个帐户,该服务仍然知道是你本人。如果浏览器有 cookie、已保存的会话、广告标识符或可识别的指纹,DoH 也不会删除这些信号。

除非在系统级别进行配置且应用程序遵循该设置,否则 DoH 并不能保护所有应用程序。例如,一个浏览器可能使用安全 DNS,而同一设备上的另一个应用程序可能使用不同的 DNS 路径。有些应用程序管理自己的网络,并且并不总是与系统或浏览器设置保持一致。因此,DoH 可能会造成一种完全安全的错觉:它提高了 DNS 查询的隐私性,但无法像 VPN 那样保护文件传输、即时通讯、视频通话、游戏连接、后台同步或流媒体应用程序。

笔记本电脑上带有安全挂锁图标,象征着在卫生部的支持下,您可以安全私密地浏览网页。

VPN能保护哪些内容,又无法隐藏哪些内容?

VPN 保护的是您网络访问的不同方面。它会在您的设备和 VPN 服务器之间建立一条加密隧道,将您的网络流量路由到该服务器。您的互联网服务提供商或本地 Wi-Fi 网络看到的是与 VPN 服务器的加密连接,而不是您连接的每个网站和服务的清晰视图。此外,VPN 还会更改网站和应用程序看到的公共 IP 地址:目标网站看到的不是您的家庭或移动运营商的 IP 地址,而是 VPN 服务器的 IP 地址。这可以减少基于位置的追踪,帮助您绕过某些 ISP 的隐私设置,并使使用公共 Wi-Fi 更加安全。

功能全面的 VPN 可以保护浏览器、流媒体应用、电子邮件客户端、云备份工具、即时通讯应用、游戏和后台服务。正确配置后,它还可以将 DNS 请求路由到加密隧道,因此进行 DNS 泄漏测试非常重要。话虽如此,VPN 并非万能。如果您登录社交网络、电子邮件帐户、流媒体服务或在线商店,该服务仍然知道您的身份。它可以隐藏您的原始 IP 地址,但无法匿名化您的登录信息。同样,您直接发送的任何内容也存在同样的问题:您的姓名、电子邮件地址、付款信息、收货地址、照片或消息。

Cookie 和浏览器指纹仍然至关重要。应用程序可以通过广告标识符、权限、位置访问、蓝牙扫描、附近 Wi-Fi 名称和扫描工具等方式造成类似的问题。恶意软件是另一个棘手的难题,因为它甚至可以在数据到达 VPN 通道之前就将其捕获。简而言之,VPN 可以隐藏和加密大量活动,但它并不能掩盖所有的数字指纹。

DoH 和 VPN 可以同时使用。

是的,它们可以结合使用,但理想的设置取决于设备、浏览器和 VPN 应用如何处理 DNS。在很多情况下,最简单的解决方案是让 VPN 处理 DNS。一个好的应用应该通过加密隧道发送 DNS 查询,这样你的 ISP 就不会直接收到这些查询。这样,你就可以在 VPN 连接中获得 DNS 隐私保护,而无需单独调整浏览器设置。

当浏览器使用自身的域名授权 (Domain Authority,DoH) 配置,而 VPN 尝试在系统级别管理 DNS 时,就会出现问题。虽然可能不会出现什么故障,但确实会造成混乱:您可能认为所有查询都通过 VPN,但实际上,浏览器会将部分查询发送到其他解析器。这时,DNS 泄漏测试就派上用场了。如果在连接 VPN 后,您看到的是 ISP 的 DNS 服务器,则说明某些功能未按预期工作;如果看到的是与 VPN 关联的服务器,则配置很可能工作正常。

何时 DoH 就足够了,何时建议使用 VPN?

如果您主要关注的是浏览器中 DNS 查询的基本隐私,那么 DoH 就足够了。在受信任的家庭网络中,启用安全 DNS 可以减少明文泄露,而无需您更改位置或保护所有应用程序。在存在 DNS 过滤或篡改风险的网络中,它也很有用,因为通过 HTTPS 传输数据会大大增加被检查或修改的难度。但这并不意味着它能绕过所有限制或完全防审查,但它比未加密的 DNS 有了显著的改进。此外,它非常轻量级:您无需选择 VPN 服务器或大幅更改路由,通常也不会感觉到速度有明显变化。

当您需要设备级保护,而不仅仅是DNS查询时,VPN是最明智的选择。这包括机场、酒店、学校、联合办公空间、咖啡馆和租赁住宿等场所。在共享网络中,您无法得知谁控制着路由器、还有哪些设备连接,或者是否有人试图拦截流量。如果您不希望您的网络服务提供商 (ISP) 建立您的浏览习惯档案,VPN也能提供帮助:即使HTTPS保护了页面内容,网络元数据仍然可以揭示有用的模式。旅行是另一个明显的例子:VPN可以使您的连接更加稳定,保护您在陌生网络中的安全,并让网站看到VPN服务器的位置,而不是您临时的本地连接。

Google 公共 DNS DoH API 的技术细节

Google 公共 DNS 提供两种不同的 DoH API。一种是为 RFC 8484 设计的,接受 GET 和 POST 请求,地址为 https://dns.google/dns-query;另一种是 JSON API,仅支持 GET 请求,地址为 https://dns.google/resolve。此外,还有一个 Web 界面 https://dns.google/,可在浏览器中显示 JSON 结果,但它并未实现完整的 API。请勿将此界面与 API URL 或 https://dns.google/query 混淆。该服务不支持不安全的 HTTP URL,Google 的公共 DNS64 服务也支持 DoH,但仅支持 IPv6。Google 的安全传输文档包含 curl 示例以及关于 TLS、DoT 和 DoH 的详细信息。

  如何在日常数字生活中压缩文件而不损失质量

可用的 HTTP 方法

GET 方法可以降低延迟,因为它缓存效率更高。RFC 8484 GET 请求必须包含一个 `?dns=` 参数,其中包含 Base64Url 编码的 DNS 消息,并且它是 JSON API 唯一支持的方法。POST 方法也仅在 RFC 8484 中可用,它使用二进制 DNS 消息,请求和响应体中都包含 `application/dns-message`。HEAD 方法目前不受支持,会返回 400 Bad Request 错误。其他方法会返回 501 Not Implemented 错误。

状态码和错误

API 会返回几个值得了解的 HTTP 状态码。200 OK 表示 HTTP 解析和与 DNS 解析器的通信成功;响应体可以是二进制 DNS 响应或 JSON,具体取决于端点、Accept 标头和 GET 参数。注意:HTTP 错误也可能是 DNS 解析失败,因此建议检查 DNS 响应状态码,例如 JSON 的“Status”字段,以查找 SERVFAIL、FORMERR、REFUSED 或 NOTIMP 等错误。

  • 301 永久迁移: 客户端必须在 Location 中指定的 URL 处重试请求。如果原始请求是 POST 请求,则只有当新 URL 指定了 DNS 参数时,才应使用 GET 请求重试;否则,必须使用 POST 请求重试。也可能出现 302、307 和 308 状态码,DoH 客户端必须处理所有这四个状态码。永久的 301 和 308 状态码可以无限期缓存。收到 307 或 308 状态码的 POST 请求必须始终使用 POST 请求重试。
  • 400错误请求: 解析 GET 参数或无效 DNS 请求消息时出现问题。大多数无效 DNS 消息会收到带有 FORMERR 的 200 OK 响应,但对于缺少问题部分、包含指示响应的二维码或包含无意义代码组合的不可读消息,则会发生 HTTP 错误。
  • 413 有效载荷过大: POST RFC 8484 请求的正文超过了 512 字节的最大消息大小。
  • 414 URI 过长: GET 查询标头过大或 dns 参数超过 512 字节。
  • 415 不支持的媒体类型: POST 请求体缺少内容类型标头 application/dns-message。
  • 429 请求过多: 在给定时间内发送的请求过多。客户端必须等待 Retry-After 标头中指定的时间。
  • 500内部服务器错误: 卫生部服务内部错误。
  • 501 未实施: 目前仅实现了 GET 和 POST 请求;其余请求均返回此错误。
  • 502 Bad Gateway: DoH 服务无法与 Google 公共 DNS 解析器通信。尝试使用其他地址或许可行,但更有效的备用方案是尝试其他 DoH 服务,或切换到使用 UDP 或 TCP 协议的传统 DNS 服务,地址为 8.8.8.8。

隐私和性能方面的最佳实践

DoH 应用开发者应限制 HTTP 标头的使用。Cookie 、User-Agent 和 Accept-Language 等标头可能会泄露客户端实现信息,从而导致去匿名化。建议仅发送 DoH 所需的标头:Host、Content-Type(用于 POST 请求)以及必要时的 Accept。User-Agent 标头应包含在开发或测试版本中。此外,建议使用 EDNS 填充选项将查询缩短到常用长度,从而增加流量分析的难度。HTTP/2 填充虽然可行,但与 EDNS 填充不同,它不会在 DoH 服务器响应中生成填充。

RFC 8484 中的 POST 方法仅应在对隐私要求较高的应用程序或浏览器模式下使用。使用 POST 会降低缓存容量并可能增加延迟,因此通常不建议使用。但是,对于希望防止旨在发现用户最近访问过的域名的 Web 应用程序同步攻击的应用程序来说,减小缓存大小可能是明智之举。HTTPS 方法也具有诸多实际优势:HTTPS API 广泛可用且受支持,简化了实现;HTTPS 服务使 Web 应用程序能够访问所有类型的 DNS 记录,从而避免了浏览器或操作系统 API 通常仅限于主机到地址查找的限制;使用 QUIC 通过 UDP 实现 HTTPS 的客户端可以避免 TCP 中常见的行头阻塞等问题。如果您遇到错误或想要请求新功能,请通过常用渠道报告与 DoH 相关的问题。

关于DoH和VPN的常见问题

最常见的问题之一是,在使用 VPN 的情况下,是否还有必要使用 DoH。理论上可行,但最实际的做法通常是让 VPN 处理 DNS,并通过泄漏测试验证查询是否通过正确的通道。如果浏览器发送自己的查询,而 VPN 发送的查询却来自另一个方向,那么你可能会遇到一些意想不到的问题。

另一个常见问题是 DoH 是否能阻止您的互联网服务提供商 (ISP) 看到您访问的网站。DoH 可以对许多观察者隐藏 DNS 查询,但它并不会删除所有元数据或隐藏您的 IP 地址:您的 ISP 仍然可以看到您连接的 IP 地址和其他网络信息。为了获得更全面的保护,您需要使用 VPN 或结合多种隐私保护措施。

此外,还值得探讨一下 DomainHost (DoH) 在公共 Wi-Fi 环境下是否足够安全。它可以帮助防止网络运营商轻易读取你的 DNS 查询,但并不能保护整个连接或所有应用程序的流量。在机场、酒店和咖啡馆等场所,使用 VPN 通常更为全面,尤其是在你不清楚路由器控制者是谁或是否有其他人连接的情况下。

域名系统 (DoH) 和 VPN 并非直接的竞争对手,而是功能不同的工具。DoH加密域名查找过程,降低该环节的暴露风险;VPN 则加密设备与服务器之间的路径,并更改目标用户看到的 IP 地址。两者都不能让你完全隐身:账户、Cookie、浏览器指纹、应用权限、恶意软件以及你直接分享的任何数据仍然可以识别你的身份。但这并不意味着它们毫无用处。这只是意味着它们各有其用。DoH 保护地址查找过程;而 VPN 则保护你数据传输路径的更多环节。