如何清除DNS缓存,DNS缓存是什么 作用

题图来自Unsplash,基于CC0协议
导读
当你在浏览器中无法访问某个网站,或者页面加载异常缓慢,甚至看到“无法找到服务器”的提示时,问题很可能出在DNS缓存上。简单来说,DNS缓存就像是你电脑上的一份通讯录,记录了你访问过的网站域名与对应IP地址的对应关系。这份缓存原本是为了加快访问速度,但如果其中的记录因网络切换、网站服务器变更或遭遇恶意篡改而过时甚至错误,就会导致你无法正常访问网站。
清除DNS缓存就是强制让电脑忘记这些旧记录,下次访问时重新向DNS服务器获取最新的、正确的IP地址,从而解决连接问题。以下是针对不同操作系统以及特殊情况的清除方法,操作非常简单,通常不需要安装任何额外软件。
1. Windows 10 / Windows 11 用户
这是最通用的方法,适用于绝大多数Windows系统。
- 步骤: 按下键盘上的
Win+R键,打开“运行”对话框。 - 输入命令: 在框中输入
cmd,然后按住键盘上的Ctrl+Shift+Enter(注意:一定要同时按这三个键),这会以管理员权限打开命令提示符窗口。 - 执行清除: 在黑色窗口中,输入以下命令并按回车键:
ipconfig /flushdns - 验证成功: 如果看到“已成功刷新 DNS 解析程序缓存”的提示,就说明操作完成了。
2. macOS 用户
苹果系统不同版本的命令略有差异,但当前主流版本(macOS Sierra 10.12 及以上,包括Ventura、Sonoma、Sequoia)都使用同一个命令。
- 步骤: 打开“启动台” -> “其他” -> “终端” (或直接通过Spotlight搜索“终端”)。
- 执行命令: 在终端窗口中输入以下命令,然后按回车键(系统可能提示输入你的电脑密码,输入时屏幕不会显示字符,输入完直接按回车即可):
sudo dkillall -HUP mDNSResponder - 验证成功: 命令执行后通常没有成功提示,只要没有报错“command not found”即可。你可以接着输入
sudo killall -HUP mDNSResponder(与上一条相同效果)或者重启浏览器验证。
3. Linux 用户
Linux发行版(如Ubuntu、CentOS、Debian)大多使用systemd-resolved服务来管理DNS缓存,少数老版本可能使用dnsmasq。
- 方法一(通用性较强): 打开终端,输入:
sudo systemd-resolve --flush-caches或者sudo resolvectl flush-caches - 验证: 可以通过
sudo systemd-resolve --statistics或者resolvectl statistics查看缓存大小是否变为0。 - 备选方案(针对dnsmasq): 如果你使用的是Ubuntu 16.04及更早版本,或手动配置了dnsmasq,可以尝试:
sudo /etc/init.d/dnsmasq restart或sudo systemctl restart dnsmasq。
4. 特殊情况:浏览器内置的DNS缓存
除了操作系统,像Chrome、Edge、Firefox这类浏览器也有自己独立的DNS缓存(用于HTTP/3或QUIC协议)。如果你清除了系统缓存但问题依旧,可以尝试清除浏览器缓存:
- Chrome/Edge: 在地址栏输入
chrome://net-internals/#dns或edge://net-internals/#dns,点击“Clear host cache”按钮。 - Firefox: 在地址栏输入
about:networking#dns,然后点击“清除DNS缓存”。
清除后有什么影响?
- 正面影响: 解决“网站打不开”、“页面重定向错误”或“DNS劫持”等问题。如果你的DNS曾遭“缓存中毒”(被恶意修改指向钓鱼网站),清除缓存后能立刻切断这种威胁,恢复正常访问。
- 短暂负面影响: 在首次重新解析所有域名的瞬间,可能感觉网页打开速度比平时略慢一点(因为需要重新请求)。但这通常只持续几秒钟,随着缓存重新建立,速度会恢复正常。清除DNS缓存不会影响你的浏览器书签、已下载的文件或任何个人数据。
总结: 无论你用什么系统,核心就是打开终端或命令提示符,执行一个特定的清除命令。如果遇到网络异常,这通常是第一个值得尝试的、没有任何风险的修复步骤。如果你是在公共WiFi下遇到DNS中毒问题,除了清除自身缓存,建议立即修改相关账号密码。
© 版权声明
本文由盾科技原创,版权归 盾科技所有,未经允许禁止任何形式的转载。转载请联系candieraddenipc92@gmail.com