Windows/Mac/Linux:全平台DNS刷新教程 – wiki基地

Windows/Mac/Linux:全平台DNS刷新教程

在日常使用网络的过程中,我们有时会遇到网站无法访问、域名解析错误或更新了 DNS 记录但本地仍指向旧地址等问题。这通常是由于本地的 DNS 缓存未能及时更新所致。DNS(Domain Name System)缓存是为了加速网页浏览,将已访问网站的域名与 IP 地址对应关系临时存储在本地。当缓存信息过时或错误时,就需要我们手动刷新。

本文将详细介绍如何在三大主流操作系统——Windows、Mac 和 Linux 上清除 DNS 缓存。


1. Windows 系统

在 Windows 上刷新 DNS 缓存非常简单,只需一个命令即可完成。

操作步骤:

  1. 以管理员身份打开命令提示符 (Command Prompt) 或 PowerShell:

    • 点击“开始”按钮。
    • 输入 cmdpowershell
    • 在搜索结果中右键点击“命令提示符”或“Windows PowerShell”,选择“以管理员身份运行”。
  2. 执行刷新命令:
    在打开的命令行窗口中,输入以下命令,然后按 Enter 键:
    bash
    ipconfig /flushdns

  3. 查看结果:
    如果命令成功执行,系统会显示“已成功刷新 DNS 解析缓存”或类似的消息。


2. macOS 系统

macOS 的刷新命令会因版本的不同而略有差异,但对于近代版本(如 macOS Sierra 10.12 及以后),可以使用以下通用命令。

操作步骤:

  1. 打开终端 (Terminal):

    • 可以通过“启动台 (Launchpad)” -> “其他”文件夹找到“终端”。
    • 或者使用 Spotlight 搜索(快捷键 Command + Space),输入 Terminal 并打开它。
  2. 执行刷新命令:
    在终端窗口中,输入以下命令,然后按 Enter 键。此操作会同时刷新 DNS 缓存并向 mDNSResponder 服务发送一个更新信号。
    bash
    sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder

  3. 输入密码:
    执行 sudo 命令需要管理员权限,系统会提示您输入当前用户的登录密码。输入密码时,屏幕上不会显示任何字符,输入完成后按 Enter 即可。

  4. 完成:
    该命令执行后通常不会返回任何成功信息,但 DNS 缓存已经被清除了。


3. Linux 系统

Linux 发行版众多,刷新 DNS 的方法也因此有所不同,主要取决于所使用的 DNS 缓存服务。以下是几种常见情况:

a) 使用 systemd-resolved

大多数现代 Linux 发行版(如 Ubuntu 18.04/20.04/22.04、Debian 10+、Fedora 等)都使用 systemd-resolved 服务来管理 DNS 解析。

操作步骤:

  1. 打开终端。

  2. 执行刷新命令:
    bash
    sudo systemd-resolve --flush-caches

  3. 验证(可选):
    你可以通过以下命令查看缓存统计信息,确认缓存大小是否已显著减少:
    bash
    sudo systemd-resolve --statistics

b) 使用 nscd

一些较旧的系统或特定配置的系统可能使用 nscd (Name Service Cache Daemon) 来处理 DNS 缓存。

操作步骤:

  1. 打开终端。

  2. 重启 nscd 服务以刷新缓存:
    bash
    sudo /etc/init.d/nscd restart

    或者使用 service 命令:
    bash
    sudo service nscd restart

    或者使用 systemctl(如果 nscd 被 systemd 管理):
    bash
    sudo systemctl restart nscd.service

c) 使用 dnsmasq

如果你在本地网络中将 dnsmasq 配置为 DNS 缓存(常见于路由器或作为本地开发环境的一部分),可以这样刷新:

操作步骤:

  1. 打开终端。

  2. 重启 dnsmasq 服务:
    bash
    sudo /etc/init.d/dnsmasq restart

    或者:
    bash
    sudo systemctl restart dnsmasq.service

如何确定使用哪种方法?
如果不确定你的 Linux 系统正在使用哪个服务,可以尝试使用 ps 命令或 systemctl 查看正在运行的服务:
“`bash

检查 systemd-resolved 是否在运行

systemctl is-active systemd-resolved

检查 nscd 是否在运行

systemctl is-active nscd

检查 dnsmasq 是否在运行

systemctl is-active dnsmasq
``
根据哪个服务处于
active` 状态,选择对应的方法即可。


总结

刷新 DNS 缓存是解决网络连接和域名解析问题的有效手段。虽然不同操作系统的命令各异,但操作过程都相当直接。当你遇到无法访问某个更新了 IP 地址的网站,或者感觉网络连接出现异常时,不妨试试清除本地的 DNS 缓存,也许问题就迎刃而解了。

滚动至顶部