页面

DNS:域名怎么变成 IP

← 返回兔子洞总览 · networking 主题地图

先查各级缓存;查不到就由本地 DNS 从根 → 顶级域 → 权威服务器层层迭代追问,每级只负责指路,最终在权威服务器拿到 IP 并缓存。

我追问的链

  • 我输入 example.com,它怎么变成一个 IP?
  • 如果谁都没缓存,第一步去问谁?→ 根服务器的 IP 又是哪来的?
  • 我电脑怎么知道"本地 DNS"在哪?→ 这个地址哪来的?
  • 改了域名解析,为什么不立刻生效?

核心理解

DNS(Domain Name System,域名系统)= 全球电话簿:把域名翻译成 IP。

先查缓存,一级级往下:浏览器 → 操作系统 → hosts 文件 → 本地 DNS。任何一层命中就直接返回。

都没有,就由本地 DNS 替你迭代追问(它跑腿,每一级只告诉它"下一步去问谁"):

  1. 根服务器:“.com 找谁?” → 根答:“去问 .com 顶级域服务器。”
  2. .com 顶级域(TLD)服务器:“example.com 找谁?” → 答:“去问它的权威服务器。”
  3. 权威服务器:“example.com 的 IP?” → 终于拿到 IP。

然后本地 DNS 缓存结果、返回给你。

两个"天生就知道"的锚点(否则第一步无从问起):

  • 根服务器的 IP内置在软件里(出厂就带着一份根提示文件)。
  • 本地 DNS 的地址:你接入网络时,DHCP(Dynamic Host Configuration Protocol,动态主机配置协议)自动分配给你。

TTL(Time To Live,生存时间):每条解析结果能缓存多久。所以改 DNS 要等旧缓存过期才全网生效。

逻辑闭环 / 锚点

整条"层层追问"的链,落地在两个出厂就钉死、不再往下问的锚点上(根 IP 内置 + 本地 DNS 靠 DHCP 给)。没有锚点,追问会无限递归、永远问不到头。

关联


来源:与 Claude 的对话,2026-06。