DNS缓存是一个临时数据库,用于存储有关「以前」的DNS查询信息。换句话说,无论何时访问网站,您的Windows、Linux或macOS操作系统和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发行版和您正在使用的缓存服务而各异。
刷新SystemdResolved缓存
大多数现代Linux发行版,如Ubuntu18.04等都使用SystemdResolved服务来缓存DNS条目。
1
在「终端」中执行以下命令确定服务是否正在运行:
sudosystemctlis-activesystemd-resolved.service
如果服务正在运行,则命令将打印出活动状态,否则您将看到非活动状态。
2
要清除SystemdResolvedDNS缓存,请执行以下命令:
sudosystemd-resolve--flush-caches
刷新DNSMasq缓存
Dnsmasq是一款轻量级的DHCP和DNS服务器,如果您的系统使用DNSMasq作为缓存服务器,要清除DNS缓存,您需要在「终端」中执行以下命令:
sudosystemctlrestartdnsmasq.service
或
sudosystemctlrestartdnsmasq.service
来重启Dnsmasq服务。
刷新Nscd缓存
Nscd是一个缓存守护进程,它是大多数基于RedHat的Linux发行版所的首选DNS缓存系统。
如果您的Linux系统使用Nscd,要清除DNS缓存,您需要在「终端」中执行以下命令:
sudosystemctlrestartnscd.service
或
sudoservicenscdrestart
来重启Nscd服务。
macOS系统清除和刷新DNS缓存
在不同版本的macOS系统中,刷新DNS缓存的方法和命令会略有不同。在最新版本的macOS中清理DNS缓存可以在「终端」中执行以下命令:
sudokillall-HUPmDNSResponder
对于早期版本的macOS,刷新DNS缓存的命令是不同的:
sudosystemctlis-activesystemd-resolved.service0sudokillall-HUPmDNSResponder
sudodiscoveryutilmdnsflushcachesudodiscoveryutiludnsflushcaches
sudosystemctlis-activesystemd-resolved.service0
Web浏览器清理和刷新DNS缓存
大多数现代Web浏览器都有内置的DNS客户端,以防止每次访问网站时重复进行DNS查询。
GoogleChrome清理DNS缓存
要清除GoogleChrome浏览器的DNS缓存,请执行以下步骤:
1
地址栏中执行chrome://net-internals/#dns打开清理页面
2
点击「Clearhostcache」按钮即可清除Chrome内置的DNS缓存条目
此方法同时适用于所有基于Chrome的浏览器,包括Chromium、Vivaldi和Opera等。
FireFox清理DNS缓存
要清除FireFox浏览器的DNS缓存,请执行以下步骤:
1
FireFox地址栏中执行about:config打开清理页面
2
搜索network.dnsCacheExpiration暂时将其值设置为0,然后单击「确定」——再改回其原有值60。
3
搜索network.dnsCacheEntries暂时将其值设置为0,然后单击「确定」——再改回其原有值400。