你有没有遇到过这样的情况:刚改完网站域名,用浏览器却还打不开新地址,或者明明换了DNS服务器,网页还是老样子?又或者某天突然发现打开常用网站特别慢,刷新几次才正常?这些现象背后,很可能就是DNS缓存在悄悄起作用。
DNS缓存不是‘垃圾’,而是‘速记本’
DNS缓存,说白了就是电脑或路由器临时记下的‘网址→IP地址’对照表。比如你输入 www.baidu.com,系统得先去查这个域名对应哪个IP(比如 180.101.49.12),才能真正连上服务器。这个查询过程要走网络、找DNS服务器、等响应——有点费时间。所以系统干脆把查到的结果存下来,下次再访问百度,直接翻‘速记本’,不用重新问,速度自然快了。
缓存在哪儿?不止一个地方
其实DNS缓存是分层的,就像快递中转站一样,离你越近的缓存越容易被调用:
- 浏览器缓存:Chrome、Edge这些浏览器自己会记最近查过的域名,关掉标签页也不一定马上清空;
- 操作系统缓存:Windows有DNS Client服务,macOS和Linux也有各自的缓存机制;
- 路由器缓存:家里的Wi-Fi路由器也常自带DNS缓存,全家设备都共用一份;
- ISP缓存:你家宽带运营商的DNS服务器也会缓存,影响范围更大。
什么时候该清理DNS缓存?
一般不用主动管它,但遇到下面这些情况,可以试试清一清:
- 网站更换了服务器,IP变了,但浏览器还在用旧IP,打不开或跳错页面;
- 修改了hosts文件,但没生效;
- 怀疑被劫持(比如搜百度结果跳到奇怪广告页),可能是缓存里混进了错误记录。
Windows清缓存命令(管理员身份运行CMD):
ipconfig /flushdns
macOS清缓存命令(终端执行):
sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder
Linux(部分发行版,如Ubuntu):
sudo systemd-resolve --flush-caches
清完之后,下一次访问网站会重新查DNS,可能稍慢半秒,但能确保拿到最新、最准的IP地址。
顺便提一句:有些浏览器插件或安全软件会禁用系统DNS缓存,改用自己的一套机制,这时候光刷系统缓存可能没用,得看具体工具的设置。