DNS 解析全流程

DNS 在项目里最常以"问题"的形式出现:

  • 域名突然解析到旧 IP,变更半天不生效
  • 同一个域名,你本机能访问,同事/线上机器访问不了
  • DNS 被污染/劫持,解析到奇怪的地址
  • ping 域名 失败,但 ping IP 又能通

这篇我用"知识分享 + 可验证"的方式讲清楚:

  • DNS 这条链路到底怎么走
  • 缓存/TTL 为什么会让变更延迟
  • 出问题时你怎么用命令把证据抓出来

目录(按排查顺序)

    1. DNS 到底解决什么问题
    1. 递归 vs 迭代:谁在替你跑腿
    1. 解析全链路:www.example.com 到底经历了哪些节点
    1. 缓存与 TTL:为什么变更不会立刻生效
    1. 实战:常用命令与排障闭环
    1. 最后总结

1. DNS 到底解决什么问题

  • DNS(Domain Name System)负责把 域名 解析为 IP 地址

人类记域名更容易,网络通信最终要靠 IP。


2. 递归查询 vs 迭代查询

面试里你可以这样说:

  • 递归:你问一个"代办",它帮你查到最终答案再回来给你。
  • 迭代:你问一个"指路人",它告诉你下一站去哪,你自己再去问下一站。

典型链路:

  • 你的机器 -> 本地 DNS(递归)
  • 本地 DNS -> 根/顶级/权威 DNS(多为迭代)

3. DNS 解析全链路(按步骤讲)

以访问 www.example.com 为例。

第 1 步:浏览器/系统先查本地缓存

常见缓存位置:

  • 浏览器 DNS 缓存
  • 操作系统 DNS 缓存
  • hosts 文件(最高优先级之一)

如果命中,直接得到 IP。

第 2 步:请求本地 DNS 服务器(递归)

如果本地没有命中,就把域名发给本地 DNS(通常是运营商/公司内网 DNS)。

第 3 步:本地 DNS 开始向外查询(迭代)

本地 DNS 会按层级去问:

  • 问根服务器:.com 的服务器是谁?
  • .com 顶级域名服务器:example.com 的权威服务器是谁?
  • example.com 权威服务器:www.example.com 的 A/AAAA 记录是多少?

最后拿到 IP。

第 4 步:本地 DNS 返回结果并缓存

  • 把 IP 返回给你的机器
  • 同时按照 TTL 缓存

4. 缓存与 TTL:为什么变更不会立刻生效

因为会把根域名打爆。

缓存层级很多:

  • 本机缓存
  • 本地 DNS 缓存
  • 各级 DNS 服务器缓存

这就是为什么:

  • 有时候你改了域名解析,但要等一段时间才生效(TTL)。

5. 实战:常用命令与排障闭环

5.1 TTL 是什么

  • TTL(Time To Live)是 DNS 记录的缓存时间。
  • TTL 越大:解析更快但变更生效慢。
  • TTL 越小:变更更快但查询压力更大。

5.2 DNS 劫持/污染

表现:

  • 访问某域名被解析到错误 IP

应对方向:

  • 使用可信 DNS(如公司内网 DNS、公共 DNS)
  • HTTPS 能降低劫持造成的内容篡改风险(但 DNS 本身仍可能被影响)

5.3 快速排障命令(Windows)

  • nslookup 域名
  • ping 域名
  • tracert 域名(Windows)

如果你怀疑是"本机缓存导致解析不一致",可以:

bash 复制代码
ipconfig /displaydns
ipconfig /flushdns

核心思路(尽量按这个顺序缩小范围):

  • 先确认"域名能不能解析到 IP"
  • 再确认"IP 能不能通"
  • 再确认"端口服务是否可用"

6. 最后总结

6.1 你可以这样总结(写在脑子里的版本)

DNS 的作用是把域名解析成 IP。解析时客户端会先查浏览器/系统/hosts 等本地缓存,未命中则请求本地 DNS 服务器做递归查询。本地 DNS 通常通过迭代方式依次询问根服务器、顶级域名服务器和权威服务器,最终拿到域名的 A/AAAA 记录并按 TTL 缓存,返回给客户端。TTL 决定缓存时间,也解释了为什么解析变更不会立刻全网生效。

相关推荐
shiyi.十一15 小时前
第2章:应用层 — 知识要点与架构
网络·计算机网络·架构
sbjdhjd1 天前
SQL 注入零基础详解:原理、手工注入流程与 Sqli-Labs 靶场实战1~5关和第9关思路
数据库·sql·计算机网络·web安全·网络安全·网络攻击模型·安全架构
2501_916008893 天前
HTTPS 抓包遇到证书绑定怎么办,使用 TraceEagle 解除 App 证书校验
网络协议·计算机网络·http·网络安全·ios·adb·https
zx1154503 天前
前后端开发必备的计算机网络知识
计算机网络
砚凝霜4 天前
软考网络工程师|第 1 章 计算机网络基础 完整备考笔记
网络·笔记·计算机网络
TechEdu2026064 天前
[计算机科学]计算机网络原理
计算机网络·计算机科学
谙弆悕博士5 天前
系统集成项目管理工程师教程(第3版)笔记——第2章:信息技术发展
笔记·计算机网络·信息安全·学习方法·业界资讯·软考·系统分析师
ttod_qzstudio5 天前
【软考备考】计算机网络详解:OSI/TCP-IP 分层 + IP 子网划分,一篇拿下网络模块(附 10 道练习)
网络·tcp/ip·计算机网络·软考
2301_808414385 天前
计算机网络基础
计算机网络
Lhappy嘻嘻5 天前
网络(四)|全网最细网络层原理:IP 协议、IP 地址分类、子网划分、路由转发、NAT 穿透详解
java·笔记·网络协议·计算机网络