Linux 如何刷新 DNS 缓存

news2025/5/22 22:15:44

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 记录,需要立刻从服务端重新获取更新,常见于安全要求或者测试调试等场景。

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
  • 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 资源记录和服务。

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 缓存配合使用。

  • 如何清除浏览器的 DNS 缓存 (Chrome, Firefox, Safari)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/684181.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Elasticsearch:install

ElasticSearch Elasticsearch 是一个分布式、高扩展、高实时的搜索与数据分析引擎。 Elasticsearch结合Kibana、Logstash、Beats,也就是elastic stack(ELK)。被广泛应用在日志分析、实时监控(CPU、Memory、Program)等领域。 elasticsearch是…

【Linux 驱动篇(一)】字符设备驱动开发

文章目录 一、字符设备驱动简介二、字符设备驱动开发步骤1. 驱动模块的加载和卸载2. 字符设备注册与注销3. 实现设备的具体操作函数3.1 能够对 chrtest 进行打开和关闭操作3.2 对 chrtest 进行读写操作 4. 添加 LICENSE 和作者信息 三、Linux 设备号1. 设备号的组成 一、字符设…

网工内推 | 2023应届生专场,上市公司招网工,CCNP以上认证优先

01 浙江宇视科技有限公司 招聘岗位:IT网络工程师 职责描述: 1、负责公司内部核心网络建设,进行网络架构的规划、设计、调整、性能优化; 2、负责公司网络环境的管理,配置,监控、排错,维护&#…

津津乐道设计模式 - 适配器模式详解(家里电器电源标准不统一的问题都解决了)

🌷 古之立大事者,不惟有超世之才,亦必有坚忍不拔之志 🎐 个人CSND主页——Micro麦可乐的博客 🐥《Docker实操教程》专栏以最新的Centos版本为基础进行Docker实操教程,入门到实战 🌺《RabbitMQ》…

Servlet 相关内容

1. Servlet 1.1 Servlet概述 Servlet 是 SUN 公司提供的一套规范,名称就叫 Servlet 规范,它也是 JavaEE 规范之一,可以通过API来学习。目前在Oracle官网中的最新版本是JavaEE8,该网址中介绍了JavaEE8的一些新特性。当然&#xff…

【C语言初阶】带你轻松玩转所有常用操作符(2) ——赋值操作符,单目操作符

君兮_的个人主页 勤时当勉励 岁月不待人 C/C 游戏开发 Hello,这里是君兮_,今天给大家带来的是有关操作符的第二部分内容,废话不多说,咱们直接开始吧! 在正式开始之前,我们还是借助一张思维导图帮助大致简单回忆一下有…

Docker-compose的使用

目录 Docker-compose 简介 docker-compose的安装 docker-compose.yaml文件说明 compose的常用命令 总结 Docker-compose 简介 Docker-compose 是用于定义和运行多容器的 Docker 应用程序的工具。可以使用YAML文件来配置应用程序的服务。(通俗讲是可以通过yml文…

LeetCode108-将有序数组转换为二叉搜索树

题目来源 108. 将有序数组转换为二叉搜索树 - 力扣(LeetCode) 题目 给你一个整数数组 nums ,其中元素已经按 升序 排列,请你将其转换为一棵高度平衡 二叉搜索树。 高度平衡二叉树是一棵满足「每个节点的左右两个子树的高度差的…

智慧地下采矿,“像素游戏”智能呈现

在这个像素世界里,我们需要一个智能地下采矿可视化综合管理平台,来帮助我们管理和监控地下采矿全流程。 图扑软件依托自主研发的 HT for Web 产品,结合三维定制化渲染、动态模拟、物理碰撞、5G、物联网、云计算及大数据等先进技术&#xff0c…

从零开始理解Linux中断架构(8)---执行上下文之CPU上下文

1 CPU上下文的来由 CPU上下文是切换任务到CPU时需要保存和恢复的CPU寄存器。ARM64需要保存的寄存器如下图所示 X19-X29作为CPU上下文的依据是什么? 实际上这里使用了一个隐含的事实:Linux所有的任务切换都是在内核中__switch_to函数中进行的,当前任务通过__…

KubeSphere 社区双周报 | OpenFunction 发布 v1.1.1 | 2023.6.9-6.22

KubeSphere 社区双周报主要整理展示新增的贡献者名单和证书、新增的讲师证书以及两周内提交过 commit 的贡献者,并对近期重要的 PR 进行解析,同时还包含了线上/线下活动和布道推广等一系列社区动态。 本次双周报涵盖时间为:2023.6.9-6.22。 …

Elisp之定时器run-with-timer、run-with-idle-timer、run-at-time 区别(二十二)

简介: CSDN博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长! 优质专栏:Audio工程师进阶系列【原创干货持续更新中……】🚀 人生格言: 人生…

libevent(11)libevent中的循环和退出函数

一、libevent基本原理介绍 一个 event_base 对象相当于一个 Reactor 实例(不了解Reactor的读者可自行查询相关文章)。libevent默认情况下是单线程的,每个线程有且只有一个event_base,对应一个struct event_base结构体以及附于其上…

由于找不到msvcp120.dll无法继续执行代码怎么办?

msvcp120.dll是微软软件包的一部分。它是一个库文件,可用于支持软件运行时,msvcp120.dll的作用是提供计算机程序所需的标准库,msvcp120.dll还负责管理堆内存、线程和异常处理函数等。在使用windows编写的应用程序中,通常需要使用此…

android 如何分析应用的内存(八)——malloc debug

android 如何分析应用的内存(八) 接上文,介绍六大板块中的第三个————malloc调试和libc回调 上一篇文章中,仅仅是在分配和释放的时候,拦截对应的操作。而不能进一步的去检查内存问题。比如:释放之后再…

深入理解Android Jetpack Compose的Box

Box是一个提供了一种快速、简便的方式来对其子元素进行层叠布局的布局组件。 一、什么是Box? 二、如何使用Box? 三、Box中的contentAlignment属性 四、使用Modifier在Box内进行更复杂的布局 一、什么是Box? 在Compose中,Box是一个简单的布局组件&#xff0c…

如何写出高效、准确的会议记录?

在企业或组织中,会议是一种常见的沟通和决策方式。作为参会人员之一,撰写一份高效、准确的会议记录显得尤为重要。会议记录不仅记录了会议的主题、议题和讨论结果,还能帮助参与者回顾会议过程、梳理思路、明确职责,同时也为后续工…

快速入门JavaScript异步编程:从回调到async/await的跨越

文章目录 I. 介绍异步编程的背景和基本概念本文主要讨论JavaScript中的异步编程 II. 回调函数回调函数的定义、作用以及使用场景回调地狱的问题及解决方案 III. PromisePromise的定义、作用以及使用场景Promise的状态及状态转换Promise的链式调用和错误处理 IV. async/awaitasy…

深度学习之目标检测Fast-RCNN模型算法流程详解说明(超详细理论篇)

1.Fast-RCNN论文背景 2. Fast-RCNN算法流程 3.Fast R-CNN 问题和缺点 这篇以对比RCNN来说明,如果你对RCNN网络没太熟悉,可访问这链接,快速了解,点下面链接 深度学习之目标检测R-CNN模型算法流程详解说明(超详细理论篇…

合宙Air724UG Cat.1模块硬件设计指南--原理图设计注意事项

在设计原理时注意以下几点: 严格按照模块硬件手册设计原理图 1.调试接口: 调试务必留出usb(烧录脚本,升级用) ,1.8v(开机标志),uboot(强制烧录用)测试点&…