如何清除与刷新 DNS 缓存,完全指南

2023年 8月 17日 92.3k 0

如何清除与刷新 DNS 缓存,完全指南-1

清除或刷新 DNS 缓存可以保护隐私,帮助解决 HTTP 错误,并防止恶意 DNS 欺骗。在本文中,我们将解释 DNS 缓存是什么,以及在什么情况下可能需要清除 DNS 缓存。

在某些情况下,例如排查网络连接问题或更改 DNS 服务器时,就可能需要手动清除和刷新 DNS 缓存。这将清除已经缓存的 DNS 条目,并根据新配置的 DNS 设置来解析名称。

下面,系统极客将为您介绍如何在不同的操作系统和 Web 浏览器中手动刷新 DNS 缓存。

本文内容涵盖

  • 什么是 DNS 缓存
  • 什么是刷新 DNS 缓存
  • 为什么要刷新 DNS 缓存
  • Windows 清除和刷新 DNS 缓存
  • Linux 清除和刷新 DNS 缓存
  • macOS 清除和刷新 DNS 缓存
  • Web 浏览器清除和刷新 DNS 缓存

什么是 DNS 缓存

DNS(域名系统)缓存是记录应用程序(例如 Web 浏览器)向 DNS 服务器发出的所有查询的临时数据库。当您在 Web 浏览器((例如 Chrome、Firefox))中输入 URL 时,浏览器会向 DNS 服务器发出请求,以获取该 URL 域名的 IP 地址。浏览器在接收到 IP 地址后,即可在窗口中加载网站。

但是,当您尝试再次访问该网站时,会发生什么呢?Web 浏览器是否需要再次向 DNS 服务器发出新的查询请求?

不需要。默认情况下,大多数操作系统(例如 Windows 或 macOS)会将 IP 地址和域名系统(DNS)记录缓存起来,以便更快地满足未来的请求。这就是 DNS 缓存。DNS 缓存可以避免浏览器发出不必要的新请求,而是使用已经存储的信息来加载网站。这减少了服务器响应时间,从而使网站加载更快。

什么是刷新 DNS 缓存

刷新 DNS 缓存会清除缓存中的所有 IP 地址和 DNS 记录。这有助于解决安全、网络连接和其他问题。

例如,当我们浏览器的地址栏中首次输入 https://www.sysgeek.cn 时,浏览器必须向 DNS 服务器询问该网站的 IP 位置。一旦获取了这些信息,浏览器就可以将其存储在本地缓存中。当下一次再输入该网址时,浏览器将首先在本地缓存中查找其 DNS 信息,以便更快地访问该网站。

问题在于,有时可能会缓存不安全的 IP 地址或已经失效的 IP 结果,这时就需要将其删除。DNS 缓存还可能影响您连接到 Internet 的能力或引起其他问题。无论出于什么原因,所有主要操作系统都允许您强制清除此缓存的过程,也就是「刷新 DNS 缓存」。

重要的是要了解,DNS 缓存条目也会定期自动清除,无需干预。这是因为 DNS 缓存除了保存所有与识别和查询域名相关的信息外,还保存了一个称为 TTL(生存时间)的值。

如何清除与刷新 DNS 缓存,完全指南-1DNS 缓存 TTL

TTL 定义了 DNS 记录「保持有效」的时间段(以秒为单位)。在此期间,所有查询请求将从本地缓存中得到回答,而无需再次查询 DNS 服务器。一旦 TTL 到期,该条目将自动从缓存中删除。

有时我们要强制刷新 DNS,而不是等待所有条目 TTL 自动到期。接下来我们来看看为什么需要这样做。

为什么要刷新 DNS 缓存

有几个主要原因可能会需要清空 DNS 缓存,这些原因可能与安全、技术问题或数据隐私有关。

1. 防止 DNS 欺骗

DNS 欺骗,也称为 DNS 缓存投毒,是一种攻击方式。恶意攻击者通过访问 DNS 缓存并篡改其中的信息,将您重定向到错误的网站。有时,他们会将您重定向到钓鱼网站,以便窃取敏感信息,例如网银登录信息。建议对 DNS 缓存定期清除,以防止此类攻击。

如何清除与刷新 DNS 缓存,完全指南-1DNS 欺骗

2. 遇到 404 错误

假设已经缓存了一个网站的 DNS 信息,但该网站已经更换了新的 IP 地址。在这种情况下,计算机上的 DNS 信息可能不会立即更新,导致尝试访问时会看到 404 错误或旧版本的网站。尽管这些信息最终会在 DNS 缓存中更新,但也可以不用等待,随时都可以手动清除 DNS 缓存。

3. 无法访问网站

如果无法访问某个网站,应首先尝试其他步骤,例如清除 Web 浏览器的临时文件和 cookies,调整浏览器设置以关闭弹窗拦截功能并允许网站保存和读取 cookies。如果这些步骤都无效,还可以尝试清除 DNS 缓存记录并向服务器发出新的请求。

4. 保护访问隐私

当您想保护访问隐私时,通常会想到 cookie,但 DNS 缓存同样会泄露访问历史记录。因为 DNS 缓存像一个虚拟地址簿一样存储您经常访问的网站信息。为了避免数据收集者或网络上的不良行为者获取这些信息,定期刷新 DNS 缓存是一种好的习惯。

既然已经了解了清除 DNS 缓存的含义和为什么要这样做,下面就详细介绍如何操作。

Windows 清除和刷新 DNS 缓存

在 Windows 计算机上清除 DNS 缓存相对简单,以下是在 Windows 11、10、8、7 和 XP 上完成此操作的方法:

1在「开始」菜单中搜索cmd——以管理员身份运行「命令提示符」

2执行以下命令以刷新操作系统级别的 DNS 缓存:

ipconfig /flushdns

如何清除与刷新 DNS 缓存,完全指南-1Windows 刷新 DNS 缓存

Linux 清除和刷新 DNS 缓存

与 Windows 和 macOS 不同,在 Linux 操作系统中,除非您安装并运行了 systemd-resolved、DNSMasq 或 Nscd 等服务,否则就不会存在操作系统级的 DNS 缓存。根据服务的不同,您可以清除缓存或重新启动服务。

刷新 systemd-resolved 缓存

大多数现代 Linux 发行版,如 Ubuntu 等都使用 systemd-resolved 服务来缓存 DNS 条目。要清除 systemd-resolved 的 DNS 缓存,请在「终端」中执行以下命令:

sudo systemd-resolved --flush-caches
#或者(前者老版本,后者新版本)
sudo resolvectl flush-caches

如何清除与刷新 DNS 缓存,完全指南-1Linux 刷新 DNS 缓存

刷新 DNSMasq 缓存

Dnsmasq 是一款轻量级的 DHCP 和 DNS 服务器,如果您的系统使用 DNSMasq 服务,可以在「终端」中执行以下命令来重启 Dnsmasq 服务以清除 DNS 缓存:

sudo /etc/init.d/dnsmasq restart

刷新 Nscd 缓存

Nscd 是一个缓存守护进程,它是大多数基于 RedHat 的发行版所的首选 DNS 缓存系统。如果您的 Linux 系统使用 Nscd,可以在「终端」中执行以下命令清理 DNS 缓存:

sudo /etc/init.d/nscd restart

刷新 BIND 缓存

对于 BIND 服务,需要执行多条命令来清除 DNS 缓存:

sudo /etc/init.d/named restart
sudo rndc restart
sudo rndc exec

macOS 清除和刷新 DNS 缓存

要清除 macOS 上的 DNS 缓存,需要用到「终端」工具,并执行相应的命令。这个过程会因您使用的 macOS 版本而有所不同。

如果不确定使用的是哪个版本,请点击桌面左上角的「苹果」图标,然后选择「关于本机」。

  • macOS Catalina (10.15)、macOS Big Sur(11)、macOS Monterey(12) 和 macOS Ventura(13)
sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder

如何清除与刷新 DNS 缓存,完全指南-1macOS 刷新 DNS 缓存

  • El Capitan (10.11)、Sierra (10.12)、High Sierra (10.13)、Mojave (10.14)
sudo killall -HUP mDNSResponder
  • macOS Yosemite (10.10)
sudo discoveryutil udnsflushcaches
  • macOS Lion (10.7)、Mountain Lion (10.8) 和 Mavericks (10.9)
sudo killall -HUP mDNSResponder
  • macOS Snow Leopard (10.6)
sudo dscacheutil -flushcache
  • macOS Leopard (10.5)
sudo lookupd -flushcache

Web 浏览器清除和刷新 DNS 缓存

正如本文开头提到的,大多数现代 Web 浏览器都有内置的 DNS 客户端功能,以防止每次访问网站时重复进行 DNS 查询。您可能需要清除浏览器的 DNS 缓存而不是操作系统的。

清除 Google Chrome 的 DNS 缓存

以下是可以访问和清除 Chrome 中 DNS 缓存的方法:

1使用Ctrl + T快捷键打开一个新标签页——在地址栏中执行chrome://net-internals/#dns打开清理页面。

如何清除与刷新 DNS 缓存,完全指南-1Chrome 清除 DNS 缓存

2然后,点击「Clear host cache」按钮以清除本地 DNS 缓存。

清除 Microsoft Edge 的 DNS 缓存

Microsoft Edge 在 2020 年切换到了 Chromium 内核以提高其稳定性和性能。由于它使用与 Chrome 相同的浏览器引擎,因此清除 DNS 缓存的步骤类似:

1使用Ctrl + T快捷键打开一个新标签页——在地址栏中执行edge://net-internals/#dns打开清理页面。

如何清除与刷新 DNS 缓存,完全指南-1Microsoft Edge 清除 DNS 缓存

2然后,点击「Clear host cache」按钮以清除 Edge 浏览器本地 DNS 缓存。

清除 Mozilla Firefox 的 DNS 缓存

由于 Mozilla Firefox 不使用 Chromium 引擎,所以清除 DNS 缓存的步骤与基于 Chromium 的浏览器不同。请按以下步骤进行操作:

1打开 Firefox 并打开一个新的标签页——在地址栏中执行about:networking#dns命令打开清理页面。

如何清除与刷新 DNS 缓存,完全指南-1Firefox 清除 DNS 缓存

2然后,点击「清除 DNS 缓存」按钮以清理 Firefox 浏览器本地 DNS 缓存。

清除 Apple Safari 的 DNS 缓存

Safari 浏览器将 DNS 缓存清除选项隐藏在「开发」设置中。因此,需要先启用「开发」菜单,才能看到清除 DNS 缓存的选项。以下是操作步骤:

1打开 Safari 浏览器——使用⌘,快捷键打开「设置」——勾选「在菜单栏中显示开发菜单」复选框。

如何清除与刷新 DNS 缓存,完全指南-1在 Safari 菜单栏中显示开发菜单

2点击「开发」菜单——选择「清空缓存」或者使用⌥⌘E快捷键清空缓存。

如何清除与刷新 DNS 缓存,完全指南-1Safari 清空 DNS 缓存

刷新 DNS 缓存只需要几个简单的步骤。首先,您需要知道正在使用的操作系统和版本。然后,按照上述步骤执行简单的命令即可清除 DNS 缓存。

定期清除 DNS 缓存有许多好处,例如可以帮助防止网络钓鱼等攻击,使您访问的网站是最新版本,恢复互联网连接,并保护数据隐私。

最重要的是,这个过程非常简单。按照以上步骤,无论您使用的是什么操作系统和 Web 浏览器,都可以快速轻松地执行 DNS 刷新。

相关文章

服务器端口转发,带你了解服务器端口转发
服务器开放端口,服务器开放端口的步骤
产品推荐:7月受欢迎AI容器镜像来了,有Qwen系列大模型镜像
如何使用 WinGet 下载 Microsoft Store 应用
百度搜索:蓝易云 – 熟悉ubuntu apt-get命令详解
百度搜索:蓝易云 – 域名解析成功但ping不通解决方案

发布评论