什么是公共 DNS?入门指南
互联网是我们现代生活不可或缺的一部分。我们每天都在浏览器中输入域名,例如 www.google.com
或 www.baidu.com
,就能轻松访问网站。但是,计算机和网络设备并不认识这些由字母组成的域名,它们只认数字形式的地址,也就是 IP 地址(例如 172.217.160.142
)。将域名翻译成 IP 地址的服务,就是域名系统(Domain Name System),简称 DNS。它就像互联网的“电话簿”,负责将易于记忆的域名转换成计算机能够理解的 IP 地址。
通常情况下,当你连接到互联网时,你的设备(电脑、手机、路由器等)会自动从你的互联网服务提供商(ISP),比如中国电信、中国联通、中国移动等,那里获取一个默认的 DNS 服务器地址。你的所有域名查询请求(比如你想访问哪个网站)都会发送到这个 ISP 提供的 DNS 服务器进行解析。这种由你的 ISP 提供的 DNS 服务,我们可以称之为“默认 DNS”或“ISP DNS”。
那么,“公共 DNS”又是什么呢?顾名思义,公共 DNS 是指那些由第三方组织或公司提供,并且向公众开放,任何人都可以免费使用的 DNS 解析服务。它们不属于任何特定的 ISP,而是独立运行的服务器集群。用户可以自由选择使用这些公共 DNS 服务器来替代默认的 ISP DNS。
这篇文章将深入探讨公共 DNS 的概念、它与默认 ISP DNS 的区别、使用公共 DNS 的好处与潜在风险,以及如何选择和设置公共 DNS,帮助你更好地理解和利用这项服务。
DNS 工作原理回顾
在深入了解公共 DNS 之前,我们有必要简单回顾一下 DNS 的基本工作原理。当你尝试访问一个网站时,背后发生的事情大致如下:
- 用户输入域名: 你在浏览器地址栏输入
www.example.com
。 - 本地 DNS 查询: 你的操作系统会首先检查自己的 DNS 缓存,看是否有
www.example.com
对应的 IP 地址。如果找到,解析过程立即完成,浏览器直接连接该 IP 地址。 - 发送请求到本地解析器: 如果本地缓存没有,操作系统会将这个域名查询请求发送到配置的 DNS 解析器(Resolver)地址。这个解析器地址通常就是你从 ISP 或手动设置的那个 DNS 服务器地址。
- 递归查询过程(如果本地解析器没有缓存): 如果这个本地解析器也没有
www.example.com
的 IP 地址缓存,它会开始一个递归查询过程:- 它会询问互联网的根服务器(Root Servers):请问
.com
域名的信息在哪里? - 根服务器会告诉它
.com
的顶级域名服务器(TLD Servers)的地址。 - 本地解析器再询问
.com
TLD 服务器:请问example.com
的信息在哪里? .com
TLD 服务器会告诉它example.com
的权威域名服务器(Authoritative Name Servers)的地址。权威域名服务器是负责管理example.com
这个域名的服务器,它拥有example.com
下所有主机名(包括www.example.com
)及其对应 IP 地址的准确记录。- 本地解析器最后询问
example.com
的权威域名服务器:请问www.example.com
的 IP 地址是什么? - 权威域名服务器返回
www.example.com
对应的 IP 地址。
- 它会询问互联网的根服务器(Root Servers):请问
- 返回结果并缓存: 本地解析器收到 IP 地址后,会将其返回给你的操作系统,并通常会在自己的缓存中保存一段时间,以便下次有人查询同一个域名时能更快响应。
- 建立连接: 操作系统将 IP 地址交给浏览器,浏览器根据 IP 地址与目标网站的服务器建立连接,加载网页内容。
公共 DNS 服务器扮演的就是上述步骤 3 中“本地解析器”的角色。当你将设备的 DNS 设置更改为公共 DNS 的地址后,你的所有域名查询请求就不再发给 ISP 的 DNS 服务器,而是直接发给公共 DNS 服务器。
为什么会有公共 DNS?与 ISP DNS 有何不同?
既然 ISP 已经提供了 DNS 服务,为什么还需要公共 DNS 呢?这主要源于 ISP DNS 可能存在的一些问题和公共 DNS 提供的额外优势。
ISP 提供的默认 DNS 服务通常是为满足其用户的基本解析需求而构建的。它们的性能、稳定性和安全性可能会受到 ISP 自身网络架构、管理策略以及负载情况的影响。
公共 DNS 则通常由专注于提供高质量解析服务的专业机构或大型科技公司运营。它们在全球范围内部署大量服务器,采用先进的技术来优化解析速度、提高稳定性、增强安全性,甚至提供一些额外的功能。
两者最核心的区别在于:
- 提供者不同: ISP DNS 由你的互联网服务提供商提供;公共 DNS 由第三方组织/公司提供。
- 服务范围不同: ISP DNS 主要服务于该 ISP 的用户;公共 DNS 面向所有互联网用户。
- 目标和侧重点不同: ISP DNS 侧重于满足基本连接需求;公共 DNS 可能更侧重于性能、稳定性、安全性、隐私或特定功能。
使用公共 DNS 的好处
选择使用公共 DNS 而非默认的 ISP DNS,通常可以带来以下几方面的好处:
-
更快的解析速度:
- 全球分布式服务器: 许多大型公共 DNS 提供商在全球各地部署了大量的服务器。这意味着你的查询请求可以被路由到离你地理位置最近的服务器,从而减少网络延迟。相比之下,ISP 的 DNS 服务器可能数量有限,或者距离你较远。
- 更大的缓存: 公共 DNS 服务器通常拥有比 ISP DNS 更庞大的域名解析缓存。对于那些被频繁访问的网站,公共 DNS 服务器很可能已经缓存了其 IP 地址,无需进行递归查询,可以直接返回结果,大大加快解析速度。
- 优化路由: 大型公共 DNS 提供商通常与互联网主干网络的运营商有良好的互联,能够更有效地将你的查询请求路由到权威域名服务器,缩短解析路径和时间。
- 负载均衡: 它们通过智能的负载均衡技术,将请求分散到多个服务器上,避免单个服务器过载,保证服务的响应速度。
-
更高的稳定性和可靠性:
- 冗余设计: 公共 DNS 服务通常采用高冗余的设计,即使部分服务器出现故障,其他服务器也能立即接管服务,确保不间断的解析能力。
- 抗攻击能力: 大型公共 DNS 提供商投入大量资源来防御 DDoS 等网络攻击。相比之下,ISP DNS 服务器可能更容易成为攻击目标,导致服务中断。当你遇到 ISP DNS 故障导致无法上网时,切换到公共 DNS 往往能解决问题。
-
更高的安全性:
- 防御恶意网站和钓鱼攻击: 一些公共 DNS 提供商(如 OpenDNS)提供了安全过滤功能。它们维护着已知的恶意网站、钓鱼网站、传播恶意软件的网站的数据库,并在解析时阻止对这些网站的访问,从而提供额外的安全防护。
- 支持 DNSSEC: 域名系统安全扩展(DNSSEC)是一种安全协议,用于验证 DNS 响应的真实性,防止 DNS 缓存投毒(DNS Cache Poisoning)等攻击。许多公共 DNS 提供商完整支持 DNSSEC,而一些 ISP 的 DNS 可能尚未完全支持。
- 支持加密的 DNS 查询 (DoH/DoT): 为了提高隐私性和安全性,新的协议如 DNS over HTTPS (DoH) 和 DNS over TLS (DoT) 应运而生。它们通过加密通道传输 DNS 查询请求,防止查询内容被窃听或篡改。许多主流公共 DNS 提供商都积极支持这些加密协议,而传统 ISP DNS 则通常使用未加密的 UDP 或 TCP 协议进行查询。
-
更好的隐私性:
- 减少查询记录被用于跟踪: 理论上,你的 ISP DNS 服务器会记录你的所有域名查询活动。这些记录可以被用来分析你的上网习惯。一些公共 DNS 提供商声称他们不会记录用户的查询信息,或者只进行匿名化的统计分析,从而在一定程度上保护用户的上网隐私。然而,这取决于服务提供商的隐私政策,用户需要自行查阅和判断。
- 避免 ISP 可能进行的 DNS 劫持或重定向: 有些 ISP 可能会将用户输入的错误域名重定向到自己的搜索页面或广告页面,而不是返回标准的 NXDOMAIN(域名不存在)错误。使用公共 DNS 可以避免这种行为。
-
访问控制和内容过滤:
- 家长控制: 一些公共 DNS 服务提供不同级别的过滤选项,例如阻止访问色情、暴力、赌博等类别网站,帮助家长管理家庭网络的访问内容。
- 阻止广告或追踪器: 也有一些公共 DNS 服务专注于阻止广告和网络追踪器的域名解析,达到净化网络环境的目的(例如 AdGuard DNS)。
-
绕过 ISP 级别的 DNS 限制:
- 解除 DNS 屏蔽: 某些地区或 ISP 可能会通过在其 DNS 服务器上屏蔽特定域名的解析来限制用户访问某些网站。切换到公共 DNS 可以绕过这种基于 DNS 的屏蔽,从而访问被限制的网站。(需要注意的是,这只能绕过 DNS 层面 的限制,如果网站是通过 IP 地址或其他技术手段被封锁,公共 DNS 无法提供帮助。)
使用公共 DNS 的潜在风险与考量
尽管公共 DNS 提供了诸多优势,但也并非没有缺点和风险:
- 信任问题: 当你使用公共 DNS 时,你的所有域名查询都将发送给该服务提供商。你需要信任他们不会滥用这些查询数据(例如用于分析你的上网行为、售卖数据给第三方等)。不同的公共 DNS 提供商有不同的隐私政策,务必仔细阅读并选择你信任的服务商。
- 潜在的性能问题: 虽然多数情况下公共 DNS 速度更快,但在某些特定情况下,距离你非常近的 ISP DNS 服务器由于物理距离更短,响应速度可能反而更快。公共 DNS 的性能也取决于你所选服务商的服务器负载、网络状况以及你与服务器之间的网络路径。
- 依赖第三方服务: 你将互联网访问的关键一步(域名解析)委托给了第三方。如果所选的公共 DNS 服务出现故障或遭受攻击,可能会影响你的正常上网。虽然大型公共 DNS 提供商非常稳定,但理论上仍存在这个风险。
- 可能影响某些本地服务的访问: 极少数情况下,一些依赖于特定本地网络环境(如公司内网、校园网)的内部服务可能需要使用特定的内部 DNS 服务器才能解析。切换到公共 DNS 可能会导致这些内部域名无法解析。如果你在公司或学校网络中,最好咨询网络管理员是否可以更改 DNS 设置。
- 安全风险(非加密查询): 如果你使用的公共 DNS 不支持或你 没有启用 DoH/DoT 等加密协议,你的 DNS 查询仍然是以明文形式传输的。这意味着你的 ISP 或网络上的其他中间人仍然可以看到你访问了哪些网站(通过查看你查询了哪些域名),并且存在 DNS 缓存投毒的理论风险(尽管大型公共 DNS 对此有防御)。选择支持并使用加密 DNS 是提高安全和隐私的重要一步。
如何选择合适的公共 DNS 提供商?
市面上有许多公共 DNS 提供商,选择哪一个可能让你犯难。以下是一些选择时可以考虑的因素:
- 速度和性能: 这是许多人转向公共 DNS 的主要原因。你可以使用一些 DNS 性能测试工具(例如 DNS Benchmark, Namebench 等)来测试不同公共 DNS 服务器在你当前网络环境下的解析速度,选择最快的一个。通常选择离你地理位置最近、延迟最低的服务器是比较好的。
- 安全功能: 是否支持 DNSSEC?是否提供恶意网站过滤?是否支持 DoH/DoT 等加密协议?如果安全是你主要的考量,选择提供这些功能的提供商。
- 隐私政策: 仔细阅读提供商的隐私政策,了解他们是否记录你的查询日志、记录多久、是否与第三方共享数据等。选择那些承诺不记录或只进行匿名化统计的提供商。
- 服务稳定性: 选择那些声誉良好、运营稳定的大型提供商,它们通常有更好的基础设施和抗风险能力。
- 特殊功能: 是否提供家长控制、广告过滤等你可能需要的功能。
一些常见的公共 DNS 提供商(及其主/备用 IP 地址):
- Google Public DNS:
8.8.8.8
,8.8.4.4
(IPv4);2001:4860:4860::8888
,2001:4860:4860::8844
(IPv6). 提供速度快、稳定、支持 DNSSEC 和 DoH/DoT。隐私政策相对透明,但会记录部分匿名化数据。 - Cloudflare 1.1.1.1:
1.1.1.1
,1.0.0.1
(IPv4);2606:4700:4700::1111
,2606:4700:4700::1001
(IPv6). 声称注重隐私,承诺不记录可识别个人身份的日志,速度通常非常快,支持 DNSSEC 和 DoH/DoT。还提供 1.1.1.1 for Families 版本提供恶意软件和成人内容过滤。 - OpenDNS:
208.67.222.222
,208.67.220.220
(IPv4). 提供较好的安全过滤功能,有免费和付费版本。 - AliDNS (阿里云公共 DNS):
223.5.5.5
,223.6.6.6
(IPv4). 中国国内用户常用的公共 DNS,通常解析国内网站速度较快,支持 DoH。 - Tencent DNSPod Public DNS:
119.29.29.29
,119.28.28.28
(IPv4). 腾讯提供的公共 DNS,同样适用于中国国内用户,速度和服务稳定。 - Quad9:
9.9.9.9
,149.112.112.112
(IPv4);2620:fe::fe
,2620:fe::9
(IPv6). 注重安全性,会阻止访问已知恶意网站的域名。 - AdGuard DNS:
94.140.14.14
,94.140.15.15
(IPv4);2a10:4f2:a::3
,2a10:4f2:b::5
(IPv6). 除了常规解析,还能阻止广告、追踪器和恶意网站。
你可以根据自己的需求,选择一个或多个进行测试,找到最适合自己的公共 DNS。
如何设置公共 DNS?入门指南
设置公共 DNS 可以分为在单个设备上设置或在路由器上设置两种主要方式。在路由器上设置会影响连接到该路由器的所有设备,更为方便;在单个设备上设置则只对当前设备生效,可以灵活选择。
重要提示: 在更改 DNS 设置前,最好记下当前的 DNS 服务器地址,以便将来需要恢复。
方式一:在单个设备上设置(以 Windows 10/11 和 macOS 为例)
这种方法只改变当前设备的 DNS 设置,不影响网络中其他设备。
在 Windows 10/11 上设置:
- 打开网络设置: 右键点击任务栏右下角的网络图标(Wi-Fi 或以太网),选择“网络和 Internet 设置”。
- 进入适配器选项: 在弹出的窗口中,点击“更改适配器选项”。
- 选择网络连接: 右键点击你当前使用的网络连接(例如,“Wi-Fi”或“以太网”),选择“属性”。
- 找到 TCP/IPv4 属性: 在属性窗口中,向下滚动找到“Internet 协议版本 4 (TCP/IPv4)”,选中它,然后点击下方的“属性”按钮。
- 手动设置 DNS 服务器地址: 在 TCP/IPv4 属性窗口中,选择“使用下面的 DNS 服务器地址(U)”。
- 在“首选 DNS 服务器(P):”框中输入你选择的公共 DNS 主地址(例如
8.8.8.8
)。 - 在“备用 DNS 服务器(A):”框中输入你选择的公共 DNS 备用地址(例如
8.8.4.4
)。
- 在“首选 DNS 服务器(P):”框中输入你选择的公共 DNS 主地址(例如
- 保存设置: 点击“确定”关闭所有属性窗口。
- 刷新 DNS 缓存(可选): 打开命令提示符(搜索
cmd
并运行),输入ipconfig /flushdns
并按回车,以清除本地 DNS 缓存,让新的设置立即生效。 - 验证设置: 在命令提示符中输入
ipconfig /all
并按回车,查看当前网络连接的详细信息,确认 DNS 服务器地址已经变更为你设置的公共 DNS 地址。或者访问一些在线 DNS 检测网站进行验证。
如果你使用的是 IPv6,也可以在“Internet 协议版本 6 (TCP/IPv6)”的属性中进行类似的设置。
在 macOS 上设置:
- 打开系统设置/系统偏好设置: 点击屏幕左上角的苹果菜单,选择“系统设置”(macOS Ventura 及更新版本)或“系统偏好设置”(macOS Monterey 及更早版本)。
- 进入网络设置: 点击“网络”。
- 选择当前连接: 在左侧列表中选择你当前使用的网络连接(例如,“Wi-Fi”或“以太网”)。
- 配置 DNS 服务器:
- 在 macOS Ventura 及更新版本中,点击右侧的“详细信息…”,然后在左侧列表中选择“DNS”。
- 在 macOS Monterey 及更早版本中,点击右下角的“高级…”按钮,然后在顶部标签页中选择“DNS”。
- 添加公共 DNS 地址: 在 DNS 服务器列表下方,点击“+”按钮,输入你选择的公共 DNS 主地址(例如
1.1.1.1
)。再次点击“+”按钮,输入备用地址(例如1.0.0.1
)。你可以添加多个地址,系统会按顺序尝试使用。 - 移除旧的 DNS 地址(可选): 你可以选择性地移除 ISP 自动分配的 DNS 地址(通常以灰色显示)。
- 保存设置: 点击“好”或“确定”,然后点击“应用”。
- 验证设置: 打开“终端”应用(搜索
Terminal
),输入scutil --dns
并按回车,查看当前的 DNS 配置信息。
方式二:在路由器上设置
在路由器上设置公共 DNS 可以让所有连接到该路由器(无论是通过有线还是无线)的设备都使用相同的 DNS 服务,无需逐个设备设置。不同品牌和型号的路由器设置界面差异较大,但基本步骤类似:
- 查找路由器 IP 地址: 通常是
192.168.1.1
或192.168.0.1
或192.168.1.253
等。你可以在电脑的网络连接详细信息中找到“默认网关(Default Gateway)”的地址,这个就是路由器的 IP。 - 登录路由器管理界面: 打开浏览器,在地址栏输入路由器的 IP 地址并按回车。输入路由器的管理用户名和密码(通常印在路由器底部标签上,或在路由器的说明书里)。
- 寻找 DNS 设置选项: 在路由器管理界面中,查找与“WAN 设置”、“上网设置”、“DHCP 设置”、“网络参数”或“高级设置”相关的选项。在这些选项中,通常会找到“DNS 服务器”或“首选 DNS 服务器”、“备用 DNS 服务器”的配置项。
- 输入公共 DNS 地址: 将自动获取 DNS 的选项取消勾选(如果存在),然后手动输入你选择的公共 DNS 主地址和备用地址。
- 保存并重启路由器: 应用或保存设置。为了确保设置生效,建议重启路由器。
- 验证设置: 连接到该路由器的设备(电脑或手机),在设备的网络设置中确认 DNS 服务器地址不再是 ISP 的地址,而是你设置的公共 DNS 地址(通常显示为路由器的内网 IP,然后由路由器将请求转发给公共 DNS)。或者在设备上执行 DNS 刷新和验证步骤。
方式三:在移动设备上设置
在手机或平板电脑上设置公共 DNS 通常可以在 Wi-Fi 设置中针对特定的 Wi-Fi 网络进行修改,或者在系统开发者选项或特定应用中设置全局的私人 DNS (Private DNS – 主要指基于 DoT 的加密 DNS)。
- Android: 在 Wi-Fi 设置中修改单个网络的 DNS(需要将 IP 设置从 DHCP 改为静态),或者在“网络和互联网”设置中查找“私人 DNS”选项,输入支持 DoT 的公共 DNS 主机名(例如 Cloudflare 的
one.one.one.one
或 Google 的dns.google
)。 - iOS: 在 Wi-Fi 设置中针对单个网络配置 DNS(需要将配置 DNS 从自动改为手动)。
方式四:使用公共 DNS 提供的客户端应用
一些公共 DNS 提供商(如 Cloudflare 的 1.1.1.1 App)提供专门的客户端应用程序,可以方便地在桌面或移动设备上启用他们的 DNS 服务,甚至同时启用 DoH/DoT 加密和 WARP(一种优化网络连接的服务)。使用这些应用通常是最简便的设置方法。
总结
公共 DNS 是互联网基础设施中一个重要且实用的组成部分。它提供了一种替代 ISP 默认 DNS 的选择,用户可以通过切换到公共 DNS 来提升网络访问的速度、稳定性和安全性,增强隐私保护,甚至实现一定程度的内容访问控制。
选择哪个公共 DNS 取决于你的具体需求和偏好。如果你追求极致速度和隐私,Cloudflare 的 1.1.1.1 可能是个不错的选择;如果你更看重安全性过滤,OpenDNS 或 Quad9 值得考虑;如果你在中国国内,阿里云或腾讯云的公共 DNS 可能因靠近用户而具有速度优势。
设置公共 DNS 并不复杂,无论是通过操作系统、路由器还是特定的应用程序,都能快速完成。一旦设置成功,你就能享受到公共 DNS 带来的诸多好处。
当然,公共 DNS 并非万能,它无法解决所有网络问题,也存在潜在的风险。但对于希望优化自己网络体验、提升安全和隐私的用户来说,了解和使用公共 DNS 无疑是一个非常有价值的入门步骤。通过本文的介绍和指南,希望你能对公共 DNS 有了清晰的认识,并能够自信地选择和配置适合自己的公共 DNS 服务。