网络基础

输入网址之后发生了什么:一次域名解析的全过程

2026-08-20 · 网络基础

在地址栏敲下一个网址,到页面出现,中间大概几百毫秒。这几百毫秒里发生的事,比多数人想象的多。搞清楚顺序,网站出问题时就知道该从哪儿查。

第一步不是联网,是查缓存

浏览器不会每次都去问互联网。顺序大致是:

  • 浏览器自己的缓存——刚访问过的域名,直接在内存里就有答案;
  • 操作系统缓存——Windows 可以理解为一个本地的域名小账本;
  • 本地网络里的域名服务器——通常是路由器或运营商提供的那台。

这三层都没答案,才会真正发出查询请求。所以有时候"改了配置却还是老样子",就是因为缓存里还存着旧答案。

真正的查询是"层层转问"

如果本地都不知道,这台域名服务器会替你往外问,路径大致是:

  1. 问根服务器:".cn 该找谁?"——得到负责 .cn 的服务器地址;
  2. 问顶级域服务器:"example.cn 该找谁?"——得到这个域名的权威服务器地址;
  3. 问权威服务器:"example.cn 的地址是多少?"——这才拿到真正的 IP。

拿到之后逐层往回缓存,下次别人再问,就不用从头走一遍了。

记录的几种常见类型

  • A 记录:域名对应一个 IPv4 地址,最常用的一种;
  • AAAA 记录:对应 IPv6 地址;
  • CNAME 记录:把一个域名指向另一个域名,等于"别名",最终还是要落到 A 记录上;
  • MX 记录:邮件服务器指向;
  • TXT 记录:放一些说明性文本,常被用来做域名归属验证。

TTL:为什么改了要"等一会儿"

每条记录都带一个 TTL(生存时间),单位是秒。它相当于告诉别人:"这个答案你可以记这么久。"

TTL 设 600,意思是最长 10 分钟内,别人可能还用着旧答案。所以改完解析后所谓的"生效时间",本质是在等各级缓存过期。

经验做法:平时把 TTL 设得中规中矩(比如 600 秒);如果计划要换服务器,提前一天把它调小到 60 秒,切换时就能快很多。切完再调回来。

排查时按顺序来,别乱猜

遇到网站打不开,按这个顺序试,基本能定位到是哪一环:

  1. 换一个网络(比如用手机流量)试试——能开,问题在本地网络或缓存;
  2. 清一下本地缓存再试;
  3. 用别的设备访问——都打不开,多半是域名解析或服务器那边的事;
  4. 如果只是某几个网站不行,别的正常,那更要怀疑是域名解析或对方服务的问题,而不是"网断了"。

把"域名解析"和"网页服务"看成两件事,排查思路会清楚很多:前者负责找到门牌号,后者负责开门接待。门牌号都找不到,敲再久也没用。

← 返回技术信息随笔