
运维扫盲 ! 没DNS、 为啥百度都打不开?
2025年08月16日 21:00
以下文章来源于开源运维 ,作者开源运维
分享优质GitHub开源项目的安装教程。 在网络世界中,IP地址是用来定位主机的“门牌号”,而域名是帮人们记忆这些复杂地址的“昵称”。DNS(Domain Name System)就是负责将这些“昵称”翻译成“门牌号”的系统,起到域名到IP地址互相映射的功能。以下,我们用技术视角深入剖析DNS域名解析过程。 DNS解析主要分为递归查询和迭代查询。 现实中,通常采用递归 + 迭代混合模式:用户向本地DNS发起递归查询,而本地DNS与其他服务器之间采用迭代查询,从而降低网络负担。 以下是DNS解析的标准步骤(假设访问网址为 1.查询本地缓存 操作系统和浏览器会先查看自己的DNS缓存,有没有保存过 2.本地域名服务器查询 若本地缓存无匹配结果,解析请求会发送到本地域名服务器(常由ISP提供,如电信、联通),本地DNS会进一步处理请求。 3.根域名服务器查询 如果本地DNS也没有结果,它会向根域名服务器发起迭代查询。根域名服务器返回顶级域名的服务器信息(比如com域的服务器地址)。 4.顶级域名服务器查询 根据根服务器的提示,本地DNS联系顶级域名服务器(TLD),例如管理 5.权威域名服务器查询 本地DNS向权威域名服务器(托管 6.响应用户请求 本地DNS将 为了提升解析速度,减少网络开销,缓存机制在DNS的各层级被广泛使用: 使用 利用 若ISP DNS不稳定,可以使用公共DNS,比如Google的8.8.8.8或Cloudflare的1.1.1.1。 DNS是互联网的基础设施之一,理解其背后每一步的逻辑和优化技巧,对于所有运维人员而言,都是必备的知识。通过掌握查询流程和缓存机制,你不仅能够解决常见的解析问题,也能优化你的应用性能! 开源运维 .
DNS解析的两种查询方式
DNS域名解析流程详解
www.example.com
):www.example.com
对应的IP地址。如果找到,则直接用缓存结果。+------------------+
| 根域名服务器 |
+-------+----------+
| 返回.com域信息
v
+------------------+
| 顶级域名服务器 |
+-------+----------+
| 返回example.com信息
v
+------------------+
| 权威域名服务器 |
+------------------+.com
的服务器。它会告诉本地DNS“去找example.com对应的权威域名服务器”。www.example.com
的服务器)发起查询,它会返回www.example.com
的准确IP。Query: What is the IP of www.example.com?
Response: 192.0.2.1192.0.2.1
的结果发回用户,完成解析。加速解析:DNS缓存
查看本地DNS缓存
# Windows
ipconfig /displaydns
# macOS/Linux
sudo systemd-resolve --statistics清理本地DNS缓存
# Windows
ipconfig /flushdns
# macOS
sudo dscacheutil -flushcache
# Linux
sudo systemd-resolve --flush-caches主要技术细节总结
DNS运维实用技巧
dig
命令分析每个查询过程:dig www.example.com +trace
nslookup
或ping
检查响应速度:nslookup www.example.com