如何在 macOS、Windows 和 Linux 中清除 DNS 缓存?

linuxoperating systemopen source

简介

在当今世界,互联网已成为我们日常生活中不可或缺的一部分。从工作到娱乐,我们无所不能,我们访问的每个网站都由其唯一的 IP 地址标识。然而,记住这些 IP 地址并非易事,甚至是不可能的。

这时就需要域名系统 (DNS) 了。它将这些数字 IP 地址转换为易于记忆的可读域名。

DNS 缓存说明

当计算机或设备连接到互联网或网络时,它会在其内存缓存中保存一份 DNS 信息的副本,称为 DNS 缓存。此缓存的目的是加快对同一域名的未来请求,并通过避免重复查找来减少网络流量。

DNS 缓存存储域名、其对应的 IP 地址以及用户先前请求的其他相关数据等信息。

刷新 DNS 缓存的重要性

尽管 DNS 缓存系统非常有用,但有时缓存信息可能会过时或损坏,从而给尝试连接网站或网络的用户带来问题。例如,如果您尝试访问的网站最近更改了托管服务提供商并更新了 IP 地址,但您的系统仍在 DNS 缓存中保留了其旧地址信息,那么您将无法访问该网站。

如何在 macOS 中刷新 DNS 缓存

使用终端命令

使用终端命令刷新 macOS 上的 DNS 缓存是清除任何过时 DNS 条目的简单有效的方法。以下是通过终端命令行刷新 DNS 缓存的分步说明。

  • 从应用程序文件夹中打开"终端"应用程序,或在 Spotlight 中搜索它。

  • 输入以下命令:sudo killall -HUP mDNSResponder

  • 按 Enter 键,并在出现提示时输入您的管理员密码。

  • 输入管理员密码后,再次按 Enter 键。大功告成!

您已成功使用 macOS 上的终端刷新 DNS 缓存。

使用"系统偏好设置"

或者,macOS 用户也可以通过"系统偏好设置"刷新 DNS 缓存。

  • 从 Apple 菜单或在 Spotlight 中搜索它来打开"系统偏好设置"。

  • 前往"网络">"高级">"DNS">点击"DNS"选项卡

  • 点击"DNS 服务器"下 IP 地址前的"减号"(-) 按钮

  • 最后点击"应用",然后点击"确定"

大功告成!您已成功通过 macO 上的系统偏好设置刷新 DNS 缓存。以下是一些用于辅助显示的屏幕截图 -

如何在 Windows 中清除 DNS 缓存

使用命令提示符

在 Windows 中清除 DNS 缓存的最常用方法之一是使用命令提示符。为此,只需按照以下分步说明操作即可:

  • 点击屏幕左下角的"开始菜单"图标。

  • 在搜索栏中输入"cmd"。

  • 右键单击"命令提示符",然后选择"以管理员身份运行"。

  • 在命令提示符中输入"ipconfig /flushdns",然后按 Enter 键。

  • 您应该会看到一条消息,确认您的 DNS 缓存已成功刷新。

为了确保您已正确刷新 DNS 缓存,使用 ipconfig 命令进行检查会很有帮助。清除缓存后,只需在命令提示符中输入"ipconfig /displaydns",您就会看到一个空列表,表明您的 DNS 缓存已清除。

使用 PowerShell

在 Windows 中清除 DNS 缓存的另一种方法是使用 PowerShell。虽然这种方法可能不如使用命令提示符那么常用,但对于某些用户来说,它仍然是一个有用的替代方法。

请按照以下简单步骤操作 -

  • 点击屏幕左下角的"开始"菜单图标。

  • 在搜索栏中输入"powershell"。

  • 右键单击"Windows PowerShell",然后选择"以管理员身份运行"。

  • 在 PowerShell 中输入"Clear-DnsClientCache",然后按 Enter。

  • 您应该会看到一条消息,确认您的 DNS 缓存已成功清除。

与通过命令提示符刷新一样,您可以使用 PowerShell 检查 DNS 缓存是否已正确清除。只需在刷新缓存后,在 PowerShell 中输入"ipconfig /displaydns",您就会看到一个空列表,表明您的 DNS 缓存已清除。

如何在 Linux 中刷新 DNS 缓存?

刷新 nscd 守护进程缓存

在 Linux 上刷新 DNS 缓存可以通过多种方法完成。其中一种方法是刷新 nscd 守护进程缓存。nscd(名称服务缓存守护进程)是一项系统服务,用于缓存和加速 DNS 查找。

但是,有时它可能会导致缓存信息过时或不正确,从而导致访问某些网站时出现问题。因此,不时刷新 nscd 缓存至关重要。

为此,首先打开终端并输入命令"sudo systemctl restart nscd.service"。这将重新启动名称服务缓存守护进程,并清除所有已缓存的主机名或 IP 地址条目。

sudo systemctl restart nscd.service

刷新 systemd-resolved 缓存

在 Linux 上刷新 DNS 缓存的另一种方法是使用 systemd-resolved。这是一个通过 D-Bus 接口为本地应用程序提供名称解析的服务。

它还维护已解析名称和查询的缓存。要刷新 system-resolved 的 DNS 缓存,请打开终端并输入"sudo systemd-resolve --flush-caches"。

sudo systemd-resolve --flush-caches

这将从其缓存中清除正向(成功)和反向(未成功)解析的条目。成功完成后,您应该会看到类似"Flushing caches..."的输出。

您可以通过运行"sudo systemd-resolve --statistics"来验证所有缓存是否已清除,该命令会显示有关 system-resolved 当前状态的统计信息,包括缓存条目数量。

sudo systemd-resolve --statistics

通过遵循上述两种方法,即刷新 nscd 守护进程缓存和刷新系统解析缓存,您将能够成功刷新 Linux 上的 DNS 缓存并解决任何 DNS 相关问题。

刷新 DNS 缓存后常见问题的故障排除

刷新 DNS 缓存后无法连接互联网:原因和解决方案

用户在刷新 DNS 缓存后面临的最常见问题之一是互联网连接丢失。这是因为系统忘记了之前访问过的域名的 IP 地址,并且无法再次找到它们。首先要做的是通过重置路由器或调制解调器来检查它们是否存在问题。

如果您的网络没有问题,您可以尝试重启设备或清除浏览器上的 Cookie 和缓存。如果这些解决方案不起作用,您可能需要检查系统中的 DNS 服务器设置是否存在问题。

刷新 DNS 缓存后出现 DNS 解析问题

用户在刷新 DNS 缓存后面临的另一个常见问题是 DNS 解析问题。当系统尝试将域名解析为 IP 地址时,如果未收到其配置的域名服务器的响应,则会发生这种情况。

要解决此问题,请首先检查您的网络连接是否稳定,并尝试从终端或命令提示符 ping 不同的网站以测试连接。如果连接测试失败,则可能是 /etc/resolv.conf 文件(在 Linux/macOS 上)或 TCP/IP 设置(在 Windows 上)中域名服务器地址的配置存在问题。

结论

在 macOS、Windows 和 Linux 中刷新 DNS 缓存是一个简单的过程,可以通过清除过时或损坏的 DNS 缓存条目来提高设备的网络性能。但是,用户在执行此过程后可能会遇到故障排除问题。按照本文概述的步骤操作,您可以快速解决这些问题,并恢复流畅的互联网浏览体验。

在假设您的系统存在问题之前,请务必仔细检查您的配置和连接。祝您浏览愉快!


相关文章


有用资源