清除dns缓存命令使用方法,如何清除DNS缓存

题图来自Unsplash,基于CC0协议
导读
清除 DNS 缓存命令使用方法
在使用网络浏览网页时,有时会遇到访问旧版本网站、网站重定向或者加载异常等问题。这种情况有时并不是服务器本身的问题,而可能与你的设备中存储的 DNS(域名系统)缓存数据有关。DNS 缓存就像是网页地址到服务器 IP 地址的“快速查找表”,缓存有助于加快后续访问相同网站的速度。然而,如果缓存的数据发生了变化(例如你更改了路由器设置、更换了 DNS 服务器、或网站域名解析被重置后),则使用旧的错误缓存进行访问,就会导致网络问题。
清除 DNS 缓存可以通过特定的命令来实现,这些命令因操作系统而异。
[如何清除 DNS 缓存]
清除 DNS 缓存的目的是让操作系统或网络应用程序重新从 DNS 服务器获取最新的域名解析信息,而不是继续使用本地存储的旧缓存。这对于解决由于错误缓存导致的各种浏览问题、确保获取到正确的网站地址或者在进行网络故障排查时非常有用。执行清除操作不会影响你的网络连接本身,也只会暂时增加一点访问时间(因为需要重新查询 DNS)。
[清除 DNS 缓存命令 Windows]
Windows 系统提供了几个命令来清除其内置的 DNS 解析器缓存。最常用且简单的命令是:
- ipconfig /flushdns
- 操作方法: 打开命令提示符。可以通过在开始菜单搜索“cmd”或“命令提示符”来找到并运行它。
- 在打开的黑框窗口里,粘贴命令
ipconfig /flushdns,然后按回车键 Enter。 - 成功执行后,命令行会显示“Successfully flushed DNS Resolver Cache.”的消息。
- *历史遗留的旧命令(通常不推荐):**
- 旧版本的 Windows 中,有时也会使用
net stop dnscache来停止 DNS 缓存服务,然后再使用net start dnscache来重新启动它,从而间接清除缓存。但ipconfig /flushdns是目前主要且推荐用于直接清除 DNS 缓存的命令。 - 另外,打开 Windows PowerShell(管理员权限可能不是必需的),你可以使用
Clear-DnsClientCache命令。在 PowerShell 提示符后输入该命令并按回车即可。
- 旧版本的 Windows 中,有时也会使用
[清除 DNS 缓存命令 macOS]
苹果的 macOS 同样提供了清除其内置 DNS 缓存的命令行工具。主要的方法有两种:
-
使用
dscacheutil- 操作方法: 打开应用程序中的“终端”。
- 在 Terminal 窗口里,输入命令
dscacheutil -flushcache,然后按回车键 Enter。 - 系统不会有视觉上的反馈变化,但命令已在后台完成了清除工作。
-
使用
killall和mdnsresponder(macOS 10.12 Sierra 之后可能适用)- 操作方法: 同样在“终端”中,输入命令
sudo killall -HUP mDNSResponder,然后按回车。 - 系统可能会提示你输入当前用户的管理员密码。
- 执行此命令后,macOS 的 DNS 缓存将被清空。
- 操作方法: 同样在“终端”中,输入命令
[清除 DNS 缓存命令 Linux]
Linux 不同发行版本的清除 DNS 缓存的命令略有不同,主要取决于你使用的 DNS 解析器和服务。
-
对于使用
systemd-resolved(常见于较新版本的 Debian/Ubuntu/CentOS Stream 等,默认集成在 systemd 系统中)的系统:- 命令:
sudo systemd-resolve --flush-caches - 操作方法: 拥有管理员权限打开终端(例如使用 Terminal 或 Konsole 应用),运行上述命令。可能需要输入密码。
- 命令:
-
对于使用
nsswitch.conf配置、并调用了传统的dnsmasq或bind(较少见于现代服务器)等单独的 DNS 解析器服务的系统:- 通常可以通过重新启动这些服务来清除其 DNS 缓存。
- 重启
dnsmasq(如果你使用的是这个服务):- 命令:
sudo systemctl restart dnsmasq或sudo service dnsmasq restart
- 命令:
- 重启
systemd-resolved(如果配置中不直接使用这个服务,但 DNS 解析却意外走这里,即使使用其他服务如 dnsmasq,最终查询可能仍会由 systemd-resolved 提供给应用层 ):- 命令:
sudo systemctl restart systemd-resolved(重启可能效果更好,但--flush-caches是专门的,但 systemresolved 并没有提供“管道清除缓存给应用程序”的命令,上述的systemd-resolve --flush-caches主要是在解析器层面清空其内部缓存,并不保证流程给所有应用程序,因为各应用可能通过不同时点链接到其服务) - 对于这些“传统”DNS服务(
dnsmasq,bind等,它们不在 systemd-resolved 下),通常重启它们是更标准的做法。
- 命令:
[ipconfig /flushdns 用法]
ipconfig /flushdns 是一个功能专门针对微软 Windows 系统网络栈的命令。它属于 ipconfig(Internet 网络配置)命令集的一部分。正如其名,该命令的作用就是清理由 Windows DNS 解析器服务缓存的所有 DNS 记录。
这个命令的背景是,很多操作系统(包括过去的 Windows 版本和一些其他的 Unix 类系统)都可能使用 名称服务缓存 服务(例如在 macOS 上是 mDNSResponder,在 Linux 上是 systemd-resolved 或 netd 等)。而 ipconfig /flushdns 是 Windows 系统为此类 Windows 内部 DNS 缓存机制专门增加的命令。当在提示符下运行 ipconfig /flushdns 时,系统会强制清空了缓存在内的所有本地 DNS A 记录、AAAA 记录以及 SRV 记录等。
它的使用非常简单:只需要在 Windows 的命令提示符(CMD)界面中输入 ipconfig /flushdns 并按回车即可。执行成功后,系统会显示一条确认信息,表明 DNS 缓存已清除。这个命令对于解决 Windows 主机上的 DNS 解析问题(如访问因域名变化而失效的网站或 URL 路径)特别有效。
总结: DNS 缓存有助于提高上网速度,但也可能导致某些访问问题。通过使用各自操作系统提供的专用命令(Windows 的 ipconfig /flushdns,macOS 的 dscacheutil 或 killall mDNSResponder,以及 Linux 上的相应服务重启命令或专用工具),你可以有效地清除这些缓存,强制设备下次获取最新的 DNS 解析信息。
© 版权声明
本文由盾科技原创,版权归 盾科技所有,未经允许禁止任何形式的转载。转载请联系candieraddenipc92@gmail.com