当你在浏览器输入域名时,计算机最终需要知道对方的 IP 地址 才能建立连接。 DNS(Domain Name System)就是把人类易读的域名映射到 IP(及其它记录类型)的分布式目录服务。 本文从一次解析经历的步骤讲到缓存、记录类型与常见故障。
入门:解析路径的大致顺序
- 应用程序(如浏览器)需要连接
example.com,先向解析器(resolver)发问——常见是你操作系统配置的 DNS,或路由器下发、运营商提供的地址。 - 解析器若缓存未命中,会从根提示开始,沿域名层级(根 → TLD 如
.com→ 权威域)迭代查询,直到拿到权威答案或由上游转发得到结果。 - 结果带有 TTL(生存时间),缓存多久依 TTL 与解析器策略而定;这也是「改了 DNS 却要等一会儿才生效」的常见原因。
深入:记录类型你在工程里最常遇见
- A / AAAA:域名到 IPv4 / IPv6 地址。
- CNAME:别名;注意链路与与其它记录(如 MX)共存的限制,具体以你的 DNS 托管商说明为准。
- MX:邮件交换;与 Web 访问无关但同属 DNS 体系。
- TXT:文本记录,常用于 SPF、DKIM、域名验证等。
为何 HTTPS 之前要先搞定 DNS
TLS 客户端需要知道连哪个 IP(或多条 A 记录中选谁);若 DNS 被篡改或缓存了错误结果,你会看到证书域名不匹配、连到错误主机,或间歇性失败。 这与本站 HTTPS 一节中的「身份验证」紧密相关。
常见故障模式(排障心智)
- 只有某个域名解析慢或失败:优先怀疑权威 DNS、解析器、本地 hosts、VPN 分流。
- 全网「偶尔」打不开:可能是解析器不稳定或 MTU/IPv6 路径问题,需要分层排查(与 TCP/IP 分层直觉一致)。
- 能 ping IP 不能 ping 域名:典型指向 DNS 解析异常而非链路彻底断开。
DNS 的精确报文格式与协议演进以 IETF 标准(如 DNS 相关 RFC)为准;DoH/DoT 等加密 DNS 改变了传输路径但不改变「名字 → RDAT」的核心语义。部署前请阅读你所用解析软件与系统的当前文档。