常见问题解答

常规

什么是 Google 公共 DNS?

Google 公共 DNS 是一项免费的全球域名系统 (DNS) 解析服务, 您可以用作当前 DNS 提供商的替代选项。

Google 为何致力于提供 DNS 服务?

我们相信,一个更快、更安全的 DNS 基础架构可以显著改善 改善网络浏览体验。Google 公共 DNS 使得许多 改进结果的速度、安全性和有效性。 我们在 Google Ads 帮助中心 文档, 为网络社区中的持续对话做出贡献。

我可以使用 Google 公共 DNS 托管我的域名吗?

Google 公共 DNS 不是权威 DNS 托管服务,不能 用作一个对象。如果您要寻找大容量、可编程、权威的 域名服务器,请尝试使用 Google 的 Cloud DNS

Google 公共 DNS 是否提供屏蔽或过滤不需要的网站的功能?

Google 公共 DNS 是一种 DNS 解析和缓存服务器;它没有 任何类型的屏蔽或过滤(极少数情况下的特定网域除外) 其中:

  • 我们认为这是保护 Google 用户免受安全威胁的必要措施
  • 法律要求我们屏蔽一个或多个特定网域。(了解详情 位于屏蔽页面)。

但我们认为,屏蔽功能通常最好由 客户端。 如果您有兴趣启用此类功能, 为此,安装客户端应用或浏览器插件。

是否与 Google 公共 DNS 存在任何跨产品依赖关系?

Google 公共 DNS 是一项独立的服务。

我是否需要 Google 账号才能使用 Google 公共 DNS?

使用 Google 公共 DNS 不需要任何账号。

Google 公共 DNS 与我的 ISP 的 DNS 服务或其他开放式 DNS 解析器有何不同?如何判断是否更好?

开放式解析器和您的 ISP 都提供 DNS 解析服务。 我们邀请您将 Google 公共 DNS 作为主要或辅助 DNS 解析器试用 以及任何其他备用 DNS 服务。 在确定适用于特定操作系统的 DNS 解析器时 例如响应的速度、可靠性、安全性和有效性。 与 Google 公共 DNS 不同,有些 ISP 和开放解析器会阻止、过滤或 出于商业目的重定向 DNS 响应。另请参阅 Google 公共 DNS 是否提供 垃圾网站?问题。

Google 公共 DNS 如何处理不存在的网域?

如果您查询不存在的域名,Google 公共 DNS 根据 DNS 协议标准,始终返回 NXDOMAIN 记录。 浏览器应将此响应显示为 DNS 错误。 不过,如果您收到了错误消息以外的任何响应(例如, 您被重定向到其他网页),这可能是由以下原因造成的:

  • 客户端应用程序(如浏览器插件)正在显示备用 页面。
  • 某些 ISP 可能会拦截所有 NXDOMAIN 响应并将其替换为 连接到自己的服务器 如果您担心您的 ISP 会拦截 Google 公共 DNS 请求 请与 ISP 联系。

未来是否会使用 Google 公共 DNS 投放广告?

我们致力于维护 DNS 协议的完整性。 Google 公共 DNS 绝不会返回 网域不存在。

什么是 DNS-over-HTTPS (DoH)?

通过加密的 HTTPS 连接进行 DNS 解析。 基于 HTTPS 的 DNS 可极大地增强桩解析器之间的隐私性和安全性 和递归解析器,与 DNSSEC 相辅相成, 通过身份验证的 DNS 查找。

使用和支持

我目前正在使用其他 DNS 服务。我是否还可以使用 Google 公共 DNS?

您可以将 Google 公共 DNS 设置为主要或辅助 DNS 解析器, 以及您当前的 DNS 解析器。 请注意,操作系统对 DNS 解析器的处理方式有所不同: 一些首选使用主 DNS 解析器,仅在主要 DNS 解析器 而其他解析器会轮循各解析器。

如果配置的解析器在安全性或过滤方面存在差异, 在所有解析器中,您的安全级别或过滤级别是最低的。 有时,NXDOMAIN 过滤或重定向来屏蔽网页可能会起作用, 但 SERVFAIL 不会阻止域,除非所有解析器都返回 SERVFAIL。

Google 公共 DNS 是否适合所有类型的上网设备?

Google 公共 DNS 可在任何符合标准的网络设备上使用。 如果您发现任何无法正常使用 Google 公共 DNS 的情况, 请告诉我们。

我可以在办公计算机上运行 Google 公共 DNS 吗?

有些办事处的专用网络可让您访问 没法在工作外访问。 使用 Google 公共 DNS 可能会限制您对这些专用网域的访问权限。 请在您的 IT 部门使用 Google 公共 DNS 之前, 办公计算机。

在哪些国家/地区可以使用 Google 公共 DNS?

全球的互联网用户都可以使用它,但您的体验可能 会因您的具体位置而大不相同。

Google 公共 DNS 是否适用于所有 ISP?

Google 公共 DNS 应该适用于大多数 ISP(假设您有权更改) 您的网络 DNS 设置。

我需要同时使用这两个 Google 公共 DNS IP 地址吗?

只需使用其中一个 IP 地址, 地址。 不过,切勿将同一地址指定为主要和 辅助服务器

指定 IP 地址的顺序有影响吗?

顺序无关紧要。IP 可以是您的主要域名服务器,也可以是辅助域名服务器。

该服务的服务等级协议 (SLA) 是什么?

我们没有针对免费的 Google 公共 DNS 的服务等级协议 (SLA) 服务。

我正在运行 ISP。我可以将用户重定向到 Google 公共 DNS 吗?

想要使用 Google 公共 DNS 的 ISP 应遵循 互联网服务提供商说明,看看是否需要 在将查询发送到 Google 公共 DNS 之前的任何内容。

如何获取 Google 公共 DNS 团队的支持?

我们建议您加入我们的 Google 群组 ,从我们的团队获取有用的动态,并询问您的任何问题。 如果您遇到问题并想报告, 请参阅报告问题了解相关程序。

技术

Google 公共 DNS 如何确定将我的查询发送到何处?

任播路由将您的查询定向到最近的 Google 公共 DNS 服务器。 有关任播路由的详细信息,请参阅 维基百科条目

Google 公共 DNS 使用 DNS 根可用区中发布的域名服务器 (NS) 记录 和可用区,以查找 DNS 的名称和地址 对任何网域具有权威性的服务器其中一些域名服务器还 使用任播路由。

您的服务器目前位于何处?

Google 公共 DNS 服务器遍布全球。有两个答案 一个针对客户端,另一个针对 公共 DNS 会获得其返回给客户端的回答。

当客户端将查询发送到 Google 公共 DNS 时,这些查询会被路由到距离 用于通告所用任播地址(8.8.8.88.8.4.42001:4860:4860:: 中的 IPv6 地址)。投放广告的具体营业地点 这些任播地址会因网络条件和流量负载而发生变化, 包括几乎所有核心数据中心和边缘入网点 (PoP) 位于 Google 边缘网络中。

Google 公共 DNS 将查询从核心数据中心发送到权威服务器 和 Google Cloud 区域位置。 Google 发布了 Google 公共 DNS 可能会出于以下目的而使用的 IP 地址范围列表: 查询权威 DNS 服务器(未使用列表中的所有范围)。您 可用于在缺少 EDNS 客户端子网 (ECS) 的 DNS 查询中进行地理位置定位 数据,并配置 ACL 以允许来自 Google 公共 DNS 的更高查询率。

除此常见问题解答外,Google 还以 DNS“TXT”的形式发布了该列表记录。 Google 每周都会通过添加、修改和移除来更新这两个来源。 每个 IP 地址范围条目都包含最近机场的 IATA 代码。 GeoIP 数据或 ACL 的自动化功能应通过 DNS 获取这些数据,而不是通过爬取获取 此网页(请参阅下面的示例)。

Google 公共 DNS 用于发送查询的 IP 地址范围的位置

以编程方式获取位置数据

您可以用 JSON 文件提取地址范围:

curl https://www.gstatic.com/ipranges/publicdns.json

您可以使用以下 Python 脚本创建 IP 地址范围列表 供 Google 公共 DNS 用于向权威 DNS 服务器进行查询。

您也可以在 locations.publicdns.goog. 中以 TXT 记录的形式获得这些数据。 不过,数据大小意味着 DNS TXT 记录不再合适 格式。我们会将 TXT 记录替换为上述 JSON 格式的文件 。如果您使用的是 TXT 记录,请改用 JSON 文件 因为我们计划日后移除相应的 TXT 记录。

命令行

您可以使用 curljq 工具提取 Google 公共 DNS IP 指定 IP 地址范围

curl https://www.gstatic.com/ipranges/publicdns.json | jq '.prefixes[]  | .ipv4Prefix // .ipv6Prefix '

这需要满足以下条件:

Python

您可以使用以下 Python 脚本创建 IP 地址范围列表 由 Google 公共 DNS 使用。

#!/usr/bin/env python3
"""An example to fetch and print the Google Public DNS IP ranges."""

import ipaddress
import json
import urllib.request

publicdns_url = 'https://www.gstatic.com/ipranges/publicdns.json'


def read_url(url):
  try:
    s = urllib.request.urlopen(url).read()
    return json.loads(s)
  except urllib.error.HTTPError:
    print('Invalid HTTP response from %s' % url)
    return {}
  except json.decoder.JSONDecodeError:
    print('Could not parse HTTP response from %s' % url)
    return {}


def main():
  publicdns_json = read_url(publicdns_url)
  print('{} published: {}'.format(publicdns_url,
                                  publicdns_json.get('creationTime')))

  locations = dict()
  ipv4, ipv6 = set(), set()
  for e in publicdns_json['prefixes']:
    if e.get('ipv4Prefix'):
      ip = ipaddress.IPv4Network(e.get('ipv4Prefix'), strict=False)
      ipv4.add(ip)
    if e.get('ipv6Prefix'):
      ip = ipaddress.IPv6Network(e.get('ipv6Prefix'), strict=False)
      ipv6.add(ip)
    locations[ip] = e.get('scope')
  print('IP ranges used by Google Public DNS for contacting '
        'authoritative DNS servers:')
  for i in list(ipv4) + list(ipv6):
    print(i, locations[i])


if __name__ == '__main__':
  main()

对于 macOS,此脚本需要如下配置 Python 3 运行时:

  • 安装当前版本的 Python 3 运行时 适用于 macOS。
  • 从“应用程序”文件夹的 Python 文件夹中运行随附的 Install Certificates.command,以安装可供 Python 运行时使用的可信根证书列表 (cert.pem)。将 VERSION 替换为您安装的 Python 版本(例如 3.8)。
    sudo "/Applications/Python VERSION/Install Certificates.command"

Google 公共 DNS 是否基于开源软件(如 BIND)?

Google 公共 DNS 是 Google 自行实施的 DNS 标准。

Google 是否计划以开源软件的形式发布 Google 公共 DNS 代码?

目前,还没有计划开放 Google 公共 DNS 的源代码。 不过,我们详细说明了我们为提升速度、安全性和 和标准合规性

Google 公共 DNS 是否支持 IPv6?

Google 公共 DNS 为来自客户端的传入请求提供 IPv6 地址 并响应所有 IPv6 地址请求 返回 AAAA 记录(如果存在)。 我们完全支持仅支持 IPv6 的权威域名服务器。 有关 IPv6 解析器地址的说明, Google 公共 DNS 使用入门

请注意,您可能看不到 Google 网站的 IPv6 结果。 为了优化用户体验,Google 仅向客户提供 AAAA 记录 并且需要有效的 IPv6 连接 此政策完全独立于 Google 公共 DNS,由 Google 的权威域名服务器。 如需了解详情,请参阅 Google over IPv6 页面。

对于仅限 IPv6 的网络和系统,您可以使用 Google 公共 DNS64 包含 A 记录但没有 AAAA 记录的域名的合成 AAAA 记录。 这些合成的 AAAA 记录将仅限 IPv6 的客户端定向到 NAT64 网关 使用为 NAT64 服务预留的已知 IPv6 前缀。 只需按照使用入门说明配置您的系统即可, 将解析器地址替换为 DNS64 IPv6 配置

Google 公共 DNS 是否支持 DNSSEC 协议?

Google 公共 DNS 是一种用于验证安全意识的解析器。 除非客户端明确说明,否则来自 DNSSEC 签名区域的所有响应都会经过验证 在 DNS 请求中设置 CD 标志以停用验证。

如何确定我是否使用了 DNSSEC?

您可以访问 http://www.dnssec-failed.org/ 执行简单的测试。 此网站已专门配置为由于 身份验证链。 如果未出现错误,则说明您使用的不是 DNSSEC。

Google 公共 DNS 如何处理未通过 DNSSEC 验证的查询?

如果 Google 公共 DNS 无法验证响应(由于配置错误, RRSIG 记录缺失或不正确),则会返回错误响应 (SERVFAIL)。 但是,如果影响很大(例如某个非常热门的域未通过审核, 验证),我们可能会暂时停用区域验证,直到问题 已修复

如何找出指定网域未通过 DNSSEC 验证的原因?

Verisign Labs 的DNS Analyzer 和 Sandia National Laboratories' DNSViz 是两种 DNSSEC 可视化工具,显示 DNSSEC 和 任何网域的身份验证链 它们会显示发生损坏的位置,有助于查找 DNSSEC 失败。

Google 公共 DNS 提供的是旧数据。我可以强行刷新其数据吗?

您可以使用清空缓存工具刷新 Google 公共 DNS 缓存 。 您无需证明对网域的所有权即可清空网域, 但您必须解决限制自动滥用服务的 reCAPTCHA 问题。

刷新您注册或子委托的网域的任何记录类型 使用 NS 记录不仅会刷新该类型的缓存响应, 它还会刷新有关该网域的域名服务器的委托信息。 您最近更改域名服务器之后 (通过更改注册商或 DNS 托管服务提供商) 在刷新子网域(例如 www之前,请务必执行此操作。 这样它们就不会根据旧 DNS 服务器上的过时数据刷新。

如果 Google 公共 DNS 返回的应答包含过时的 CNAME 记录, 您需要刷新每个 CNAME 网域的 CNAME 记录类型 从链中的最后一条 CNAME 开始,然后使用查询的名称。 清空所有 CNAME 后,使用任何 使用过时的 CNAME 进行响应。

可刷新的内容存在一些限制:

  • 无法清空使用 EDNS 客户端子网 (ECS) 进行地理定位的网域 - 对于使用 ECS 的任何网域,请为已启用 ECS 的记录设置足够短的 TTL (不超过 15 分钟)即可。

  • 清空域名的所有子网域或所有记录类型的唯一方法是 清空每个要清空的域名的每个记录类型 如果这不可行,您可以随时等待记录 TTL 到期 (这些时间通常限制为 6 小时,即使实际 TTL 较长)。

  • 如需刷新国际化域名(例如 пример.example),请执行以下操作: 使用 Punycoding 形式(在上述示例中为 xn‑‑e1afmkfd.example)。 包含 ASCII 字母、数字、连字符或 请勿清空下划线。

Google 公共 DNS 是否会保护所谓的“最终点击”加密与客户的通信?

传统 DNS 流量通过 UDP 或 TCP 传输,无需加密。 我们还提供 DNS-over-TLSDNS-over-HTTPS,这两种方式分别加密 客户端与 Google 公共 DNS 之间的流量。 您可以尝试访问以下链接:https://dns.google

既然已经拥有 DNSSEC,为何还需要通过 HTTPS 使用 DNS?

DNS-over-HTTPS 和 DNSSEC 是相辅相成的。 Google 公共 DNS 使用 DNSSEC 对来自域名服务器的响应进行身份验证 。 但是,为了安全地验证传统的 UDP 或 TCP 响应, 来自 Google 公共 DNS,客户端将需要重复 DNSSEC 验证 本身,目前很少有客户端解析器这样做。 DNS-over-HTTPS 会对桩解析器和 Google Public 之间的流量进行加密 DNS 是对 DNSSEC 的补充,用于提供端到端经过身份验证的 DNS 查找。

是否有工具可用来测试 Google 公共 DNS 相对于其他 DNS 服务的性能?

我们提供了许多免费工具,可用于衡量 Google Public DNS 的响应时间。 我们建议使用 Namebench。 无论您使用什么工具,都应该针对大量的 (超过 5000 个),以确保具有显著的统计意义 结果。 虽然测试运行时间较长,但至少使用 5000 个网域可确保 因网络延迟(数据包丢失和重新传输)而导致的变化 同时确保 Google 公共 DNS 的大型缓存 锻炼。

如需在 Namebench 中设置网域数,请使用测试数 GUI 选项或 -t 命令行标志; 如需了解详情,请参阅 Namebench 文档

当我针对 Google 公共 DNS 解析器运行 pingtraceroute 时,响应延迟时间比其他服务的延迟时间长。这是否意味着 Google 公共 DNS 始终速度较慢?

除了 Ping 时间之外,您还需要考虑连接 解析一个名称。 例如,如果 ISP 的 ping 时间为 20 毫秒,但名称解析的平均值为 20 毫秒, 500 毫秒,则总体平均响应时间为 520 毫秒。 如果 Google 公共 DNS 的 ping 时间为 300 毫秒,但能在 1 毫秒内解析出许多名称, 整体平均响应时间为 301 毫秒。 为了更好地进行比较,我们建议您测试 大量网域。

Google 公共 DNS 如何与 CDN 地理位置搭配使用?

许多提供可下载或流式多媒体的网站托管其内容 (如 Akamai 等)基于 DNS 的第三方内容分发网络 (CDN)。 当 DNS 解析器向权威域名服务器查询 CDN 的 IP 地址时, 域名服务器会返回离 resolver,而不是用户。 在某些情况下,对于基于 ISP 的解析器以及公共解析器(如 Google 公共 DNS,因此该解析器可能离用户很近。 在这种情况下,浏览体验的速度可能会受到一定程度的减慢。 Google 公共 DNS 在这方面与其他 DNS 提供商没有不同。

为了帮助缩短 DNS 服务器与用户之间的距离,Google 公共 DNS 在世界各地部署了服务器 特别是,对于欧洲用户,应定向到 欧洲的用户应定向到亚洲的 CDN 服务器,亚洲的用户应定向到亚洲的 CDN 服务器 美国东部、中部和西部应定向到这些地区的 CDN 服务器 各个区域 我们还发布了 这些信息 以帮助 CDN 为多媒体用户提供良好的 DNS 结果。

此外,Google 公共 DNS 使用一种称为 EDNS 客户端子网(如相关) (位于 RFC 中)。这样,解析器就可以通过 客户端 IP 地址的一部分(IPv4/IPv6 的前 24/56 位或更短) 作为 DNS 消息中的来源 IP,这样域名服务器可以 根据用户所在的位置(而不是用户所在位置)返回经过优化的结果 解析器

隐私权

当我使用 Google 公共 DNS 服务时,Google 会记录哪些信息?

Google 公共 DNS 隐私权页面上提供了完整的信息列表, 收集的信息。 Google 公共 DNS 符合 Google 的主要隐私权政策, 请访问我们的隐私权中心

我们只会暂时记录您的客户端 IP 地址(会在一两天内清除), 但互联网服务提供商和城市/都市圈位置的相关信息会保留更长时间 使我们的服务更快速、更好、更安全。

收集到的信息是否会存储在我的 Google 账号名下?

存储的数据不会与任何 Google 账号相关联。

Google 是否会与 Google 以外的任何人分享从 Google 公共 DNS 服务中收集的信息?

否,除非在 Google 隐私权政策中所述的有限情况, 例如司法程序和强制性的政府要求。 (另请参阅 Google 关于用户数据披露要求的透明度报告。)

Google 是否将临时或永久日志中的信息与我向 Google 提供的其他服务的任何个人信息相关联或结合?

隐私权页面所述,我们不会将日志数据整合到 。