Linux 如何刷新 DNS 缓存
Linux 如何刷新 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 记录,需要立刻从服务端重新获取更新,常见于安全要求或者测试调试等场景。
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
- nscd(未来版本可能会移除)
- unbound
- systemd-resolved
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 资源记录和服务。
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 缓存配合使用。
- 如何清除浏览器的 DNS 缓存 (Chrome, Firefox, Safari)
Linux 如何刷新 DNS 缓存相关推荐
- linux刷新dns缓存_Linux和Windows客户端的刷新DNS缓存
linux刷新dns缓存 We may need to flush DNS cache of our client when the site's DNS has been changed. 站点的D ...
- 刷新DNS命令 如何刷新DNS缓存(flushdns)
运行:ipconfig /displaydns这个命令,查看一下本机已经缓存了那些的dns信息的,然后输入下面的命令 ipconfig /flushdns 这时本机的dns缓存信息已经清空了,我们可以 ...
- linux mint 修改dns,如何在Ubuntu和LinuxMint中刷新DNS缓存
本篇文章给大家介绍的内容是关于如何在Ubuntu和LinuxMint中刷新DNS缓存,下面我们来看具体的内容. 域名系统(DNS)是互联网的主干网之一.你无法想象在全球数百万用户的公共网络上运行网站. ...
- linux刷新本地dns命令_在Linux/Windows/Mac上刷新DNS缓存的方法
刷新dns缓存让你可以得到新的域名解析.当你无法正确访问一个新注册的域名时就可以刷新dns缓存试试.刷新dns缓存非常简单,任何时候都以进行.但是不同的系统,Windows.Mac OS和Linux上 ...
- linux mint 修改dns,如何在Ubuntu和LinuxMint中刷新DNS缓存-linux运维
本篇文章给大家介绍的内容是关于如何在Ubuntu和LinuxMint中刷新DNS缓存,下面我们来看具体的内容. 域名系统(DNS)是互联网的主干网之一.你无法想象在全球数百万用户的公共网络上运行网站. ...
- linux刷新dns缓存_Linux刷新文件系统缓存
linux刷新dns缓存 We may drop the file system caches on Linux to free up memory for applications. Kernels ...
- 如何刷新 DNS 缓存 (macOS, Linux, Windows)
如何刷新 DNS 缓存 (macOS, Linux, Windows) Unix Linux Windows 如何刷新 DNS 缓存 (macOS, FreeBSD, RHEL, CentOS, De ...
- linux dns 刷新_如何为Windows和Linux操作系统刷新DNS?
linux dns 刷新 Operating systems like Windows, Linux, BSD runs some mechanisms to cache DNS records in ...
- Windows刷新dns缓存
当修改了host文件之后,需要host立即生效,那就需要刷新dns缓存 Windows下刷新dns缓存的命令是: ipconfig /flushdns
最新文章
- Synchronized和ReentranLock的区别
- java反射机制--reflection
- jack语言编译器的实现过程
- mysql高效索引之覆盖索引
- jdbc连接mysql驱动包_jdbc连接数据库驱动包
- @程序员,敏捷开发防坑指南请查收!
- Scale-Dependent 3D Geometric Features
- Spring Cloud Ribbon 的请求分发与原理
- 电子工程师私藏的一个网站
- python求幂集_求幂集的算法 - Sethylar的个人页面 - OSCHINA - 中文开源技术交流社区...
- 华为云redis安装
- android 模拟下雪的效果
- SQLserver 外键语句出现“引用了无效的表”
- 一、Docker:Linux/Windows在线安装Docker与命令大全总结
- 7、LiveCharts--常用属性介绍(三)
- 管理就是通过别人完成任务,别怕员工犯错
- 唯品会亿级数据服务平台实践
- A_A02_001 CH340驱动安装
- 数字麦克风和阵列拾音技术的应用
- CAD导出DXF再导入PADS出现尺寸大小不一致的解决办法?
热门文章
- RequestHTTPResponse
- python计算最大公约数和最小公倍数_python求最大公约数和最小公倍数的方法介绍...
- 使用FudanNLP分词工具分词并移除停用词
- 随机森林调参_机器学习-模型调参利器 gridSearchCV(网格搜索)
- python中return outside function-Python Tutorial 学习(九)--Classes
- R统计绘图-PCA分析及绘制双坐标轴双序图
- Maya2012中英文对照表(三)
- Linux----临界区解释
- KUKA机器人之备选软件包(ROBOTSENSORINTERFACE,EthernetKRL,profinet,ForceTorqueControl)
- 多项式函数曲线拟合——最小二乘法