首页 > 系统相关 >RHEL CentOS Debian Ubuntu 如何刷新 DNS 缓存

RHEL CentOS Debian Ubuntu 如何刷新 DNS 缓存

时间:2023-06-25 16:14:34浏览次数:50  
标签:resolved systemd 缓存 CentOS sudo RHEL DNS Ubuntu nscd

RHEL CentOS Debian Ubuntu 如何刷新 DNS 缓存

全文:如何刷新 DNS 缓存 (macOS, Linux, Windows)

Unix Linux Windows 如何刷新 DNS 缓存 (macOS, FreeBSD, RHEL, CentOS, Debian, Ubuntu, Windows)

请访问原文链接:https://sysin.org/blog/how-to-flush-dns-cache/,查看最新版。原创作品,转载请保留出处。

作者主页:sysin.org


刷新或者清除 DNS 缓存,通常是因为有过时的 DNS 记录,需要立刻从服务端重新获取更新,常见于安全要求或者测试调试等场景。

how-to-flush-dns-cache

1. Linux 刷新 DNS 缓存通用参考

Linux 可以运行 dnsmasq、nscd、unbound 或者 systemd-resolved 作为名称服务缓存守护进程 (sysin)。

dnsmasq

如果你的 DNS 服务器是用 dnsmasq 实现的,用下面这个命令:

service dnsmasq restart

如果 dnsmasq 服务不存在,先安装 dnsmasq,命令如下:

  • RHEL 及其兼容发行版:sudo yum install dnsmasq
  • Debian 及其兼容发行版:sudo apt install dnsmasq
  • 或者其他发行版对应的软件包管理命令

注:DNSmasq 是一个轻巧的,容易使用的 DNS 服务工具,它可以应用在内部网和 Internet 连接的时候的 IP 地址 NAT 转换,也可以用做小型网络的 DNS 服务。

nscd

如果是清除 nscd 上的 Cache,可重新启动 nscd 服务来达成清除 DNS Cache 的效果:

service nscd restart
# 或是
service nscd reload

如果 nscd 服务不存在,先安装 nscd,命令如下:

  • RHEL 及其兼容发行版:sudo yum install nscd
  • Debian 及其兼容发行版:sudo apt install nscd
  • 或者其他发行版对应的软件包管理命令

unboud

unbound 使用 unbound-control 命令来管理 DNS 缓存:

# 刷新所有缓存
unbound-control flush all
# 更多命令查看帮助
unbound-control -h

如果 unbound-control 无法执行,先安装 unbound,命令如下:

  • RHEL 及其兼容发行版:sudo yum install unbound
  • Debian 及其兼容发行版:sudo apt install unbound
  • 或者其他发行版对应的软件包管理命令

systemd-resolved

使用 resolvectl 命令刷新 DNS 缓存:

# Step 1. 查看 DNS 缓存状况
sudo resolvectl statistics

# Step 2. 清除 DNS 缓存,systemd-resolved daemon 默认在所有的 Ubuntu 系统上运行
sudo resolvectl flush-caches

# Step 3. 正在查看验证结果 (sysin)
sudo resolvectl statistics

如果 resolvectl 无法执行,先安装 systemd-resolved,命令如下:

  • RHEL 及其兼容发行版:sudo yum install systemd-resolved
  • Debian 及其兼容发行版:sudo apt install systemd-resolved
  • 或者其他发行版对应的软件包管理命令

BIND (服务端,与上述客户端 DNS 缓存不同)

如果是清除 BIND 服务器上的 CACHE,用这个命令:

rndc flush

如果 rndc 无法执行,先安装 bind,命令如下:

  • RHEL 及其兼容发行版:sudo yum install bind
  • Debian 及其兼容发行版:sudo apt install bind9
  • 或者其他发行版对应的软件包管理命令

以下对几个主流发行版单独说明。

2. RHEL

包括其兼容发行版:CentOS 及 AlmaLinux、Rocky Linux、Oracle Linux

RHEL 及其兼容发行版,默认不启用 DNS 查询缓存。

参看:Best practice for DNS caching in RHEL

常见解决方案:

dnsmasq

使用 dnsmasq 来启用 dns 缓存:

yum -y install dnsmasq
systemctl enable --now dnsmasq

清除缓存即重启 dnsmasq 服务:

systemctl restart dnsmasq

nscd

使用 nscd 来启用 dns 缓存:

yum -y install nscd
systemctl enable --now nscd

清除缓存即重启 nscd 服务:

systemctl restart nscd

3. Ubuntu

Ubuntu 默认运行 systemd-resolved 服务用于名称服务缓存,使用 resolvectl 命令调用 systemd-resolved.service 解析主机名、IP 地址、域名、DNS 资源记录和服务。

Flush DNS Cache on Ubuntu

systemd-resolved.service 默认启用:

systemctl is-enabled systemd-resolved.service
enabled

刷新 DNS 缓存:

# Ubuntu 22.04 示例

# Step 1. 查看 DNS 缓存状况
sudo resolvectl statistics

# Step 2. 清除 DNS 缓存,systemd-resolved daemon 默认在所有的 Ubuntu 系统上运行
sudo resolvectl flush-caches

# Step 3. 正在查看验证结果 (sysin)
sudo resolvectl statistics

备注:Ubuntu 也可以配置使用 nscd 或者 dnsmasq。

注意:在旧版本中 resolvectl 命令曾经为 systemd-resolve,现已废弃。命令参数参数略有差异。

# Ubuntu 20.04.5 同时支持 resolvectl 和 systemd-resolve

# Step 1. 查看 DNS 缓存状况
sudo systemd-resolve --statistics

# Step 2. 清除 DNS 缓存,systemd-resolve daemon 默认在所有的 Ubuntu 系统上运行
sudo systemd-resolve --flush-caches

# Step 3. 正在查看验证结果 (sysin)
sudo systemd-resolve --statistics

4. Debian

Debian 默认没有启用 DNS 缓存机制(基本系统)。可以配置使用 systemd-resolved.service 来启用。

以下为 Debian 12 示例。

启用 systemd-resolved.serivce:

sudo apt install systemd-resolved

查看服务已经启用:

systemctl is-enabled systemd-resolved.service
enabled

刷新 DNS 缓存:

# Step 1. 查看 DNS 缓存状况
sudo resolvectl statistics

# Step 2. 清除 DNS 缓存,systemd-resolved daemon 默认在所有的 Ubuntu 系统上运行
sudo resolvectl flush-caches

# Step 3. 正在查看验证结果 (sysin)
sudo resolvectl statistics

备注:Debian 也可以配置使用 nscd 或者 dnsmasq。


上述操作通常也和浏览器刷新 DNS 缓存配合使用。

标签:resolved,systemd,缓存,CentOS,sudo,RHEL,DNS,Ubuntu,nscd
From: https://www.cnblogs.com/sysin/p/17503143.html

相关文章

  • VMware虚拟机ubuntu备份文件到百度网盘+定时任务自动备份
    在虚拟机里弄东西,免不了有些文件需要保存,手动保存太麻烦,用工具设置成自动备份,还不怕遗忘。一、文件同步方式一:1.在你的物理机上找一个目录假设:D:\Win-share2.在VM虚拟机里/mnt/hgfs/路径下就可以看到分享的物理机目录了。3.设置百度网盘同步选择文件夹是选择物理机......
  • CentOS 设置密码为永久不过期
    CentOS下用户密码的有效期默认是90天,通过root权限可以设置密码为永久有效。设置密码有效期sudochage-M99999用户名查看密码有效期chage-l用户名......
  • Centos7 内核限制
    一、设置所有用户最大打开文件数和网络连接数1、编辑 /etc/security/limits.conf 文件,可以使用下面的命令打开该文件:sudovim/etc/security/limits.conf2、添加以下四行:第一行和第二行分别设置所有用户的文件打开数的软限制和硬限制均为65535。第三行和第四行分别设置所......
  • Ubuntu开机默认进入命令行模式/用户图形界面(转)
    一、开机默认进入命令行模式  #输入命令: sudosystemctlset-defaultmulti-user.target #重启: reboot 要进入图形界面,只需要输入命令startx从图形界面切换回命令行:ctrl+alt+F7 二、开机默认进入图形用户界面  #输入命令: ......
  • ubuntu安装nginx建立静态站
    版本:服务器ubuntu20.04本地windows10远程工具xshell71、nginx官网 http://nginx.org/en/docs/2、点击installingnginx3、点击 InstallationonLinux下的packages4、点击Ubuntu5、开始傻瓜式操作,一定!一定!一定!使用root安装和使用nginx哦!我以下所有执行都是roo......
  • 教你三步在CentOS 7 中安装或升级最新的内核
    在正常操作期间,内核负责执行两个重要任务:作为硬件和系统上运行的软件之间的接口。尽可能高效地管理系统资源。为此,内核通过内置的驱动程序或以后可作为模块安装的驱动程序与硬件通信。例如,当你计算机上运行的程序想要连接到无线网络时,它会将该请求提交给内核,后者又会使用正确的驱动......
  • 腾讯轻量服务器 安装ubuntu 开启root登录
    腾讯轻量服务器安装ubuntu后,系统的默认用户名是ubuntu,并在安装过程中默认不设置root帐户和密码。想要设置中开启允许root用户登录。具体操作步骤如下(照抄的腾讯帮助文档,整理以方便查阅):1.使用ubuntu帐户登录。2.执行以下命令,设置root密码sudopasswdroot3. 执......
  • Linux 虚拟机修改ip地址(CentOS7)【Linux】
    1、编辑文件vi/etc/sysconfig/network-scripts/ifcfg-ens332、输入 i 键,进入编辑模式3、编辑ip地址 4、输入 :wq  退出保存5、重启网卡servicenetworkrestart6、测试外网连接pingwww.baidu.com ......
  • Ubuntu ARM如何使用undetected-chromedrive
    1.Chromium和Driver安装sudoaptupdate&&sudoaptinstallchromiumchromium-driver2.复制一份到当前用户目录cp/usr/bin/chromedriver/home/myuser/.local/share/undetected_chromedriver/chromedriver_copy 3.Python启动代码importundetected_chromedriver......
  • Ubuntu ARM版本如何使用selenium
    1.Python模块安装pipinstallseleniumpipinstallwebdriver-manager 2.Chromium和Driver安装sudoaptupdate&&sudoaptinstallchromiumchromium-driver 3.测试代码#selenium4importshutilfromseleniumimportwebdriverfromselenium.webdriver......