当你在浏览器输入域名时,计算机最终需要知道对方的 IP 地址 才能建立连接。 DNS(Domain Name System)就是把人类易读的域名映射到 IP(及其它记录类型)的分布式目录服务。 本文从一次解析经历的步骤讲到缓存、记录类型与常见故障

入门:解析路径的大致顺序

  1. 应用程序(如浏览器)需要连接 example.com,先向解析器(resolver)发问——常见是你操作系统配置的 DNS,或路由器下发、运营商提供的地址。
  2. 解析器若缓存未命中,会从根提示开始,沿域名层级(根 → TLD 如 .com → 权威域)迭代查询,直到拿到权威答案或由上游转发得到结果。
  3. 结果带有 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」的核心语义。部署前请阅读你所用解析软件与系统的当前文档。

与其它主题的衔接

读完 DNS 后,建议顺序阅读 TCP/IP 分层HTTPS,再到 HTTP 状态码。 完整路径见 学习路径