如何清除DNS缓存

DNS缓存是一个临时数据库,用于存储已解释的DNS查找信息。换句话说,每当您访问网站时

5 min read
By myfreax
如何清除DNS缓存

DNS缓存是一个临时数据库,用于存储已解释的DNS查找信息。换句话说,每当您访问网站时,您的操作系统和网络浏览器都会保留域名和相应IP地址的记录。

这消除了对远程DNS服务器重复查询的需要,并允许您的操作系统或浏览器快速解析网站的URL。

但是,在某些情况下,例如对网络问题进行故障排除,或者在更改DNS服务器之后,您将需要刷新DNS缓存。

这将清除缓存的DNS记录,并根据新配置的DNS设置解释域名。本教程说明如何在不同的操作系统和Web浏览器上刷新DNS缓存。

Windows

对于所有Windows版本,清除DNS缓存的过程都是相同的。您需要使用管理员权限打开命令提示符并运行ipconfig /flushdns

要在Windows 10和8中清除DNS缓存。首先在Windows搜索栏中键入cmd。右键单击命令提示符,然后右击以管理员身份运行。这将打开命令提示符窗口。

命令提示符窗口,键入命令ipconfig /flushdns,然后按Enter。成功后,系统将返回消息Successfully flushed the DNS Resolver Cache.

在Windows 7中清除DNS缓存,首先单击开始按钮。在Windows搜索栏中键入cmd。右键单击命令提示符,然后右击以管理员身份运行。这将打开命令提示符窗口。

命令提示符窗口,键入命令ipconfig /flushdns,然后按Enter。成功后,系统将返回消息Successfully flushed the DNS Resolver Cache.

Linux

在Linux上,除非已安装并运行Systemd-Resolved,DNSMasq或Nscd之类的缓存服务,否则没有操作系统级DNS缓存。

根据Linux发行版和所使用的缓存服务,清除DNS缓存的过程有所不同。大多数现代Linux发行版,例如Ubuntu 18.04,都使用systemd解析的服务来缓存DNS记录。

如果你的Linux发行版使用systemd作为初始化服务,你可以运行命令sudo systemctl is-active systemd-resolved.service确定DNS解释服务是否正在运行。

如果DNS服务正在运行,则将打印命令active,否则将看到inactive

如DNS解释服务正在运行,你可运行命令sudo systemd-resolve --flush-caches。清除系统解析的DNS缓存,命令成功后,该命令不会返回任何消息。

Dnsmasq是轻量级的DHCP和DNS缓存服务器。

如果您的系统使用DNSMasq作为缓存服务器,则要清除DNS缓存,需要重新启动Dnsmasq服务,运行命令sudo systemctl restart dnsmasq.service

Nscd是一个缓存守护程序,它是基于RedHat的发行版的首选DNS缓存系统。如果你的系统使用Nscd来缓存DNS记录,则需要重新启动Nscd服务。运行命令sudo systemctl restart nscd.service

MacOS

根据您所运行的版本,在MacOS中刷新缓存的命令略有不同。清除DNS缓存的命令必须具有系统管理员权限的用户运行。

要清除MacOS中的DNS缓存,首先打开mac finder。转到应用程序>实用程序>终端。这将打开终端窗口。

在终端中运行命令sudo killall -HUP mDNSResponder然后按Enter。输入您的sudo密码,然后再次按Enter。成功后,系统不会返回任何消息。

对于早期版本的MacOS,刷新缓存的命令略有不同。

MacOS版本10.11和10.9

sudo dscacheutil -flushcache
sudo killall -HUP mDNSResponder

MacOS版本10.10

sudo discoveryutil mdnsflushcache
sudo discoveryutil udnsflushcaches

MacOS版本10.6和10.5

sudo dscacheutil -flushcache

浏览器

大多数现代的Web浏览器都有一个内置的DNS客户端,以防止每次访问该网站时重复查询DNS解释IP地址。

要清除Google Chrome的DNS缓存。首先打开一个新标签,然后输入chrome://net-internals/#dns在Chrome的地址栏。点击清除缓存按钮。

如果那对您不起作用,请尝试清除缓存和cookie。按下CTRL+Shift+Del以打开清除浏览数据对话框窗口。

选择一个时间范围。选择所有时间以删除所有内容。选中Cookie和其他站点数据和缓存的图像和文件。点击清除数据按钮。

此方法适用于所有基于Chrome的浏览器,包括Chromium,Vivaldi和Opera。

要清除Firefox的DNS缓存。首先在右上角,单击汉堡包图标打开Firefox的菜单。

点击⚙ Options (Preferences)链接。单击左侧的隐私和安全性隐私选项卡。向下滚动到该History部分,然后单击Clear History...按钮。

选择要清除的时间范围。选择所有内容将会删除所有内容。选择所有复选框,然后单击立即清除

如果这对您不起作用,请尝试以下方法并暂时禁用DNS缓存。打开一个新标签,然后about:config在Firefox的地址栏中输入。

搜索network.dnsCacheExpiration,将值暂时设置为0,然后单击确定。然后,改回默认值,然后单击确定

搜索network.dnsCacheEntries,将值暂时设置为0,然后单击确定。然后,改回默认值,然后单击确定

结论

您已经了解了如何在Windows,Linux和MacOS操作系统上清除或刷新DNS缓存。Linux和MacOS可以使用dig命令来查询DNS并对DNS问题进行故障排除。

如果您有任何问题或反馈,请随时发表评论。