如何刷新 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 记录,需要立刻从服务端重新获取更新,常见于安全要求或者测试调试等场景。
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 资源记录和服务。
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 缓存 (macOS, Linux, Windows)的更多相关文章
- 刷新DNS命令 如何刷新DNS缓存(flushdns)
运行:ipconfig /displaydns这个命令,查看一下本机已经缓存了那些的dns信息的,然后输入下面的命令 ipconfig /flushdns 这时本机的dns ...
- 如何刷新DNS缓存
经常换空间的朋友一定知道,域名解析到新空间后,要一段时间才会生效到新空间,这是由于本地的DNS生效不及时导致的.这里青互联教大家一个即时更新本地DNS的方法. 在不同的系统中刷新DNS缓存的方法如下. ...
- 【点滴积累,厚积薄发】修改hosts,并刷新dns缓存
Windows系统下hosts位置 C:\Windows\System32\drivers\etc 修改hosts后,要想马上生效,需要运行命令来刷新DNS缓存:ipconfig /flushdns
- Linux下刷新DNS缓存(Ubuntu/CentOS)
现在很多Linux发行版都没有内置DNS本地缓存,Linux不像Windows那样可以使用ipconfig /flushdns来刷新,在Linux下无需刷新,因为本身没有缓存: 当然,如果非要缓存刷新 ...
- Linux刷新DNS缓存
网上查了下,发现linux刷新dns的缓存方法都是: sudo /etc/init.d/nscd restart 但是在我的机器上,发现提示命令找不到: sudo /etc/init.d/nscd: ...
- Windows 刷新DNS缓存
释放IP配置信息 ipconfig /release 刷新DNS ipconfig /flushdns 更新网卡适配器 ipconfig /renew
- 【Win10】刷新DNS缓存
释放IP配置信息 C:\Users\zheng>ipconfig /release 刷新DNS C:\Users\zheng>ipconfig /flushdns
- Mac怎么刷新DNS缓存
OS X Mavericks.Mountain Lion 和 Lion 请使用以下“终端”命令来还原 DNS 缓存设置: sudo killall -HUP mDNSResponder
- Splunk 8.2.0 发布 (macOS, Linux, Windows)
强烈鄙视 CSDN 用户 CIAS(账号:hanzheng260561728),盗用本站资源,删除原文链接,并且用于收费下载!!! 请访问原文链接:https://sysin.org/article/ ...
- 刷新本地DNS缓存的方法
http://www.cnblogs.com/rubylouvre/archive/2012/08/31/2665859.html 常有人问到域名解析了不是即时生效的嘛,怎么还是原来的呢?答案就是在本 ...
随机推荐
- 搭建私有YUM仓库_及_内网镜像站
搭建私有YUM仓库_及_内网镜像站 搭建私有YUM仓库(自己定制的rpm包)私有yum仓库环境系统版本:centos7.4 IP:192.168.1.47 #最好能上公网 私有yum仓库服务端配置 第 ...
- CentOS8 搭建zabbix监控系统
哈喽,有些时间没有更新公众号.今日更新一下. 安装MySQL数据库 # 安装wget [root@cby ~]# dnf install wget -y # 下载MySQL源 [root@cby ~] ...
- [Oracle]创建数据库表【待完善】
1 前期准备 -- 参考文献 https://www.it1352.com/597381.html -- step1 创建用户<JOHNY>, 来创建对应的(默认)数据库模式(SCHEMA ...
- ubuntu容器的远程xface桌面环境搭建
一.container: ubuntu20.04 二.commands: apt install xfce4 tigervnc-standalone-server # xface使用gdm3启动器 ...
- Abp框架Web站点的安全性提升
本文将从GB/T 28448-2019<信息安全技术 网络安全等级保护测评要求>规定的安全计算环境中解读.摘要若干安全要求,结合Abp框架,对站点进行安全升级. [身份鉴别]应对登录的用户 ...
- axios文件下载!!!!
前端 download(){ debugger; this.loading = true; axios.post('http://localhost:8081/brand_case/dao.do?me ...
- Android事件分发-基础原理和场景分析
作者:京东零售 郭旭锋 1 为什么需要事件分发 和其他平台类似,Android 中 View 的布局是一个树形结构,各个 ViewGroup 和 View 是按树形结构嵌套布局的,从而会出现用户触摸的 ...
- CefSharp自定义缓存实现
大家好,我是沙漠尽头的狼. 上文介绍了<C#使用CefSharp内嵌网页-并给出C#与JS的交互示例>,本文介绍CefSharp的缓存实现,先来说说添加缓存的好处: 提高页面加载加速:Ce ...
- Vue中关于keep-alive的使用
keep-alive是Vue提供的一个抽象组件,用来对组件进行缓存,从而节省性能,由于是一个抽象组件,所以在v页面渲染完毕后不会被渲染成一个DOM元素 当组件在keep-alive内被切换时组件的ac ...
- QUIC在京东直播的应用与实践
作者:京东零售 周凯 一. 前言与背景 国内的互联网直播技术从2005年前后兴起,彼时最具代表性的直播产品是由PPLive创始人姚欣在华中科技大学就读期间发起的校园直播项目PPLive.当时的直播技术 ...