Windows/Mac 如何刷新 DNS?一步步指南 – wiki基地


如何刷新 DNS?Windows 和 Mac 系统一步步指南

在日常使用互联网时,我们可能会遇到各种各样的网络问题,比如访问某个网站时加载了旧的内容、无法访问某个刚刚更新了IP地址的网站、或者遇到一些奇怪的重定向问题。很多时候,这些问题可能与我们本地的 DNS(域名系统)缓存有关。

本文将详细介绍什么是 DNS 缓存,为什么我们需要刷新它,以及如何在 Windows 和 macOS 这两大主流操作系统上,通过一步步操作来清除您的本地 DNS 缓存。无论您是技术新手还是有一定经验的用户,都能通过这篇指南轻松完成操作。

第一部分:理解 DNS 和 DNS 缓存

在我们深入操作步骤之前,先花点时间理解一下 DNS 和 DNS 缓存是什么,以及它们为何重要。

什么是 DNS?

DNS,全称 Domain Name System(域名系统),是互联网的一项核心服务。简单来说,它就像互联网的“电话本”。当您在浏览器中输入一个网址(比如 www.example.com)时,您的电脑并不知道这个网址对应的服务器在互联网上的具体位置(也就是它的 IP 地址)。DNS 的作用就是将您输入的易于记忆的域名转换为机器可以识别的 IP 地址(比如 192.168.1.100)。

这个转换过程是这样的:当您输入一个域名时,您的电脑会向一个 DNS 服务器发出请求,询问这个域名对应的 IP 地址是什么。DNS 服务器查询它的数据库,找到对应的 IP 地址,然后将这个 IP 地址告诉您的电脑。您的电脑收到 IP 地址后,才能真正地与目标服务器建立连接,并加载网页内容。

什么是 DNS 缓存?

为了提高访问速度和减轻 DNS 服务器的负担,您的操作系统和浏览器都会在本地存储一份最近访问过的域名与 IP 地址的对应关系。这就是 DNS 缓存(或称为 DNS 解析器缓存,DNS Resolver Cache)。

当您第一次访问 www.example.com 时,您的电脑会去查询 DNS 服务器获取 IP 地址,然后将 www.example.com 对应的 IP 地址存储在本地的 DNS 缓存中。下次您再次访问同一个网站时,您的电脑会首先检查本地缓存。如果缓存中有这个域名的记录,并且这个记录还没有过期(每条 DNS 记录都有一个“生存时间”或 TTL,Time To Live),您的电脑就会直接使用缓存中的 IP 地址,而不需要再次去查询 DNS 服务器。这样就大大加快了访问速度。

想象一下,您第一次查询一个朋友的电话号码并记下来,下次要打电话时直接看笔记就行了,不用每次都去查电话本。这就是 DNS 缓存的作用。

为什么需要刷新 DNS 缓存?

DNS 缓存虽然能提高速度,但也可能带来问题。缓存中的信息并不是实时更新的。如果某个网站的 IP 地址发生了变化(这是很常见的情况,比如网站迁移了服务器),而您本地的 DNS 缓存中仍然存储着旧的 IP 地址,那么您的电脑就会尝试连接到旧的 IP 地址,导致无法访问网站、看到旧内容,或者被重定向到错误的地方。

在这种情况下,您就需要“刷新”或“清除”本地的 DNS 缓存。清除缓存后,您的电脑就没有了那个过期的旧记录,下次访问同一个域名时,就会被迫重新去查询 DNS 服务器,获取最新的 IP 地址。这样就能解决因本地缓存信息过期或错误引起的问题。

常见需要刷新 DNS 缓存的场景包括:

  1. 网站 IP 地址变更: 当您知道某个网站的服务器迁移或IP地址更新了,但您访问时仍然看到旧的网站或无法访问。
  2. DNS 污染或劫持: 本地缓存中可能存在被恶意篡改的 DNS 记录,导致您访问正常网站时被导向到恶意网站。清除缓存可以帮助解决这类问题。
  3. 网络连接故障排除: 当您遇到网络连接问题,但不确定具体原因时,刷新 DNS 缓存是一个常见的初步排查步骤。
  4. Hosts 文件修改: 如果您修改了系统的 hosts 文件来临时覆盖 DNS 解析,有时候需要刷新 DNS 缓存才能让修改生效。
  5. 更改了 DNS 服务器设置: 如果您更改了网络适配器的 DNS 服务器地址(比如从自动获取改为使用 Google DNS 或 Cloudflare DNS),有时候需要刷新缓存才能确保使用新的服务器进行查询。

理解了 DNS 缓存的原理和刷新它的原因后,接下来我们将详细介绍在 Windows 和 Mac 系统上如何执行这一操作。

第二部分:如何在 Windows 上刷新 DNS 缓存

在 Windows 操作系统上,刷新 DNS 缓存是一个非常简单的过程,主要通过命令提示符来完成。

步骤 1:打开命令提示符

您有几种方式可以打开命令提示符:

  • 方法一(推荐):通过开始菜单搜索

    1. 点击屏幕左下角的 “开始”按钮(Windows 图标)。
    2. 在搜索框中输入 cmd命令提示符
    3. 在搜索结果中找到“命令提示符”应用程序。
    4. 重要: 右键点击“命令提示符”,然后选择 “以管理员身份运行”。虽然刷新 DNS 缓存通常不需要管理员权限,但在进行其他网络相关的故障排除时,以管理员身份运行可以避免很多权限问题,是一个好习惯。如果出现用户账户控制(UAC)提示,请点击“是”允许程序运行。

    Windows开始菜单搜索cmd (请注意:此处图片仅为示意,实际操作中请参考您的屏幕)

  • 方法二:通过运行窗口

    1. 按下键盘上的 Win 键 + R,打开“运行”对话框。
    2. 在文本框中输入 cmd
    3. 点击“确定”或按下回车键。这会打开一个普通的命令提示符窗口。如果您需要以管理员身份运行,可以在输入 cmd 后,按下 Ctrl + Shift + Enter 组合键。

    Windows运行窗口输入cmd (请注意:此处图片仅为示意,实际操作中请参考您的屏幕)

  • 方法三:通过任务管理器

    1. 按下键盘上的 Ctrl + Shift + Esc 组合键,打开任务管理器。
    2. 点击菜单栏中的 “文件”
    3. 选择 “运行新任务”
    4. 在弹出的对话框中输入 cmd
    5. 勾选 “以管理员权限创建此任务”
    6. 点击“确定”。

    Windows任务管理器运行新任务 (请注意:此处图片仅为示意,实际操作中请参考您的屏幕)

选择任意一种您方便的方式打开命令提示符窗口。一个黑色的(或配置过的其他颜色)窗口将会出现,显示命令行界面。如果以管理员身份运行,窗口标题栏可能会显示“管理员:命令提示符”。

步骤 2:输入刷新 DNS 的命令

在打开的命令提示符窗口中,您会看到一个光标在闪烁,旁边是当前的路径(比如 C:\Users\YourUsername>C:\Windows\System32>)。请在这里输入以下命令:

bash
ipconfig /flushdns

请注意,ipconfig/flushdns 之间有一个空格。

输入完成后,按下键盘上的 Enter

Windows命令提示符输入ipconfig /flushdns (请注意:此处图片仅为示意,实际操作中请参考您的屏幕)

步骤 3:确认刷新成功

执行命令后,如果一切正常,您会在命令提示符窗口中看到一条成功的消息。根据您的 Windows 版本和语言设置,这条消息可能略有不同,但通常会是类似这样的内容:

“`
Windows IP Configuration

Successfully flushed the DNS Resolver Cache.
“`

或者中文:

“`
Windows IP 配置

成功刷新 DNS 解析缓存。
“`

Windows命令提示符成功刷新消息 (请注意:此处图片仅为示意,实际操作中请参考您的屏幕)

看到这条消息,就说明您的 Windows 系统本地 DNS 缓存已经被成功清除了。

步骤 4:关闭命令提示符窗口

刷新完成后,您可以直接点击窗口右上角的“X”按钮关闭命令提示符窗口,或者在命令行中输入 exit 并按下回车键。

Windows 上与 DNS 相关的其他 ipconfig 命令

在进行网络故障排除时,除了 /flushdnsipconfig 命令还有一些其他有用的参数,了解它们可以帮助您更好地诊断问题:

  • ipconfig /displaydns
    这个命令用于显示当前 Windows 系统本地 DNS 缓存中的所有条目。执行这个命令后,您可以看到大量的域名和对应的 IP 地址列表,以及它们的 TTL(Time To Live,生存时间)。通过查看这个列表,您可以确认是否有某个域名的缓存是错误的或过期的。这个列表通常很长,您可能需要滚动窗口才能看完。

    bash
    ipconfig /displaydns

  • ipconfig /registerdns
    这个命令用于向您配置的 DNS 服务器重新注册本机的 DNS 记录。在某些情况下,特别是使用了动态 DNS (DDNS) 或者在域环境中,这个命令有助于确保您的电脑在网络中的 DNS 记录是最新的。这个过程可能需要一些时间。

    bash
    ipconfig /registerdns

  • ipconfig /release
    这个命令用于释放当前网络适配器从 DHCP 服务器获取的 IP 地址。执行后,您的电脑将不再拥有一个有效的 IP 地址,也无法访问网络。

    bash
    ipconfig /release

  • ipconfig /renew
    这个命令用于向 DHCP 服务器请求一个新的 IP 地址。通常,它会与 /release 命令一起使用,先释放旧的 IP 地址,然后重新获取一个新的。这在解决 IP 地址冲突或网络连接问题时非常有用。

    bash
    ipconfig /renew

在进行网络故障排除时,一个常见的组合步骤是先 ipconfig /release,然后 ipconfig /renew,再 ipconfig /flushdns

Windows 网络重置 (Network Reset)

如果您遇到持续的网络问题,并且刷新 DNS 缓存等基本步骤无效,可以考虑使用 Windows 的网络重置功能。这是一个更彻底的操作,它会重新安装所有网络适配器,并将网络组件恢复到原始设置。这包括清除 DNS 缓存、重置 IP 设置等。

注意: 网络重置会移除您安装的虚拟网络适配器、VPN 客户端、网卡驱动等,您可能需要重新安装和配置它们。请谨慎使用此功能。

如何执行网络重置:

  1. 点击“开始”按钮,打开 “设置”(齿轮图标)。
  2. 点击 “网络和 Internet”
  3. 向下滚动到页面底部,点击 “网络重置”
  4. 点击 “立即重置” 按钮。
  5. 系统会提示您确认,点击 “是”
  6. 您的电脑将会自动重启以完成重置过程。在重启之前,请确保您已经保存了所有未完成的工作。

小结 Windows 刷新 DNS

刷新 Windows 上的 DNS 缓存是一个快速且无害的操作,通过 ipconfig /flushdns 命令在命令提示符中即可完成。这是解决许多网络访问问题的首要尝试步骤之一。记住,最好以管理员身份运行命令提示符。

第三部分:如何在 macOS 上刷新 DNS 缓存

在 macOS 操作系统上,刷新 DNS 缓存的方法与 Windows 不同,并且不同版本的 macOS 使用的命令也可能略有差异。这主要是因为苹果在不同版本中更改了管理 DNS 缓存的底层服务。

步骤 1:打开终端 (Terminal)

与 Windows 使用命令提示符类似,macOS 使用“终端”应用程序来执行命令行操作。

您有几种方式可以打开终端:

  • 方法一(推荐):通过 Spotlight 搜索

    1. 按下键盘上的 Command (⌘) 键 + Space 键**,打开 Spotlight 搜索框。
    2. 在搜索框中输入 终端Terminal
    3. 在搜索结果中双击或按下回车键打开“终端”应用程序。

    macOS Spotlight搜索终端 (请注意:此处图片仅为示意,实际操作中请参考您的屏幕)

  • 方法二:通过 Finder

    1. 打开 “Finder”
    2. 在菜单栏中选择 “前往” > “实用工具”
    3. 在“实用工具”文件夹中找到并双击 “终端” 应用程序图标。

    macOS Finder前往实用工具 (请注意:此处图片仅为示意,实际操作中请参考您的屏幕)
    macOS 实用工具文件夹终端 (请注意:此处图片仅为示意,实际操作中请参考您的屏幕)

打开终端后,您会看到一个窗口,显示命令行提示符(通常是您的电脑名称、一个冒号、当前目录路径、您的用户名和一个美元符号 $ 或井号 #)。

步骤 2:输入刷新 DNS 的命令(根据 macOS 版本)

这是 macOS 与 Windows 最大的不同之处:刷新 DNS 的命令取决于您当前安装的 macOS 版本。苹果在不同版本中使用了不同的 DNS 缓存服务,对应的控制命令也随之改变。

以下是根据 macOS 主要版本划分的刷新 DNS 缓存的命令:

  • macOS 10.10 Yosemite、10.11 El Capitan、10.12 Sierra、10.13 High Sierra、10.14 Mojave、10.15 Catalina、macOS 11 Big Sur、macOS 12 Monterey, macOS 13 Ventura, macOS 14 Sonoma (及更高版本)
    从 macOS Yosemite (10.10) 开始,苹果引入了 mDNSResponder 服务来管理 DNS 缓存。刷新这个服务的缓存通常通过发送一个特定的信号来完成。
    请在终端中输入以下命令:

    bash
    sudo killall -HUP mDNSResponder

    • sudo: 这是一个非常重要的命令,表示以超级用户(管理员)的权限执行后续命令。在 macOS 中,许多系统级别的操作都需要管理员权限。当您使用 sudo 时,系统会提示您输入您的账户密码。
    • killall: 这个命令用于根据进程名称终止所有匹配的进程。
    • -HUP: 这是一个发送给进程的信号,表示“挂断”(Hang Up)。对于 mDNSResponder 这个服务来说,接收到 HUP 信号会触发它重新加载配置并清除内部缓存,而不是完全终止进程。
    • mDNSResponder: 这是 macOS 中负责管理 DNS 缓存和 Bonjour 服务的进程名称。

    输入命令后,按下 Enter

  • macOS 10.7 Lion、10.8 Mountain Lion、10.9 Mavericks
    这些版本仍然使用 mDNSResponder 服务,所以命令与 10.10 及更高版本相同:

    bash
    sudo killall -HUP mDNSResponder

  • macOS 10.6 Snow Leopard
    在 Snow Leopard 中,主要使用 dscacheutil 工具来管理缓存。
    命令如下:

    bash
    sudo dscacheutil -flushcache

    • dscacheutil: 一个用于与目录服务和 DNS 缓存交互的命令行工具。
    • -flushcache: dscacheutil 命令的一个选项,用于清除 DNS 缓存。

    输入命令后,按下 Enter

  • macOS 10.5 Leopard 及更早版本
    在更早的 macOS 版本中,管理 DNS 缓存的方式有所不同。通常使用 lookupd 命令。
    命令如下:

    bash
    sudo lookupd -flushcache

    • lookupd: 旧版本 macOS 中负责目录服务查找和 DNS 解析的进程。

    输入命令后,按下 Enter

总结一下常用版本命令:

  • macOS 10.10 及更高版本 (Yosemite 到 Sonoma 及以后): sudo killall -HUP mDNSResponder
  • macOS 10.7 – 10.9 (Lion 到 Mavericks): sudo killall -HUP mDNSResponder
  • macOS 10.6 (Snow Leopard): sudo dscacheutil -flushcache

如果您不确定您的 macOS 版本,可以点击屏幕左上角的苹果菜单 (),然后选择 “关于本机”。在弹出的窗口中,您可以看到您的 macOS 名称和版本号。

macOS 关于本机 (请注意:此处图片仅为示意,实际操作中请参考您的屏幕)

确认您的 macOS 版本后,在终端中输入对应的命令。

步骤 3:输入管理员密码

因为您使用了 sudo 命令,系统会提示您输入当前登录账户的管理员密码。您会在终端中看到类似这样的提示:

Password:

Password: 后面输入您的账户密码。请注意,当您输入密码时,终端窗口中不会显示任何字符(包括星号或点)。这是正常的安全设置,防止他人看到您的密码长度。

输入密码后,按下 Enter

macOS 终端输入sudo密码 (请注意:此处图片仅为示意,实际操作中请参考您的屏幕)

步骤 4:确认刷新成功

在 macOS 终端中,执行 sudo killall -HUP mDNSRespondersudo dscacheutil -flushcache 命令成功后,通常不会显示任何成功的消息。如果命令执行没有报错,并且您回到了命令行提示符(显示新的 $# 提示符),那么通常意味着 DNS 缓存已经成功刷新。

如果输入的命令有误、密码输入错误超过次数、或者没有权限,系统会显示错误信息。

步骤 5:关闭终端窗口

刷新完成后,您可以直接点击窗口左上角的红色关闭按钮关闭终端窗口,或者在命令行中输入 exit 并按下回车键。

macOS 上与 DNS 相关的其他工具

与 Windows 的 ipconfig 类似,macOS 也有一些用于网络故障排除的命令和工具:

  • dscacheutil -cachedump
    类似于 Windows 的 ipconfig /displaydns,这个命令可以显示当前 DNS 缓存的内容(对于使用 dscacheutil 管理缓存的旧版本 macOS)。在新版本 macOS 中,mDNSResponder 管理缓存的方式不同,可能无法直接通过一个简单的命令完整倾倒整个缓存,但 dscacheutil 仍然可以用于其他 DNS 相关查询。

    bash
    dscacheutil -cachedump

  • networksetup
    这是一个功能强大的命令行工具,用于配置网络设置,包括 DNS 服务器。虽然它不能直接用于刷新缓存,但如果您需要更改或验证您的 DNS 服务器设置,可以使用这个工具。

    例如,查看当前网络服务的 DNS 服务器:
    bash
    networksetup -getdnsservers Wi-Fi

    (将 Wi-Fi 替换为您当前使用的网络服务名称,如 Ethernet)

    设置 DNS 服务器:
    bash
    sudo networksetup -setdnsservers Wi-Fi 8.8.8.8 8.8.4.4

    (将 Wi-Fi 替换为您使用的服务名称,将 8.8.8.8 8.8.4.4 替换为您想使用的 DNS 服务器地址)

  • 清除浏览器缓存
    正如将在下一节讨论的,有时候您还需要清除浏览器自身的 DNS 缓存。

小结 macOS 刷新 DNS

在 macOS 上刷新 DNS 缓存主要是通过在终端中使用 sudo killall -HUP mDNSResponder (新版本) 或 sudo dscacheutil -flushcache (旧版本) 命令来完成。记住根据您的 macOS 版本选择正确的命令,并且在输入 sudo 命令后需要输入管理员密码。

第四部分:刷新 DNS 后可能会遇到的情况和注意事项

刷新 DNS 缓存后,您的电脑在访问一个域名时将没有本地缓存可用。这意味着:

  1. 第一次访问可能会稍微慢一点: 因为您的电脑必须重新去 DNS 服务器查询 IP 地址并构建新的缓存条目。这个延迟通常非常短暂,几乎不会被注意到。
  2. 后续访问恢复正常速度: 一旦新的 DNS 记录被缓存,后续访问同一个网站的速度就会恢复到正常水平。
  3. 预期的改变应该会生效: 如果您刷新缓存是为了看到网站 IP 更新或修复重定向问题,这些问题现在应该得到解决。

刷新 DNS 缓存可能无法解决的问题

值得注意的是,刷新本地 DNS 缓存并不能解决所有与 DNS 相关的问题。问题可能出在其他地方:

  1. 路由器/调制解调器(Modem)的 DNS 缓存: 您的家庭或办公室路由器也可能有自己的 DNS 缓存。如果路由器的缓存是旧的,它可能会将旧的 IP 地址提供给连接到它的所有设备。在这种情况下,您可能需要重启您的路由器和调制解调器来清除它们的缓存。
  2. ISP(互联网服务提供商)的 DNS 缓存: 您的 ISP 也有大型 DNS 服务器,它们也有缓存。如果您要访问的域名的 DNS 记录最近刚刚在全球范围更新,可能需要一些时间(称为“DNS 传播时间”)才能更新到您的 ISP 的 DNS 服务器上。这是您无法控制的,有时需要等待几分钟到几小时(在极少数情况下甚至更长)。
  3. 权威 DNS 服务器的问题: 托管目标网站 DNS 记录的服务器本身可能存在问题或配置错误。这是网站所有者需要解决的问题。
  4. 浏览器自身的 DNS 缓存: 大多数现代浏览器(如 Chrome, Firefox, Edge, Safari)为了进一步加速访问,也会维护一个自己的 DNS 缓存。有时候,即使系统层面的 DNS 缓存被清除了,浏览器中的旧缓存仍然可能导致问题。如果您刷新系统 DNS 后问题依旧,尝试清除您的浏览器缓存(包括历史记录、cookie 和其他网站数据,特别是 DNS 缓存,如果浏览器提供这个选项的话)。
  5. Hosts 文件: 您的操作系统有一个名为 hosts 的文件,它可以用来手动指定域名和 IP 地址的对应关系。这个文件会优先于 DNS 查询。如果 hosts 文件中有错误的或旧的条目,刷新 DNS 缓存是无效的。您需要编辑或删除 hosts 文件中的错误条目。
    • Windows hosts 文件位置: C:\Windows\System32\drivers\etc\hosts (需要管理员权限修改)
    • macOS hosts 文件位置: /etc/hosts (需要管理员权限修改)

排除故障的建议

如果刷新 DNS 缓存后问题没有解决,您可以尝试以下步骤:

  1. 清除浏览器缓存: 在您的浏览器设置中找到清除缓存和历史记录的选项。
  2. 重启路由器和调制解调器: 断开它们的电源,等待约 30 秒,然后重新插上电源并等待它们完全启动。
  3. 检查 Hosts 文件: 确认 Hosts 文件中没有错误的条目。
  4. 尝试使用不同的 DNS 服务器: 在您的网络适配器设置中,尝试将 DNS 服务器更改为公共的、可靠的 DNS 服务(如 Google DNS 8.8.8.88.8.4.4 或 Cloudflare DNS 1.1.1.11.0.0.1),然后再次刷新本地 DNS 缓存。
  5. 使用网络诊断工具: Windows 和 macOS 都提供了网络诊断工具,可以帮助识别问题。
  6. 联系网站管理员或您的 ISP: 如果怀疑问题出在网站端或 ISP 端,可以联系他们寻求帮助。

第五部分:总结

刷新本地 DNS 缓存是一个非常基础且常用的网络故障排除步骤,尤其是在遇到网站访问异常或 DNS 相关问题时。

  • Windows 上,通过以管理员身份运行命令提示符,并执行 ipconfig /flushdns 命令即可快速完成。
  • macOS 上,需要打开终端,根据您的 macOS 版本使用 sudo killall -HUP mDNSResponder (macOS 10.7+) 或 sudo dscacheutil -flushcache (macOS 10.6) 命令,并输入管理员密码。

虽然刷新本地 DNS 缓存不能解决所有问题,但它是诊断和修复许多常见网络访问问题的有效第一步。如果问题依然存在,请继续检查路由器缓存、浏览器缓存、Hosts 文件,或考虑问题可能出在 ISP 或网站端。

希望这篇详细的指南能帮助您理解 DNS 缓存的作用,并成功地在您的 Windows 或 Mac 电脑上刷新它。掌握这个简单的技巧,将有助于您更顺畅地浏览互联网和解决一些常见的网络困扰。


发表评论

您的邮箱地址不会被公开。 必填项已用 * 标注

滚动至顶部