![ef38492c855c01a30c4c541f8959fac2.png](https://i-blog.csdnimg.cn/blog_migrate/d03c793a98d4f2f2f4bae67129c35eb9.jpeg)
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
![cd3e492db5da65532038d838032bd33a.png](https://i-blog.csdnimg.cn/blog_migrate/055be63e6501416b5887ac0df2ee82ad.jpeg)
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
![e07d4d233f142f2b764ae0a1f1980b51.png](https://i-blog.csdnimg.cn/blog_migrate/7a5a09cf8e83e43823c8edce8110e3a9.jpeg)
刷新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
![b56bdacfd5da54ee418d0e914979ab4e.png](https://i-blog.csdnimg.cn/blog_migrate/1dded410ab8b3dbeaba22e2a0258fcba.jpeg)
对于早期版本的 macOS,刷新 DNS 缓存的命令是不同的:
- macOS 10.11 和 10.9
sudo dscacheutil -flushcachesudo killall -HUP mDNSResponder
- macOS 10.10
sudo discoveryutil mdnsflushcachesudo 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 缓存条目
![1909bcc0835a91b021ee26488e4a87ae.png](https://i-blog.csdnimg.cn/blog_migrate/407d2a84bba9e3e8e8ee3834010c7563.jpeg)
此方法同时适用于所有基于 Chrome 的浏览器,包括 Chromium、Vivaldi 和Opera 等。
FireFox清理DNS缓存
要清除 FireFox 浏览器的 DNS 缓存,请执行以下步骤:
1
FireFox 地址栏中执行 about:config 打开清理页面
2
搜索 network.dnsCacheExpiration 暂时将其值设置为 0,然后单击「确定」——再改回其原有值 60。
3
搜索 network.dnsCacheEntries 暂时将其值设置为 0,然后单击「确定」——再改回其原有值 400。
![15d3df4d54359ef7d5879b3d65cdb6b9.png](https://i-blog.csdnimg.cn/blog_migrate/78582e2849fbb59f9076679ecf5d3d5e.jpeg)