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

如何刷新 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. Apple macOS

 macOS Catalina and later

打开终端,输入如下命令来重置 DNS 缓存,适用于 macOS 10.15 至 14.x:

sudo killall -HUP mDNSResponder; sudo dscacheutil -flushcache

 OS X Yosemite and later

打开终端,输入如下命令来重置 DNS 缓存,适用于 OS X 10.10.4 至 10.14.x:

sudo killall -HUP mDNSResponder

打开终端,输入如下命令来重置 DNS 缓存,适用于 OS X 10.10 至 10.10.3:

sudo discoveryutil mdnsflushcache

 OS X Mavericks, Mountain Lion, and Lion

打开终端,输入如下命令来重置 DNS 缓存,适用于 OS X 10.9.5 及之前版本:

sudo killall -HUP mDNSResponder

 Mac OS X Snow Leopard

打开终端,输入如下命令来重置 DNS 缓存,适用于 OS X 10.6 至 10.6.8:

sudo dscacheutil -flushcache

参考:Reset the DNS cache in OS X

2. FreeBSD

FreeBSB 自带 nscd(Name Service Cache Daemon),默认没有启用。

以下为 FreeBSD 12 和 13 示例。

运行如下命令启动 nscd 并设置为开机自动运行 (sysin):

sudo service nscd enable && sudo service nscd start

清除缓存即重启 nscd 服务:

sudo service nscd restart

3. Linux

3.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
  • 或者其他发行版对应的软件包管理命令

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

3.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.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

3.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。

4. Microsoft Windows

清除 dns 缓存内容:

ipconfig/flushdns

查看 dns 缓存内容:

ipconfig/displaydns

Windows 下的 DNS Cache 是由 DNS Client 后台进程控制的,你可以在 “服务” 中将其关闭,这样 windows 就不会进行 DNS 缓存,每次都将直接查询 DNS Server。


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

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

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

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

相关文章

字节面试问题

实现三列布局的方法 第一种&#xff1a;可以使用浮动margin 第二种&#xff1a;浮动BFC <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, in…

密码学及其应用(应用篇15)——0/1背包问题

1 问题背景 背包问题是一个经典的优化问题&#xff0c;在计算机科学和运筹学中有着广泛的应用。具体到你提到的这个问题&#xff0c;它是背包问题中的一个特例&#xff0c;通常被称为0/1背包问题。这里&#xff0c;我们有一系列的正整数 &#xff0c;以及一个正整数&#xff0c…

k8s.gcr.io/pause:3.2镜像丢失解决

文章目录 前言错误信息临时解决推荐解决onetwo 前言 使用Kubernetes&#xff08;k8s&#xff09;时遇到了镜像拉取的问题&#xff0c;导致Pod沙盒创建失败。错误显示在尝试从k8s.gcr.io拉取pause:3.2镜像时遇到了超时问题&#xff0c;这通常是因为网络问题或者镜像仓库服务器的…

科技赋能,MTW400A为农村饮水安全打通“最后一公里”

日前&#xff0c;山东省政府纵深推进国家省级水网先导区建设&#xff0c;持续深化“水网”行动&#xff0c;着力构筑水安全保障网、水民生服务网、水生态保护网&#xff0c;建设水美乡村示范带、内河航运示范带、文旅融合示范带、绿色发展示范带&#xff0c;推动形成“三网四带…

kubesphere jenkins 流水线 未运行(解决方案)

场景&#xff1a; 在kubesphere 中运行 流水线 devops 结果&#xff0c;显示未运行 但是用 admin 账户是可以运行成功的。 问题解决 1- 查日志&#xff1a; 然后 Caused: org.acegisecurity.userdetails.UsernameNotFoundException: org.springframework.security.core.…

网站数据加密之Hook通用方案

文章目录 1. 写在前面2. 请求分析3. 编写Hook4. 其他案例 【作者主页】&#xff1a;吴秋霖 【作者介绍】&#xff1a;Python领域优质创作者、阿里云博客专家、华为云享专家。长期致力于Python与爬虫领域研究与开发工作&#xff01; 【作者推荐】&#xff1a;对JS逆向感兴趣的朋…

SpringBoot+Vue全栈开发-刘老师教编程(b站)(二)

创建SpringBoot项目 1.配置maven 出现bug java: 无法访问org.springframework.boot.SpringApplication 错误的类文件: /D:/maven/repository/org/springframework/boot/spring-boot/3.0.0/spring-boot-3.0.0.jar!/org/springframework/boot/SpringApplication.class 类…

FPGA高端项目:FPGA基于GS2971的SDI视频接收转HDMI输出,提供3套工程源码和技术支持

目录 1、前言免责声明 2、相关方案推荐本博已有的 SDI 编解码方案本方案的SDI图像缩放应用本方案的SDI纯verilog图像缩放视频拼接应用本方案的SDI HLS图像缩放视频拼接应用本方案的SDI视频编码动态字符叠加输出应用本方案的SDI视频编码多路视频融合视频叠加应用本方案的SDI视频…

云计算与边缘计算:有何不同?

公共云计算平台可以帮助企业充分利用全球服务器来增强其私有数据中心。这使得基础设施能够扩展到任何位置&#xff0c;并有助于计算资源的灵活扩展。混合公共-私有云为企业计算应用程序提供了强大的灵活性、价值和安全性。 然而&#xff0c;随着分布在全球各地的实时人工智能应…

mac命令行下计算文件SHA-256散列值

源起 从国内的第三方网站下载了Android sutiod的zip包下载地址&#xff0c;为了安全起见还是得跟Android官网上的对应的zip包的SHA值做下对比。以前是经常使用md5命令的&#xff0c;所以理论在命令行下应该是有对应的命令行工具可以计算SHA值的。后来搜索到可以用 shasum命令来…

目标检测——车辆数据集

一、背景介绍 VOC2005车辆数据集是PASCAL VOC挑战赛中的一个重要组成部分&#xff0c;该挑战赛始于2005年&#xff0c;旨在为计算机视觉领域的研究者和开发者提供一个统一的、标准化的评估平台。PASCAL VOC挑战赛不仅推动了图像识别、目标检测、图像分割等技术的发展&#xff…

类和对象(1)——开启C++学习之旅

目录 一、过程性编程和面向对象编程 二、类的定义 2.1类的定义语法 2.2类的定义方式 三、类的访问限定符 四、封装 五、类对象模型 5.1类的实例化 5.2类对象的存储方式 六、this指针 6.1什么是this指针 6.2 this指针的特性 一、过程性编程和面向对象编程 C语言是面…

通过elementUI学习vue

<template><el-radio v-model"radio" label"1">备选项</el-radio><el-radio v-model"radio" label"2">备选项</el-radio> </template><script>export default {data () {return {radio: 1}…

南京观海微电子----Verilog基础(一)——数据类型、运算符

1. 数据类型 1.1 常量 整数&#xff1a;整数可以用二进制b或B&#xff0c;八进制o或O&#xff0c;十进制d或D&#xff0c;十六进制h或H表示&#xff0c;例如&#xff0c;8’b00001111表示8位位宽的二进制整数&#xff0c;4’ha表示4位位宽的十六进制整数。 X和Z&#xff1a;X…

算法沉淀——动态规划之子序列问题(下)(leetcode真题剖析)

算法沉淀——动态规划之子序列问题 01.最长定差子序列02.最长的斐波那契子序列的长度03.最长等差数列04.等差数列划分 II - 子序列 01.最长定差子序列 题目链接&#xff1a;https://leetcode.cn/problems/longest-arithmetic-subsequence-of-given-difference/ 给你一个整数数…

编码技巧——Springboot工程加密yml配置/Maven引入本地二方包

1. 背景 基于Springboot的工程项目&#xff0c;通常很多信息都是在application.yml中直接明文配置的&#xff0c;比如数据库链接信息&#xff0c;redis链接信息等&#xff1b; 为了安全考虑&#xff0c;公司打算将yml配置文件中的数据库连接信息的账号&#xff0c;密码进行加…

mini-spring|关于Bean对象作用域以及FactoryBean的实现和使用

需求 FactoryBean 直接配置FactoryBean 获取FactoryBean中的Bean对象 FactoryBean的getObject方法通过反射获取Bean对象 由此省去对实体Dao类的定义 解决方法 对外提供一个可以二次从 FactoryBean 的 getObject 方法中获取对象的功能即可 整体架构 整个的实现过程包括了两部…

Redis持久化的两种方式RDB和AOF详解

小伙伴们好&#xff0c;欢迎关注&#xff0c;一起学习&#xff0c;无限进步 以下内容为学习 Redis 过程中的笔记 文章目录 Redis持久化RDB&#xff08; Redis DataBase &#xff09;触发机制&#xff1a;如何恢复rbd文件&#xff1a;优点&#xff1a;缺点&#xff1a; AOF &…

【文献管理】zotero插件4——获取知网pdf、中文文献识别与目录生成

文章目录 zotero获取知网PDFzotero——中文文献识别&#xff08;茉莉花插件&#xff09;学位论文目录生成 zotero获取知网PDF zotero——中文文献识别&#xff08;茉莉花插件&#xff09; 为下载的学位论文添加目录中文文献识别&#xff1a;jasminum 下载pdflabs下载茉莉花插…

C++——类的6个默认成员函数

目录 类中的6个默认成员函数 构造函数 构造函数的特点 初始化列表 隐式类型转换 析构函数 拷贝构造函数 赋值重载 运算符重载 赋值重载 取地址重载 类中的6个默认成员函数 类中的6个默认成员函数根据不同的作用可以分为&#xff1a; 初始化和使用后清理&#xff1a;…