一、概念
DNS 一般指域名系统(英文:Domain Name System,缩写:DNS) 通过域名访问网站,将域名转换为对应网站的 IP 地址,这就是 DNS 解析的过程。
DNS 缓存:DNS 解析之后,会将映射关系存储在浏览器或者本地,若有同样的请求进来,则优先取缓存中的数据,不会再进行 DNS 查找
二、DNS解析过程
DNS查询顺序:浏览器缓存→系统缓存→host文件→路由器缓存→ISP DNS 缓存(网络业务提供商)→递归搜索
在浏览器输入网址后,如果命中缓存,则直接返回域名对呀的ip地址。如果没有命中缓存,则由本机 DNS 客户端,向根域名解析器,顶级域名服务器,权威域名服务器发送请求,最后收到权威域名服务器响应的ip地址,浏览器可以正常访问网页。 流程如下图所示
可以使用dig命令跟dns服务器交互,查看效果
三、清除dns缓存
- 浏览器dns缓存
打开网址
chrome://net-internals/#dns,点击Clear host cache按钮后重启浏览器(一定要重启)即可。
- 系统dns缓存
mac系统:在命令行输入
sudo dscacheutil -flushcache,低版本sudo killall -HUP mDNSResponder
windows系统:在命令行窗口输入ipconfig /flushdns
四、查看 chrome 浏览器 DNS缓存
windows 系统打开 chrome://net-internals/#dns,即可看到缓存信息,mac 系统需要使用如下方式操作。
- 输入网址 chrome://net-export/ ,点击 start logging to disk 按钮。
2. 点击stop logging按钮,并将文件保存在本地
3. 打开netlog-viewer.appspot.com/#import(如果响应超时,需要科学上网),导入上面保存的json文件,左侧选择DNS,就可以当前浏览器下的dns缓存
四、拓展
- DNS_PROBE_FINISHED_NXDOMAIN 错误,表示无法解析域名,可以尝试清除浏览器 DNS 缓存,重新设置系统 DNS。