DNS解析过程
勘误一些没有说浏览器、os缓存的
- 检查浏览器缓存,有且没过期的话就用
- 如果上面失败, 就查操作系统中的DNS缓存(不一定有)和hosts文件,如果有则直接调用这个IP的映射进行访问
- 如果操作系统没有DNS缓存、或DNS缓存中没有、或 hosts文件(/etc/hosts、C:\Windows\System32\drivers\etc\hosts)中也没有,则会去找当前网络中设置的本地DNS服务器(/etc/resolv.conf),如果所找的网址在本地DNS服务器的授权管理的子域名范围内则返回解析给主机,一般的网址到这一步就可以找到对应IP了,此解析具有权威性
- 如果不在本地DNS服务器的授权管理的子域名范围内,但该服务器已经缓存了该网址的IP,那么返回缓存中的解析结果,此解析不具有权威性
- 如果本地DNS服务器的解析失败并且缓存中没有对应的映射关系。那么就有两种情况
- 本地DNS服务器开启转发模式。则向上一级请求,若上一级也不能解析就找上上一级依次类推,最终把解析返回给本地DNS,本地DNS缓存的同时返回给主机。
- 如果本地DNS服务器未开启转发模式。就去找根域名服务器,根DNS服务器收到请求返回顶级域名服务器的IP(.com、.cn、.org),本地DNS服务器再去找顶级域名服务器,顶级域名服务器返回权威服务器IP,本地DNS服务器再去权威服务器找,如此一级一级往下直到找到xx的主机。
os dns 缓存测试
[mifen@hp ~]$ systemctl status systemd-resolved
○ systemd-resolved.service - Network Name Resolution
Loaded: loaded (/usr/lib/systemd/system/systemd-resolved.service; disabled; preset: enabled)
Active: inactive (dead)
Docs: man:systemd-resolved.service(8)
man:org.freedesktop.resolve1(5)
https://www.freedesktop.org/wiki/Software/systemd/writing-network-configuration-manage>
https://www.freedesktop.org/wiki/Software/systemd/writing-resolver-clients
[mifen@hp ~]$ systemctl status dnsmasq
○ dnsmasq.service - dnsmasq - A lightweight DHCP and caching DNS server
Loaded: loaded (/usr/lib/systemd/system/dnsmasq.service; disabled; preset: disabled)
Active: inactive (dead)
Docs: man:dnsmasq(8)
[mifen@hp ~]$ systemctl status nscd
Unit nscd.service could not be found.
[mifen@hp ~]$ resolvectl
Failed to get global data: Could not activate remote peer: activation request failed: unknown unit.
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix