文章总结: 文章概述了DNS作为互联网核心服务的概念与原理,详细解析了其分层架构、查询流程及缓存机制,并提供了DNS劫持防御策略与优化建议,旨在帮助读者理解网络基础并提升安全意识。 综合评分: 78 文章分类: 网络安全,安全意识
知识分享 | 学网络必知!DNS:隐藏在你每次上网背后的“网络侦探”
原创
小安Air 小安Air
小安数记pro
2026年4月6日 10:39 中国香港
前言:新漏洞频发,攻击手段日新月异。这里是小安数记pro。专注网络安全领域,日常更新分享,带你穿透技术迷雾。左上角点击关注,你的支持是小编创作的最大动力。
由于公众号推送机制调整,现在只有常读和星标的公众号才会显示大图推送。防止大家找不到,收不到及时咨询,建议大家将小安数记pro按照上面图片设置为星标,之后就可以及时收到咨询!!!
免责声明
本平台所有内容(包括技术文章、工具及方法)仅供网络安全从业人员在合法授权环境下进行学习与研究,严禁用于任何非法用途。使用者需在自有或完全授权的环境中操作,并对自身行为承担全部责任。因使用本平台内容导致的任何损失,本平台不承担责任。我们保留随时更新本声明的权利,不另行通知,持续使用即视为接受修改内容。请务必遵守法律法规,共同维护健康的网络安全研究环境。本文仅展示本人自己使用推荐和分享感受,并不做任何商业行为。作者只负责分享自己实践过程。
输入网址,按下回车,页面瞬间加载——这看似简单的操作背后,一场精密的侦查行动正在全球网络暗处悄然展开。
“当你在浏览器输入‘www.baidu.com’并按下回车,到百度首页出现在你面前,中间发生了什么?”
大多数人会回答:“浏览器向百度的服务器发送请求,然后收到了网页数据。” 但很少有人追问第一个关键问题:浏览器是如何知道“www.baidu.com”对应的服务器在哪里的?
这就像你知道朋友的姓名,但想拜访他,必须先查到他家的具体地址。在互联网世界,这个“查地址”的过程,就是由我们今天的主角——DNS(域名系统)完成的。
01 侦探系统,DNS的基本概念与原理
DNS是Domain Name System(域名系统)的缩写,因特网上作为域名和IP地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串;首先查找客户机的缓存,如果没有符合条件的记录,就产生一个查询请求并发送给本地DNS服务器。
想象一下,整个互联网是一个庞大的侦探网络。当你输入一个网址,你的电脑成为了一名“委托人”,而DNS系统就是你要雇用的侦探社,任务是找到这个域名背后的真实“住址”——IP地址。
为什么需要这个系统?因为人类不擅长记忆数字。比起记住“14.215.177.38”这样的IP地址,我们更愿意记住“www.baidu.com”这样的名字。DNS就是两者之间的翻译官。
它的工作原理基于查询与响应。你的设备(客户端)向DNS服务器提出问题:“www.baidu.com的IP是什么?”服务器则给出答案,或指引你去问更“专业”的侦探。整个查询过程通常是透明且瞬间完成的,用户几乎无感。
TCP/IP 是基于 IP 地址进行通信的,但是 IP 地址不太好记。于是出现了另一种方便记忆的标识符,那就是主机名。为计算机配置主机名,在进行网络通信时,直接使用主机名,而不用输入一大串的 IP 地址。
同时,系统通过一个叫 hosts 的文件,实现主机名转换 IP 地址的功能。hosts 文件包括主机名和 IP 地址的对应关系。当需要通过主机名访问主机时,它就会查看本地的 hosts 文件,从文件中找到相对应的 IP 地址,然后进行报文发送。如果在 hosts 文件中没找到相关信息,则主机访问失败。
hosts 文件是主机的本地文件,优点是查找响应速度快。它主要用来存储一些本地网络的主机名和 IP 地址的对应信息。这样,主机在以主机名访问本地网络主机时,通过 hosts 文件可以迅速获得相应的 IP 地址。
1.1主机名到IP地址的映射有两种方式
- 静态映射,每台设备上都配置主机到IP地址的映射,各设备独立维护自己的映射表,而且只供本设备使用(通过hosts文件完成);
- 动态映射,建立一套域名解析系统(DNS),只在专门的DNS服务器上配置主机到IP地址的映射,网络上需要使用主机名通信的设备,首先需要到DNS服务器查询主机所对应的IP地址。
1.2nslookup
当Windows系统用户使用”nslookup hostname/domainname”命令时,DNS 会自动查找注册了主机名和 IP 地址的数据库,并返回对应的 IP 地址。
02 侦探网络,DNS服务器的四大分类
在DNS这个庞大的侦探系统中,侦探们(服务器)各司其职,形成了一个高效协作的层级结构。
1.DNS服务器由解析器和域名服务器组成。
2.域名服务器是指保存该网络中所有主机的域名和对应的IP地址,并具有将域名转换为IP地址功能的服务器。
3.它有两种形式:主服务器和转发服务器;
4.DNS使用的TCP和UDP端口都是53,主要使用UDP协议,服务器之间备份使用TCP协议;
DNS服务器分类:
-
根域名服务器是位于全球的13组“总情报中心”。它们不直接知道某个网站的IP,但掌握着顶级域的线索。当被询问“www.baidu.com”时,它们会指引你:“.com区域的事情,去找负责 .com 的TLD服务器。”(标号为a~m)
-
顶级域(TLD)服务器 是下一级“区域专家”,负责管理(如 .com、.net、.org和所有国家的顶级域名如.cn、Vuk等)。它们会告诉你:“baidu.com 这个域,你去问问它的权威服务器。”
-
权威域名服务器 是目标的“最终知情人”,每个域名都必须在这里“登记在册”。它是域名拥有者设置或指定的,掌握着该域名下所有记录的最终答案。
在Internet上具有公共可访问主机的每个组织结构必须提供公共可访问的DNS记录。
-
递归DNS服务器 是用户直接接触的前台接待员。通常由你的网络服务商(ISP)或公共DNS(如 8.8.8.8)提供。它替你跑腿,层层向上查询,直到拿到最终IP,然后缓存起来以便下次快速响应。
03 卷宗档案,理解DNS的主要参数
在DNS服务器的“档案系统”中,信息通过几个核心部分被组织和管理起来,它们共同构成了域名解析的完整地图。
(1)正向查找区域
将域名映射到IP地址的数据库,用于将域名解析为IP地址。在大部分的DNS查询请求中,客户端一般执行正向查找,正向查找是基于存储在地址(A)资源记录中的一台计算机的DNS名称搜索。是从域名到IP地址的“顺向名册”。你提供名字,它返回地址,完成我们日常访问网站所需的全部查询。这类查询希望将IP地址作为应答的资源数据。
(2)反向查找区域
将IP地址映射到域名的数据库,用于将IP地址解析为域名。DNS允许客户端在名称查询期间使用已知的IP地址,并根据它查找计算机的域名。则是从IP地址反查域名的“逆向目录”,常用于日志分析、垃圾邮件验证等管理场景。就像通过电话号码查询机主姓名,但并非所有IP都有对应的域名记录。
将主机(A)资源记录手动添加到正向查找区时,使用“创建相关的指针(PRT)记录”选项,可以将指针记录自动添加到反向查找区域中。
(3)资源记录
是存储在DNS服务器中的具体条目,是“侦探卷宗”里的核心信息。常见类型包括:
- ### A记录:最基础的记录,直接将主机名映射到IPv4地址,是网站的“家庭住址”。
- ### CNAME记录:别名记录,将一个域名指向另一个域名,实现“化名”功能,便于统一管理,将别名映射到标准DNS域名。
- ### MX记录:邮件交换记录,指定负责接收该域邮件的服务器,确保邮件能准确送达。
- ### NS记录:指定该域的权威DNS服务器是谁,是查询路径中的“责任指向标”。
- ### TXT记录:可存储任意文本信息,常用于域名所有权验证、SPF反垃圾邮件策略等。
(4)转发器
转发器也是一个DNS服务器,是本地DNS服务器用于将外部DNS名称的DNS查询转发给该DNS服务。是本地DNS服务器的“外援专线”。当本地服务器无法解析某个查询时,它可以将问题转交给指定的、更强大的上游DNS服务器(如运营商或公共DNS),而不是从根开始查询,这通常能加快解析速度。
04 DNS域名解析过程
域名解析包含两种查询方式,分别是递归查询和迭代查询。
4.1 递归查询
1.主机首先向其本地域名服务器进行递归查询。
2.本地域名服务器收到递归查询的委托后,也采用递归查询的方式向某个根域名服务器查询。
3.根域名服务器收到递归查询的委托后,也采用递归查询的方式向某个顶级域名服务器查询。
4.顶级域名服务器收到递归查询的委托后,也采用递归查询的方式向某个权限域名服务器查询。
当查询到域名对应的IP地址后,查询结果会在之前受委托的各域名服务器之间传递,最终传回给用户主机。
4.2 迭代查询
当根域名服务器收到本地域名服务器发出的迭代查询请求报文时,要么给出所要查询的IP 地址,要么告诉本地服务器下一步应该找哪个域名服务器进行查询,然后让本地服务器进行后续的查询。
1.主机首先向其本地域名服务器进行递归查询。2.本地域名服务器采用迭代查询,它先向某个根域名服务器查询。3.根域名服务器告诉本地域名服务器,下一次应查询的顶级域名服务器的IP地址。4.本地域名服务器向顶级域名服务器进行迭代查询。5.顶级域名服务器告诉本地域名服务器,下一次应查询的权限域名服务器的IP地址。6.本地域名服务器向权限域名服务器进行迭代查询。7.权限域名服务器告诉本地域名服务器所查询的域名的IP地址。8.本地域名服务器最后把查询的结果告诉主机。
05 追踪路径,一次完整的DNS查询全解密
当你输入“www.baidu.com”并按下回车,到页面加载完成,让我们一步步拆解这个毫秒级完成的DNS解析全过程。
第一步:客户端本地查询(三级缓存检查)
你的电脑不会一上来就满世界问路,而是先“自查”:
- 浏览器缓存:浏览器会缓存最近访问过的域名解析结果。Chrome、Edge等主流浏览器通常缓存1分钟左右。
- 操作系统缓存:如果浏览器没找到,系统会检查自己的DNS缓存(Windows的ipconfig /displaydns可查看)。
- hosts文件:最后检查本地的hosts文件(位于C:\Windows\System32\drivers\etc\hosts),这里可以手动设置域名映射。
如果这三处都没有记录,你的电脑才会向本地DNS服务器发起正式查询。
第二步:向本地DNS服务器发起递归查询
你的电脑配置了DNS服务器地址(通常是运营商自动分配,或手动设置为8.8.8.8等公共DNS)。此时,电脑向本地DNS服务器发出一个递归查询请求:
“请帮我找到 www.baidu.com的IP地址,不管用什么方法,请给我最终答案。”
关键点:在递归查询中,客户端把全部责任委托给本地DNS服务器,自己进入等待状态。
第三步:本地DNS服务器的迭代查询之旅
本地DNS服务器收到请求后,首先检查自己的缓存。如果也没有记录,它便化身“侦探”,开始在全球DNS层级结构中展开迭代查询。
实际查询流程详解:
1.询问根域名服务器(全球13组逻辑根)
- 本地DNS:“请问 www.baidu.com的IP是多少?”
- 根服务器:“我不知道具体答案,但我知道 .com 区域归谁管。这是 .com 顶级域服务器的地址列表,你去问它们吧。”
2.询问顶级域(TLD)服务器
- 本地DNS(问 .com 服务器):“请问 www.baidu.com的IP是多少?”
- .com 服务器:“baidu.com 这个域不归我直接管,但我知道它的权威服务器是谁。这是 ns1.baidu.com 的地址,你去问它。”
3.询问权威域名服务器
- 本地DNS(问 ns1.baidu.com):“请问 www.baidu.com的IP是多少?”
- 权威服务器:“终于问到我了!www.baidu.com的IP是 14.215.177.38,TTL是300秒。”
第四步:结果返回与缓存
本地DNS服务器拿到最终IP后:
- 1.缓存结果:将“www.baidu.com→14.215.177.38”这个映射关系存入缓存,有效期300秒(根据TTL值)。
- 2.返回客户端:将IP地址返回给你的电脑。
- 3.电脑缓存:你的操作系统和浏览器也会缓存这个结果。
至此,DNS解析完成,你的浏览器终于拿到了目标服务器的IP地址,可以开始建立TCP连接、发送HTTP请求了。
递归 vs 迭代:两种查询模式的本质区别
| 特性 | 递归查询(Recursive Query) | 迭代查询(Iterative Query) | | — | — | — | | 查询主体 | 客户端 → 本地DNS服务器 | 本地DNS服务器 → 根/TLD/权威服务器 | | 责任方 | 本地DNS服务器承担全部查询责任 | 查询请求者(本地DNS服务器)自己负责 | | 返回结果 | 最终答案(IP地址或错误) | 最佳指引(下一级服务器地址) | | 负载承担 | 本地DNS服务器压力大 | 分散到各级权威服务器 | | 使用场景 | 客户端与本地DNS之间 | DNS服务器之间 |
简单记忆:
- 递归:“你帮我搞定,我等你结果”
- 迭代:“你告诉我下一步该问谁,我自己去问”
05 安全警示:DNS劫持与防御
DNS劫持是常见攻击手段:攻击者篡改DNS解析结果,将正常域名指向恶意IP。比如将银行网站域名指向钓鱼网站IP。
防御措施:
1.使用可信DNS:如8.8.8.8(谷歌)、1.1.1.1(Cloudflare)、223.5.5.5(阿里云)
2.开启DNS over HTTPS:加密DNS查询,防止监听和篡改
3.定期检查路由器:确保DNS设置未被恶意修改
4.注意异常现象:如访问知名网站出现证书错误、跳转到奇怪页面
06 效率优化:多级缓存机制
为了提高效率,DNS系统设计了多级缓存:
- 浏览器缓存:最快速,但容量小、时间短
- 操作系统缓存:系统级别,所有应用共享
- 路由器缓存:家庭或企业网络级别
- 本地DNS服务器缓存:服务大量用户,命中率高
- 各级DNS服务器缓存:根、TLD、权威服务器都有缓存
当缓存命中时,解析速度可提升数十倍。这也是为什么第二次访问同一网站通常比第一次快的原因。
07 DNS知识点总结
- DNS服务器的主要参数:正向查找区域、反向查找区域、资源记录、转发器;
- 转发器是网络上的DNS服务器,用于将外部域名的DNS查询;
- 动态更新允许客户机在发生更改时动态更新其资源记录;
- 在反向查找区域可以手工增加主机的指针记录,也可以自动添加指针记录;
- 增加主机资源记录的生存时间(TTL)是指该记录被客户端查询到,存放到缓存中(以被今后使用)的持续时间,默认值是3600S;
- DNS服务器分类中的根服务器不需要管理员手动配置;
- 在命令行窗口中,可以使用命令行程序nslookup对DNS服务器进行测试(正向测试/反向测试)。
- 清空DNS缓存的是使用ipconfig/flushdns;
- 默认情况下Windows 2003系统是没有安装DNS服务器的;
08 实用小贴士
如果你觉得网络访问慢或不稳定,可以尝试将DNS服务器改为:
- 阿里云公共DNS:
223.5.5.5和223.6.6.6 - 腾讯云DNSPod:
119.29.29.29 - 谷歌公共DNS:
8.8.8.8和8.8.4.4
有时候,仅仅是换一个更快的“侦探社”,就能让你的上网体验焕然一新。
结语
DNS解析,这个每天发生万亿次的静默过程,是互联网能够“按名寻址”而非“按号寻址”的基石。从客户端的递归请求,到本地DNS的全球迭代查询,再到多级缓存的效率优化,每一个环节都体现了分布式系统的精妙设计。
再次强调,能力越大,责任越大。希望我们都能用技术去守护,而不是破坏。记得给小编点个“赞”留个关注!!!
⚠️ 郑重声明:所有内容均用于合法安全研究,请务必在授权环境下进行测试。做个白帽子,很酷。 📮 欢迎交流讨论评论。如果觉得有用,不妨点个“关注”和 “赞”支持一下。
每一次技术解读、每一篇实战记录,都源于大量时间的测试、验证与梳理。如果这份指南为您打开了新的思路,或为您节省了宝贵的时间,不妨给小编进行简单的打赏,支持更多深度内容的诞生。您的每一次点赞、在看、分享,都是我们持续分享的动力;而直接的赞赏,则是对原创内容最温暖的鼓励。
让我们一起,用技术观察世界,用分享传递价值。
感谢您的阅读与支持!
免责声明:
本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。
任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。
本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我。
本文转载自:小安数记pro 小安Air 小安Air《知识分享 | 学网络必知!DNS:隐藏在你每次上网背后的“网络侦探”》
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。









评论