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 决定缓存时间,也解释了为什么解析变更不会立刻全网生效。

相关推荐
河北之花17 小时前
计算机三级:路由器选型
网络·计算机网络·智能路由器
李白你好21 小时前
今日网络技术热点:【计算机网络 | 数据链路层8:CSMA/CD
网络·计算机网络
Zguigo1 天前
lesson24-26计算机网络第三章精讲:从MAC地址到CSMA/CD,数据链路层核心知识一网打尽
计算机网络·macos
Zguigo1 天前
lesson30-32计算机网络第四章:网络层核心三课(作用、IP协议、IPv4地址)
tcp/ip·计算机网络·php
s_w.h2 天前
【 计网 】计算机网络基础
服务器·计算机网络
Zguigo2 天前
lesson19-23计算机网络数据链路层完全指南:从帧封装到滑动窗口协议
网络·计算机网络
zyf1044162 天前
暑期实践日志 Day33:整体复盘核查视频,完善剪辑成果
学习·计算机网络·剪辑·暑期实践·课题任务
Zguigo2 天前
lesson37-39计算机网络核心概念精讲:从路由器到UDP的实战与备考指南
计算机网络·udp·智能路由器
Zguigo2 天前
lesson10-13计算机网络物理层三节课速通:数据通信、信道、编码与传输介质(含考试重点)
计算机网络
却道天凉_好个秋2 天前
计算机网络:IPSec协议
计算机网络·ipsec