15%

全场主机优惠15%

测试技能,享折扣

使用代码:

Skills
开始使用
09.10.2024

如何配置网络设置以使用 Google Public DNS

Google Public DNS 是由 Google 运营的免费全球分布式域名系统解析器,主要地址为 8.8.8.8,备用地址为 8.8.4.4。将您的 ISP 默认 DNS 服务器替换为这些地址,可以降低 DNS 查询延迟、增强解析器对缓存投毒攻击的防御能力,并消除因区域性 ISP 故障导致的单点故障。

本指南涵盖 Windows、macOS、Linux 及网络路由器上的完整配置流程,包括永久持久化技术、IPv6 地址、验证命令,以及大多数教程所忽略的常见陷阱。

Google Public DNS 的实际作用

当您在浏览器中输入域名时,操作系统会向 DNS 解析器发送查询请求。该解析器将人类可读的主机名转换为可路由的 IP 地址。默认情况下,此解析器由您的 ISP 通过 DHCP 分配——而 ISP 解析器通常速度较慢、安全性较低,有时还会被用于流量拦截或广告注入。

Google Public DNS 运营着一个覆盖全球多个接入点的 anycast 网络。每个查询由最近的可用节点响应,从而最大限度地减少往返时间。Google 还实现了 DNSSEC 验证DNS-over-HTTPS (DoH)DNS-over-TLS (DoT)——这些协议对 DNS 查询通道进行加密,防止路径上的攻击者读取或篡改您的查询。

Google Public DNS 地址(IPv4 和 IPv6)

协议主要备用
———-——————–
IPv48.8.8.88.8.4.4
IPv62001:4860:4860::88882001:4860:4860::8844

如果您的网络栈为双栈(IPv4 + IPv6),请同时配置两行。若 IPv6 DNS 仍指向您的 ISP,而 IPv4 使用 Google,则会产生不对称的解析行为,可能导致 AAAA 记录查询出现间歇性故障。

Google Public DNS 与其他公共解析器的对比

解析器主要 IPv4DNSSECDoHDoT隐私政策
Google Public DNS8.8.8.8日志在 24–48 小时后匿名化
Cloudflare DNS1.1.1.125 小时后不保留查询日志
Quad99.9.9.9屏蔽恶意域名
OpenDNS (Cisco)208.67.222.222保留日志,可过滤
ISP 默认各异极少极少极少各异,通常不透明

关键见解:对于北美和西欧的家庭用户,Cloudflare 的 1.1.1.1 在平均查询时间基准测试中持续领先。Google 的 8.8.8.8 在亚太地区和拉丁美洲往往表现更优,这得益于 Google 更广泛的基础设施覆盖。在确定使用任何解析器之前,请在您的具体网络上运行 `namebench` 或 `DNS Benchmark`。

在 Windows 上配置 Google Public DNS

第一步:打开网络适配器设置

  1. 按 `Win + R`,输入 `ncpa.cpl`,然后按 Enter。这将直接打开网络连接,无需通过控制面板导航。
  2. 或者:控制面板 > 网络和共享中心 > 更改适配器设置

第二步:访问 IPv4 属性

  1. 右键单击活动适配器——以太网Wi-Fi——然后选择属性
  2. 在组件列表中滚动,选择Internet 协议版本 4 (TCP/IPv4),然后单击属性

第三步:输入 Google DNS 地址

  1. 选择使用以下 DNS 服务器地址
  2. 设置:
  • 首选 DNS 服务器: `8.8.8.8`
  • 备用 DNS 服务器: `8.8.4.4`
  1. 单击确定,然后单击关闭

第四步:配置 IPv6 DNS(推荐)

Internet 协议版本 6 (TCP/IPv6) 重复上述步骤:

  • 首选 DNS 服务器: `2001:4860:4860::8888`
  • 备用 DNS 服务器: `2001:4860:4860::8844`

第五步:刷新 DNS 缓存并验证

管理员身份打开命令提示符并运行:

“`cmd

ipconfig /flushdns

nslookup google.com

“`

`nslookup` 的输出应显示 `Server: dns.google` 和 `Address: 8.8.8.8` 或 `8.8.4.4`。如果仍显示您 ISP 的解析器地址,则说明适配器更改未生效——请确认没有 VPN 或第三方 DNS 客户端(例如 DNSCrypt-proxy)正在覆盖系统解析器。

注意事项:Windows 11 在操作系统层面引入了 DNS-over-HTTPS。要启用它,请前往设置 > 网络和 Internet > [适配器] > DNS 服务器分配 > 编辑,将 DNS 设置为手动,输入 `8.8.8.8`,并将 DNS over HTTPS 下拉菜单设置为开启(自动模板)。若不执行此步骤,即使使用 Google 服务器,查询仍将以明文传输。

在 macOS 上配置 Google Public DNS

第一步:打开网络设置

  • macOS Ventura 及更高版本:系统设置 > 网络
  • macOS Monterey 及更早版本:系统偏好设置 > 网络

第二步:选择活动接口

从侧边栏选择 Wi-Fi以太网,然后单击详细信息(Ventura 及更高版本)或高级(旧版本)。

第三步:配置 DNS 服务器

  1. 导航至 DNS 选项卡。
  2. 单击 DNS 服务器列表下方的 + 按钮。
  3. 添加 `8.8.8.8`,然后添加 `8.8.4.4`。
  4. 对于 IPv6:添加 `2001:4860:4860::8888` 和 `2001:4860:4860::8844`。
  5. 单击确定,然后单击应用

第四步:刷新 macOS DNS 缓存并验证

“`bash

sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder

nslookup google.com

“`

注意事项:macOS 遵循列表中 DNS 服务器的顺序。如果您有一个企业 VPN 配置文件在第 1 位注入了自己的 DNS 服务器,则您的 Google DNS 条目在分割隧道域名上将被降低优先级。如果在受管设备上解析行为异常,请检查系统设置 > VPN > DNS

在 Linux 上配置 Google Public DNS

Linux 的 DNS 配置因发行版、init 系统和网络管理守护进程的不同而存在显著差异。以下三种不同方法涵盖了大多数实际部署场景。

方法一:NetworkManager(图形界面——大多数桌面发行版)

  1. 打开设置 > 网络
  2. 单击活动连接旁边的齿轮图标。
  3. 转到 IPv4 选项卡,将 DNS 设置为手动,然后输入:
  • `8.8.8.8, 8.8.4.4`
  1. IPv6 选项卡上重复上述步骤,输入 `2001:4860:4860::8888, 2001:4860:4860::8844`。
  2. 关闭并重新开启连接以应用更改。

方法二:通过 nmcli 使用 NetworkManager(无界面服务器)

这是适用于 VPS 托管环境或任何运行 NetworkManager 的无界面 Linux 服务器的正确方法:

“`bash

Identify the active connection name

nmcli connection show

Set DNS servers (replace "Wired connection 1" with your connection name)

nmcli connection modify "Wired connection 1" ipv4.dns "8.8.8.8 8.8.4.4"

nmcli connection modify "Wired connection 1" ipv4.ignore-auto-dns yes

nmcli connection modify "Wired connection 1" ipv6.dns "2001:4860:4860::8888 2001:4860:4860::8844"

nmcli connection modify "Wired connection 1" ipv6.ignore-auto-dns yes

Apply changes

nmcli connection up "Wired connection 1"

“`

`ipv4.ignore-auto-dns yes` 标志至关重要——若不使用它,每次租约续期时,您的 ISP 或托管服务商通过 DHCP 推送的 DNS 将覆盖您的手动条目。

方法三:Netplan(Ubuntu 18.04+ 和 Debian 12+)

在使用 systemd-networkd 或通过 Netplan 使用 NetworkManager 的系统上:

“`bash

sudo nano /etc/netplan/00-installer-config.yaml

“`

添加或修改 DNS 块:

“`yaml

network:

version: 2

ethernets:

eth0:

dhcp4: true

nameservers:

addresses:

  • 8.8.8.8
  • 8.8.4.4
  • 2001:4860:4860::8888
  • 2001:4860:4860::8844

“`

应用配置:

“`bash

sudo netplan apply

“`

方法四:直接编辑 /etc/resolv.conf(旧版系统/容器)

“`bash

sudo nano /etc/resolv.conf

“`

“`

nameserver 8.8.8.8

nameserver 8.8.4.4

options edns0 trust-ad

“`

重要警告:在大多数现代发行版中,`/etc/resolv.conf` 是由 `systemd-resolved` 或 NetworkManager 管理的符号链接。直接编辑的内容会在重启或网络重启时被覆盖。要通过 `systemd-resolved` 使更改永久生效:

“`bash

sudo nano /etc/systemd/resolved.conf

“`

“`ini

[Resolve]

DNS=8.8.8.8 8.8.4.4

FallbackDNS=2001:4860:4860::8888 2001:4860:4860::8844

DNSSEC=yes

DNSOverTLS=yes

“`

“`bash

sudo systemctl restart systemd-resolved

“`

在 Linux 上进行验证

“`bash

resolvectl status # systemd-resolved systems

cat /etc/resolv.conf # confirm symlink target

nslookup google.com

dig google.com @8.8.8.8 # force query to Google DNS directly

“`

带有 `@8.8.8.8` 参数的 `dig` 命令比 `nslookup` 更可靠,可用于验证解析器本身是否可达并返回正确答案。

在路由器上配置 Google Public DNS

路由器级别的 DNS 配置通过 DHCP 将设置传播到网络上的每台设备,是家庭或小型办公室最高效的方法。当管理多台设备时(包括不提供 DNS 设置的物联网硬件),这也是推荐的方法。

第一步:访问路由器管理面板

打开浏览器并导航至路由器的网关 IP:

  • 常见地址:`192.168.1.1`、`192.168.0.1`、`10.0.0.1`
  • 如果不知道,请运行 `ipconfig`(Windows)或 `ip route | grep default`(Linux/macOS),并记录默认网关

使用管理员凭据登录。如果从未更改过,请查看路由器机身上的标签。

第二步:找到 DNS 设置

根据固件不同,DNS 设置通常位于以下菜单路径之一:

  • WAN 设置 > DNS
  • 互联网 > DNS 服务器
  • 高级 > DHCP 服务器 > DNS
  • LAN > DHCP 设置 > DNS

某些路由器将 WAN DNS(路由器本身用于出站查询)与 DHCP DNS(推送给客户端)分开。如果两者都存在,请同时配置。

第三步:输入 Google DNS 地址

  • 主 DNS: `8.8.8.8`
  • 备用 DNS: `8.8.4.4`

保存并重启路由器。

第四步:验证客户端解析

在任何已连接的设备上运行:

“`bash

nslookup google.com

“`

确认 `Server` 字段显示 `8.8.8.8` 或 `8.8.4.4`。如果显示路由器的局域网 IP(例如 `192.168.1.1`),则说明路由器充当 DNS 代理——它将查询转发给 Google,但在本地显示为解析器。这是大多数消费级路由器的正常行为,并不表示配置有误。

注意事项:某些 ISP 使用 DNS 劫持——无论您配置了什么 IP,它们都会拦截 UDP 端口 53 的流量并将所有 DNS 查询重定向到自己的服务器。如果 `nslookup` 在更改设置后仍持续返回您 ISP 的解析器地址,请尝试使用 DNS-over-HTTPS 或 DNS-over-TLS,它们分别运行在不同的端口(443 和 853),更难被拦截。

启用加密 DNS:DoH 和 DoT

在没有加密的情况下配置 `8.8.8.8`,意味着查询通过 UDP 端口 53 以明文传输——路径上的任何观察者都可以读取。对于生产环境,特别是在独立服务器或任何处理敏感工作负载的基础设施上,强烈建议使用加密 DNS。

方法端口传输协议客户端支持
DNS-over-HTTPS (DoH)443HTTPS/TLS浏览器、Windows 11、Android、iOS
DNS-over-TLS (DoT)853TLSAndroid 9+、systemd-resolved、Unbound
DNS-over-QUIC (DoQ)853QUIC实验性,AdGuard DNS
普通 DNS53UDP/TCP通用

Google 的 DoH 端点:`https://dns.google/dns-query`

Google 的 DoT 主机名:`dns.google`

要在 `systemd-resolved` 中配置 DoT:

“`ini

[Resolve]

DNS=8.8.8.8#dns.google 8.8.4.4#dns.google

DNSOverTLS=yes

“`

`#dns.google` 后缀用于固定 TLS 证书主机名,防止攻击者在同一 IP 上替换不同服务器的降级攻击。

安全注意事项与已知限制

  • DNSSEC 验证:Google Public DNS 执行完整的 DNSSEC 验证。如果某个域名的 DNSSEC 链断裂,Google 将返回 `SERVFAIL`,而不是未签名的答案。这可能会暴露其他解析器默默接受的配置错误区域。
  • 隐私权衡:Google 在匿名化之前会将完整的查询 IP 记录最多 48 小时。对于有严格数据驻留要求的环境,Quad9 或自托管解析器(Unbound、BIND)可能更为合适。
  • 分割视图 DNS:如果您的基础设施使用无法公开解析的内部主机名(例如 `db.internal.corp`),将所有 DNS 指向 Google 将导致内部解析失败。请使用分割 DNS——将内部域名路由到您的内部解析器,将外部域名路由到 Google。这可以在 NetworkManager、Unbound 和大多数企业防火墙中进行配置。
  • TTL 和缓存:Google Public DNS 遵守权威 TTL 值,不会人为延长 TTL。如果您在更新域名注册上的记录后遇到 DNS 传播问题,延迟由权威服务器的 TTL 决定,而非 Google 解析器的行为。

托管环境的 DNS 配置

在管理带 cPanel 的 VPS 或任何基于控制面板的托管环境时,DNS 配置在两个不同层面上运作:

  1. 系统解析器(`/etc/resolv.conf` 或 `systemd-resolved`)——控制服务器本身如何解析主机名,用于出站连接、软件包下载和内部服务。
  2. 权威 DNS——控制外部客户端如何解析您托管的域名。这通过您的名称服务器管理,而非通过系统解析器。

将系统解析器更改为 `8.8.8.8` 仅影响第一层。它对访客如何解析您托管的域名没有任何影响。对于权威 DNS 管理,请通过您的注册商或 DNS 托管面板配置区域记录。

同样,如果您在电子邮件托管基础设施上运行邮件服务,请确保您的 SPF、DKIM 和 DMARC 记录已正确发布在您的权威 DNS 区域中——这些与您的服务器使用哪个递归解析器无关。

技术决策矩阵:何时使用 Google Public DNS

场景推荐操作
家庭用户,优先考虑速度和可靠性在路由器级别配置 8.8.8.8
注重隐私的环境使用 Cloudflare 1.1.1.1 或自托管 Unbound
具有内部主机名的企业网络实施分割视图 DNS
具有公开服务的服务器配置系统解析器并启用 DoT
物联网设备较多的网络路由器级别 DNS,考虑使用 Quad9 进行恶意软件拦截
双栈 IPv4/IPv6 网络同时配置 IPv4 和 IPv6 DNS 地址
疑似 ISP DNS 劫持切换到 DoH(端口 443)以绕过拦截

配置前后的实用检查清单

更改 DNS 前:

  • 记录当前 DNS 服务器地址(Windows 使用 `ipconfig /all`,Linux 使用 `resolvectl status`)
  • 测试基准解析速度:`dig google.com` 并记录查询时间
  • 确认您的网络是否对内部主机名使用分割视图 DNS
  • 检查 VPN 客户端是否独立管理 DNS

更改 DNS 后:

  • 刷新操作系统 DNS 缓存
  • 运行 `nslookup google.com` 并确认服务器地址
  • 运行 `dig google.com @8.8.8.8` 以验证直接可达性
  • 如果使用分割 DNS,测试内部主机名
  • 确认 DNSSEC 验证:`dig dnssec-failed.org` 应返回 `SERVFAIL`
  • 在 Linux 服务器上,验证更改在网络重启后仍然有效:`sudo systemctl restart NetworkManager && resolvectl status`

常见问题

更改为 Google Public DNS 会影响我网站的 DNS 记录或托管吗?

不会。您的系统解析器决定您的机器如何查找其他域名,对您自己域名的记录如何发布或被外部访客解析没有任何影响。权威名称服务器控制这一点。

Google Public DNS 能在 VPS 或独立服务器上使用吗?

可以。配置过程与本地机器完全相同。在无界面服务器上,使用 `nmcli` 或编辑 `/etc/systemd/resolved.conf` 以实现持久更改。请注意,某些托管服务商通过 DHCP 推送 DNS——在 NetworkManager 中使用 `ipv4.ignore-auto-dns yes` 以防止被覆盖。

为什么 nslookup 显示的是路由器 IP 而不是 8.8.8.8?

大多数消费级路由器充当 DNS 代理——它们接收您的查询,将其转发给上游解析器(Google),然后返回答案。显示的本地 IP 是代理,而非上游解析器。这是预期行为。要确认 Google 是实际的上游,请检查路由器的 WAN DNS 设置,或运行 `dig google.com` 并检查完整响应。

如何测试我的 DNS 查询是否已加密?

对于 DoH,请使用 Cloudflare 的浏览器测试工具 `1.1.1.1/help`;或使用 `knot-dnsutils` 软件包运行 `kdig -d @8.8.8.8 +tls-ca google.com` 以验证 DoT 握手。成功的 TLS 握手确认了加密传输。

Google Public DNS 在某些地区会降低解析速度吗?

在极少数情况下会。Anycast 路由将您的查询定向到最近的 Google 节点,但网络拓扑并不总是与地理位置一致。如果您观察到高于预期的延迟,请在做出永久更改之前,使用 `namebench` 或 `DNS Benchmark` 从您的具体网络位置对 Google、Cloudflare 和您的 ISP 解析器进行基准测试比较。

15%

全场主机优惠15%

测试技能,享折扣

使用代码:

Skills
开始使用