你有没有试过在公司内网突然打不开几个常用网站,但用手机4G却能正常访问?或者重启路由器后,第一次打开网页总要等好几秒,之后就快多了?这些现象背后,很可能和「DNS缓存」有关——而如果人为把DNS缓存关掉,事情会变得更慢、更卡、甚至更不稳定。
DNS缓存本来是干啥的?
每次你在浏览器输 www.baidu.com,电脑不会直接去问根服务器“它IP是多少”,而是先查本地有没有存过这个域名对应的IP。这个“存过”的地方,就是DNS缓存:操作系统(如Windows的dnscache服务、macOS的mDNSResponder)、路由器、ISP的DNS服务器,甚至浏览器自己都会缓存几秒到几小时不等。
关掉它,最直接的感觉就是「变慢」
假设你每天刷30次知乎,每次都要重新走一遍完整的DNS查询链路:本地→路由器→运营商DNS→权威DNS→返回IP。原本可能10ms搞定的解析,关缓存后平均变成80–200ms。页面加载时间未必翻倍,但首屏延迟感明显增强,尤其对HTTP/2或Websocket频繁建连的应用(比如在线协作文档、实时聊天),连接建立前多卡那一下,体验就差了一截。
还可能触发额外问题
有些小型DNS服务器(比如OpenWrt路由器上跑的dnsmasq)默认缓存只存500条记录。关掉缓存后,每条请求都穿透到上游,容易被运营商DNS限速或拦截——你没改DNS地址,却突然发现某些小众域名解析失败,查日志才发现是上游返回了REFUSED。
另外,开发调试时有人会执行:
sudo systemctl stop systemd-resolved
sudo killall -HUP mDNSResponder想“清空一切重来”。但如果没同步更新/etc/resolv.conf或网络管理器配置,系统可能退回到不可靠的默认DNS(比如169.254.x.x段的链路本地地址),导致部分域名压根解析不出。什么情况下真需要关DNS缓存?
极少。常见于:刚换完网站服务器IP,又不想等TTL过期,临时关缓存强制刷新;或做DNS污染测试时,确保每次请求都真实发出去。普通用户、中小企业的办公网络,完全没有必要关——它不是病毒,也不是安全隐患,反而是提升响应速度和降低上游压力的“隐形加速器”。
一句话:DNS缓存就像你常去的菜市场摊主,记得你爱买哪几样菜,不用每次从头问价称重。关掉它,不是更干净,只是让自己多跑几步路而已。