DNS 缓存是一个临时数据库,用于存储有关「以前」的 DNS 查询信息。换句话说,无论何时访问网站,您的 Windows、Linux 或 mac OS 操作系统和 Chrome、Firefox 等Web 浏览器都会记录域名和其相对应的 IP 地址。这样就消除了对远程 DNS 服务的重复查询需要,以允许操作系统和网页浏览器能够通过 DNS 缓存快速解析网站的 URL。
但是,在某些情况下,例如:要对网络连接问题进行排错时;或者更改了 DNS 服务器时,可能就需要手动清除和刷新 DNS 缓存。这样一来就可以清除掉已经缓存的 DNS 条目,再根据新配置的 DNS 设置来解析名称。
下面系统极客就为大家汇总介绍,如何在不同操作系统和 Web 浏览器中手动刷新 DNS 缓存。
Windows系统清除和刷新DNS缓存
清除 DNS 缓存的步骤对所有 Windows 版本都是相同的,您只需使用管理员权限打开「命令提示符」并运行以下命令即可:
1
在「开始」菜单中搜索 cmd——右击「命令提示符」——选择「以管理员身份运行」
2
执行以下命令就可以刷新 Windows 操作系统级别的 DNS 缓存:
ipconfig /flushdns
Linux系统清除和刷新DNS缓存
在 Linux 操作系统中,除非您安装并运行了 Systemd-Resolved、Dnsmasq 或Nscd 等缓存服务,否则就不会存在操作系统级的 DNS 缓存。而且,刷新 DNS 缓存的过程或步骤会因 Linux 发行版和您正在使用的缓存服务而各异。
刷新Systemd Resolved缓存
大多数现代 Linux 发行版,如 Ubuntu 18.04 等都使用 Systemd Resolved 服务来缓存 DNS 条目。
1
在「终端」中执行以下命令确定服务是否正在运行:
sudo systemctl is-active systemd-resolved.service
如果服务正在运行,则命令将打印出活动状态,否则您将看到非活动状态。
2
要清除 Systemd Resolved DNS 缓存,请执行以下命令:
sudo systemd-resolve --flush-caches
刷新DNSMasq缓存
Dnsmasq 是一款轻量级的 DHCP 和 DNS 服务器,如果您的系统使用 DNSMasq 作为缓存服务器,要清除 DNS 缓存,您需要在「终端」中执行以下命令:
sudo systemctl restart dnsmasq.service
或
sudo systemctl restart dnsmasq.service
来重启 Dnsmasq 服务。
刷新Nscd缓存
Nscd 是一个缓存守护进程,它是大多数基于 RedHat 的 Linux 发行版所的首选 DNS 缓存系统。
如果您的 Linux 系统使用 Nscd,要清除 DNS 缓存,您需要在「终端」中执行以下命令:
sudo systemctl restart nscd.service
或
sudo service nscd restart
来重启 Nscd 服务。
macOS系统清除和刷新DNS缓存
在不同版本的 macOS 系统中,刷新 DNS 缓存的方法和命令会略有不同。在最新版本的 macOS 中清理 DNS 缓存可以在「终端」中执行以下命令:
sudo killall -HUP mDNSResponder
对于早期版本的 macOS,刷新 DNS 缓存的命令是不同的:
- 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缓存
大多数现代 Web 浏览器都有内置的 DNS 客户端,以防止每次访问网站时重复进行 DNS 查询。
Google Chrome清理DNS缓存
要清除 Google Chrome 浏览器的 DNS 缓存,请执行以下步骤:
1
地址栏中执行 chrome://net-internals/#dns 打开清理页面
2
点击「Clear host cache」按钮即可清除 Chrome 内置的 DNS 缓存条目
此方法同时适用于所有基于 Chrome 的浏览器,包括 Chromium、Vivaldi 和Opera 等。
FireFox清理DNS缓存
要清除 FireFox 浏览器的 DNS 缓存,请执行以下步骤:
1
FireFox 地址栏中执行 about:config 打开清理页面
2
搜索 network.dnsCacheExpiration 暂时将其值设置为 0,然后单击「确定」——再改回其原有值 60。
3
搜索 network.dnsCacheEntries 暂时将其值设置为 0,然后单击「确定」——再改回其原有值 400。