DNS 简单解释:互联网的电话簿
· 12分钟阅读
目录
每次您在浏览器中输入网站地址时,一个名为 DNS 的系统会悄悄地将这个人类可读的名称转换为计算机友好的 IP 地址。如果没有 DNS,您将不得不记住像 142.250.80.46 这样的数字,而不是简单地输入"google.com"。
本指南用简单、非技术性的语言解释 DNS,让任何人都能理解它的工作原理、为什么重要以及如何解决常见问题。
🔍 亲自尝试:使用我们的免费 DNS 查询工具立即查看 DNS 的实际运作。
什么是 DNS?
DNS 代表域名系统。它本质上是互联网的电话簿,但它不是将名称转换为电话号码,而是将域名(如 google.com)转换为计算机用于通信的 IP 地址(如 142.250.80.46)。
这样想:当您想给某人打电话时,您会在联系人中查找他们的名字,而不是记住他们的电话号码。DNS 对网站做同样的事情。
为什么创建 DNS
DNS 由 Paul Mockapetris 于 1983 年发明,用于解决一个日益严重的问题。在互联网(当时称为 ARPANET)的早期,有一个名为 hosts.txt 的单一文本文件,它将每台计算机的名称映射到其 IP 地址。该文件由斯坦福研究所维护,并分发到网络上的每台计算机。
随着互联网的发展,这个系统变得完全无法管理。想象一下,每次有人添加新网站时都要更新一个文件,然后将该文件分发到全球数百万台计算机。DNS 通过创建一个分布式、分层系统解决了这个问题,其中没有单一实体控制所有信息。
DNS 解决的问题
计算机使用 IP 地址进行通信——像 192.168.1.1(IPv4)或 2001:0db8:85a3:0000:0000:8a2e:0370:7334(IPv6)这样的数字标签。这些数字对机器来说精确高效,但对人类来说很难记住。
DNS 通过让我们使用易记的名称来弥合这一差距,而计算机在幕后继续使用它们首选的数字地址。
DNS 如何工作(分步说明)
当您在浏览器中输入"example.com"并按回车键时,一个复杂但极快的过程就开始了。以下是具体发生的事情:
步骤 1:浏览器缓存检查
您的浏览器首先检查其自己的内存,看看它最近是否查找过这个域名。现代浏览器会在短时间内(通常是 60 秒到几分钟)缓存 DNS 结果,以加快重复访问的速度。
如果浏览器找到缓存结果且尚未过期,它会立即使用该 IP 地址。这就是为什么重新访问网站通常比第一次访问更快。
步骤 2:操作系统缓存检查
如果浏览器没有答案,它会询问您的操作系统。Windows、macOS 和 Linux 都在系统级别维护自己的 DNS 缓存。
您可以在 Windows 上使用命令 ipconfig /displaydns 查看操作系统缓存,或使用 ipconfig /flushdns 清除它。
步骤 3:递归解析器查询
如果两个缓存都没有答案,您的计算机会将请求发送到递归解析器。这通常由您的互联网服务提供商(ISP)或公共 DNS 服务(如 Google(8.8.8.8)或 Cloudflare(1.1.1.1))运营。
递归解析器充当中间人。它的工作是代表您查询其他 DNS 服务器来追踪答案。
步骤 4:根名称服务器查询
递归解析器首先询问 13 个根名称服务器之一:"谁处理 .com 域名?"这些根服务器不知道您特定查询的答案,但它们知道哪些服务器负责每个顶级域(TLD),如 .com、.org 或 .net。
根服务器会响应相应 TLD 名称服务器的 IP 地址。
快速事实:实际上并不只有 13 台物理根服务器。通过一种称为任播的技术,这 13 个 IP 地址分布在全球数百台服务器上,以实现冗余和速度。
步骤 5:TLD 名称服务器查询
然后递归解析器联系 TLD 名称服务器(在本例中为 .com 服务器)并询问:"我在哪里可以找到有关 example.com 的信息?"
TLD 服务器会响应 example.com 的权威名称服务器的 IP 地址——拥有最终答案的服务器。
步骤 6:权威名称服务器查询
最后,递归解析器查询 example.com 的权威名称服务器。该服务器拥有实际的 DNS 记录,并响应 IP 地址。
步骤 7:响应和缓存
递归解析器接收 IP 地址,根据 TTL 值将其缓存以供将来请求使用,并将其发送回您的计算机。您的操作系统和浏览器也会缓存此结果。
您的浏览器现在可以连接到该 IP 地址的 Web 服务器并加载网站。整个过程通常不到 100 毫秒。
可视化摘要
以下是完整的 DNS 解析路径:
- 浏览器缓存 → 操作系统缓存 → 递归解析器
- 递归解析器 → 根服务器 → TLD 服务器 → 权威服务器
- 权威服务器 → 递归解析器 → 您的计算机
- 浏览器使用 IP 地址连接到网站
DNS 记录类型解释
DNS 不仅仅是将域名转换为 IP 地址。该系统使用各种记录类型存储许多不同类型的信息。每种记录类型都有特定的用途。
常见 DNS 记录类型
| 记录类型 | 用途 | 示例 |
|---|---|---|
| A | 将域名映射到 IPv4 地址 | example.com → 93.184.216.34 |
| AAAA | 将域名映射到 IPv6 地址 | example.com → 2606:2800:220:1:248:1893:25c8:1946 |
| CNAME | 创建指向另一个域名的别名 | www.example.com → example.com |
| MX | 指定域名的邮件服务器 | example.com → mail.example.com(优先级 10) |
| TXT | 存储文本信息(验证、SPF、DKIM) | "v=spf1 include:_spf.google.com ~all" |
| NS | 指定权威名称服务器 | example.com → ns1.example.com |
| SOA | 包含有关区域的管理信息 | 主服务器、管理员电子邮件、序列号 |
| PTR | 反向 DNS 查找(IP 到域名) | 93.184.216.34 → example.com |
| SRV | 指定服务的位置 | 用于 VoIP、即时消息等 |
A 记录与 AAAA 记录
A 记录是最基本的 DNS 记录类型。它直接将域名映射到 IPv4 地址。当您访问网站时,您几乎总是使用 A 记录查找。
AAAA 记录(发音为"quad-A")执行相同的操作,但用于 IPv6 地址。随着互联网从 IPv4 过渡到 IPv6,AAAA 记录变得越来越重要。大多数现代网站同时拥有 A 和 AAAA 记录。
CNAME 记录:创建别名
CNAME 记录创建指向另一个域名而不是直接指向 IP 地址的别名。当您希望多个域名指向同一位置时,这很有用。
例如,您可能将 www.example.com 作为指向 example.com 的 CNAME。这样,如果 IP 地址更改,您只需要更新 example.com 的 A 记录。
专业提示:您不能在根域级别(example.com)使用 CNAME 记录。这是 DNS 协议的限制。请改用 A 记录或 ALIAS 记录。
MX 记录:电子邮件路由
MX 记录(邮件交换)告诉电子邮件服务器将邮件发送到您域名的何处。每个 MX 记录都包含一个优先级编号——数字越小优先级越高。
例如,Google Workspace 使用具有不同优先级的多个 MX 记录以实现冗余。如果主邮件服务器宕机,电子邮件会自动路由到备份服务器。
TXT 记录:验证和安全
TXT 记录存储任意文本数据,用途非常广泛。常见用途包括:
- 域名验证:向 Google 或 Microsoft 等服务证明您拥有域名
- SPF 记录:指定哪些服务器可以代表您发送电子邮件
- DKIM 记录:用于电子邮件身份验证的加密签名
- DMARC 记录:电子邮件身份验证策略
- 网站验证:证明各种 Web 服务的所有权
DNS 服务器类型
DNS 系统依赖于几种不同类型的服务器,每种服务器在解析过程中都有特定的角色。
1. 递归解析器(DNS 解析器)
这些是您的计算机直接与之通信的服务器。它们被称为"递归",因为它们会递归查询其他 DNS 服务器,直到找到答案。
您的 ISP 通常会自动提供递归解析器,但您可以选择使用公共 DNS 服务:
- Google 公共 DNS:
8.8.8.8和8.8.4.4 - Cloudflare DNS:
1.1.1.1和1.0.0.1 - Quad9:
9.9.9.9 - OpenDNS:
208.67.222.222和208.67.220.220
2. 根名称服务器
有 13 个根名称服务器地址(标记为 A 到 M),它们构成 DNS 层次结构的顶部。这些服务器不知道特定查询的答案,但它们知道将查询定向到哪些 TLD 服务器。
根服务器由包括 Verisign、NASA、马里兰大学和 ICANN 在内的各种组织运营。它们每天处理数十亿次查询。
3. TLD 名称服务器
顶级域服务器负责特定的域名扩展,如 .com、.org、.net 或国家代码,如 .uk 或 .jp。
例如,Verisign 运营 .com 和 .net 域名的 TLD 服务器。这些服务器维护有关哪些权威名称服务器处理每个二级域名的信息。
4. 权威名称服务器
这些服务器拥有最终