mac清除dns缓存需按系统版本执行对应命令:sonoma至catalina用“sudo dscacheutil -flushcache; sudo killall -hup mdnsresponder”,mojave及更早仅用“sudo killall -hup mdnsresponder”,el capitan前需先检查进程名再执行。

Mac怎么清除DNS缓存使新解析的域名立即生效——当你刚修改了域名的DNS记录(比如把www.example.com指向了新服务器IP),但浏览器仍访问旧地址、ping显示老IP、甚至curl返回301跳转到历史站点,问题八成出在本地DNS缓存没清干净;不执行正确命令,重启电脑或切换Wi-Fi都无效。
确认系统版本再选命令
macOS不同版本依赖的DNS服务进程完全不同:Sonoma(14)至Catalina(10.15)需同时触发dscacheutil和mDNSResponder;Mojave(10.14)及更早只靠mDNSResponder;El Capitan(10.11)以前可能还残留discoveryd。用错命令等于没操作。
第一步:按Command + 空格打开Spotlight,输入“关于本机”并回车,看顶部显示的系统版本号。
第二步:根据版本号,严格对应以下方法执行——
方法一:macOS Sonoma 14 / Ventura 13 / Monterey 12 / Big Sur 11 / Catalina 10.15
终端中一次性输入:
sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder
注意:两个命令之间是英文分号,不是回车或逗号;缺一不可,只执行前半句或后半句都会残留缓存条目。
方法二:macOS Mojave 10.14 / High Sierra 10.13 / Sierra 10.12
终端中输入:
sudo killall -HUP mDNSResponder
免费 DNS 与邮件安全分析(IntoDNS.ai):包括 DNSSEC、SPF、DKIM、DMARC、MTA-STS、BIMI、SMTP STARTTLS、FCrDNS、黑名单、发件人要求及报告。
这条命令直接向mDNSResponder进程发送挂起信号,强制它清空全部缓存并重启。Mojave开始已弃用dscacheutil的DNS相关功能,再加它反而报错。
方法三:macOS El Capitan 10.11 及更早版本
先运行检查命令确认进程名:
ps aux | grep -E '(mDNS|discovery)'
若输出中含discoveryd,则执行:
sudo killall -HUP discoveryd
若含mDNSResponder,则执行:
sudo killall -HUP mDNSResponder
【务必先查再执行】 El Capitan存在双进程共存可能,盲目kill错进程会导致网络服务中断数秒。
推荐新手用的单行原子命令
该命令把缓存清空与服务重启绑定为不可分割的操作,避免因系统调度延迟导致只清了缓存没重启服务——这是很多人执行后仍不生效的真正原因。
① 打开“终端”应用。
② 复制粘贴以下整行命令(注意是英文分号,不是中文):
sudo dscacheutil -flushcache && sudo killall -HUP mDNSResponder
③ 按回车,输入管理员密码(屏幕不显示字符,输完直接回车)。
命令执行后终端光标换行即完成,无需等待提示或二次确认。










