在较新版本的 macOS(High Sierra 及之后)中,DNS 缓存不再以一个单一的“文件”形式存在,而是由系统服务mDNSResponder
在内存中管理的。 没有所谓的“缓存文件”让你去手动删除。
你的目标不是删除一个文件,而是刷新或清空这个内存中的缓存。
以下是不同方法的详细步骤,推荐使用第一种终端命令法,这是最标准、最有效的方法。
这是最直接、最有效的方法,无论你的 macOS 版本是什么,都可以先尝试这个通用命令。
1、 打开应用程序 >实用工具 >终端。
2、 复制并粘贴以下命令,然后按回车:
sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder
3、 系统会提示你输入密码(输入时密码不可见),输入你的 Mac 管理员密码后再次按回车。
命令解释:
sudo
: 获取管理员权限。
dscacheutil -flushcache
: 清空 DNS 缓存。
;
: 分隔符,表示执行完前一个命令后执行下一个。
killall -HUP mDNSResponder
: 重启负责 DNS 解析的核心服务(mDNSResponder
),使其重新加载配置并清空缓存。
如果上述命令无效,请根据你的 macOS 版本尝试以下历史命令:
对于 macOS Big Sur (11.0) 及更新版本(包括 Monterey, Ventura, Sonoma):
sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder
或者尝试:
sudo killall -HUP mDNSResponder
对于 macOS Catalina (10.15), Mojave (10.14), High Sierra (10.13):
sudo killall -HUP mDNSResponder
对于更旧的版本(如 El Capitan, Yosemite):
sudo discoveryutil mdnsflushcache
重启网络服务也会间接清空 DNS 缓存。
1、 打开系统设置 >网络。
2、 选择你正在使用的网络连接(如 Wi-Fi 或以太网)。
3、 点击右下角的详细信息...。
4、 点击侧边栏最下方的还原按钮。
5、 选择还原此服务的网络设置,这会重启网络服务并清空缓存,但请注意,它同时也会忘记该网络的其他设置(如自定义 DNS、代理等)。
正如开头所说,现代 macOS 没有单一的 DNS 缓存文件,负责 DNS 的服务mDNSResponder
可能会将一些状态数据存储在以下路径,但这些不是传统意义上的“缓存”,手动删除它们可能无效甚至导致问题,强烈不推荐普通用户操作。
/var/run/mDNSResponder
/Library/Preferences/com.apple.mDNSResponder.plist
/var/db/mDNSResponderCache.plist
(在某些旧版本中存在)
警告: 请不要随意删除/var/
目录下的文件,这可能导致系统不稳定。
1、最佳方法:对于所有现代 macOS 版本,直接打开终端,使用命令sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder
,输入密码后即可完成刷新。
2、 清空 DNS 缓存可以解决因旧 DNS 记录导致的网站无法访问、访问到错误的网站等问题。
3、 操作完成后,最好完全关闭并重新打开你的浏览器(Safari, Chrome 等),因为浏览器自身也有 DNS 缓存。
希望这些信息能帮到你!
文章摘自:https://idc.huochengrm.cn/dns/14166.html
评论