macOS怎么清除DNS缓存:命令、版本对照与清除后验证
简答:在 macOS 上清除 DNS 缓存,先打开“终端”,执行 <code>sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder</code>,按提示输入 Mac 管理员密码并按回车。输入密码时终端不会显示字符、命令完成后通常也没有成功提示;随后彻底退出并重新打开浏览器,再测试目标网站。
定义:DNS缓存是 Mac 临时保存的域名与IP地址对应信息,清除DNS缓存会让系统重新发起解析,但不会更换DNS服务器,也不会清除浏览器、路由器或上游DNS缓存。
先试这一步:当前macOS清除DNS缓存命令
适用范围:截至 2026-10-27,本文按当前 macOS 及近年版本整理。如果你遇到网站更换服务器后仍打开旧页面、域名解析错误,或者其他设备能打开而 Mac 不能,先关闭正在访问该网站的浏览器标签页,然后按下面流程操作。
- 按
Command+Space打开 Spotlight,搜索“终端”,打开 Terminal。 - 复制并执行:
sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder - 看到
Password:后,输入当前 Mac 管理员账户密码,再按回车。 - 等待命令返回新的命令行,不要连续重复执行。
- 彻底退出浏览器后重新打开,再访问原来打不开的网站。
这条组合命令被多所高校 IT 服务部门用于较新 macOS 的 DNS 缓存清理流程,例如俄克拉荷马大学的说明将 Catalina、Big Sur、Monterey、Ventura、Sonoma 和 Tahoe 列入同一组命令范围;如果你的系统非常旧,应先参照下方版本表,而不要盲目套用新命令。俄克拉荷马大学 IT:Flushing DNS Cache
Apple 的 Terminal 文档确认,终端要求输入密码时,输入过程不会显示字符,光标也可能不移动;这是正常的安全设计,不代表键盘没有输入。Apple:在 Mac 终端输入密码
不同macOS版本该用哪条命令?
命令在不同 macOS 版本上存在差异。下面的表格用于快速选择;如果你不知道版本号,可打开“系统设置”>“通用”>“关于本机”查看。近年版本优先使用第一行;旧系统则按对应版本执行。
| 系统范围 | 建议命令 | 说明 |
|---|---|---|
| 较新的 macOS,包括 Catalina 及之后的常见版本 | sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder | 先刷新缓存,再向 mDNSResponder 发送重新加载信号 |
| 部分旧版 macOS,如 Mojave、High Sierra、Sierra、El Capitan | sudo killall -HUP mDNSResponder | 旧版资料常将该命令作为主要清理方式 |
| OS X Yosemite | sudo discoveryutil udnsflushcaches | 仅适用于旧系统,不建议在新系统中尝试 |
| 更早的 Mac OS X | 命令可能继续变化 | 应先确认具体版本与对应文档,本文不建议凭经验试错 |
版本对照来自大学 IT 服务文档的公开维护页面。伊利诺伊大学系统还按 macOS 12、11、10.15、10.14 及更早版本列出命令差异,可用于核对旧设备。伊利诺伊大学:Reset my DNS
不要把“清除DNS缓存”和“修改DNS服务器”混为一谈。清缓存只是删除本机暂存的解析结果;如果你要更换 DNS 服务器,需要进入 Apple 菜单>“系统设置”>“网络”>选择当前网络服务>“详情”>“DNS”,再添加或删除 DNS 服务器。Apple 官方说明了这一设置入口。Apple:在 Mac 上更改 DNS 设置
输入命令后没有提示,怎样判断是否成功?
清除 DNS 缓存的命令通常不会显示“清除成功”这类确认文字。只要没有出现明确的错误信息,并且终端返回新的命令提示符,通常可以继续进行验证。输入密码时看不到字符是正常现象;不要因为屏幕没有变化就多次输入或强制关闭终端。
- 先重开浏览器:退出浏览器,而不是只关闭当前标签页,再重新打开。
- 测试域名解析:在终端执行
dig example.com,查看是否返回ANSWER SECTION或地址记录。将example.com替换为实际打不开的域名。 - 查看系统 DNS 配置:执行
scutil --dns,检查输出中的nameserver,确认系统当前使用的 DNS 服务器是否符合你的网络设置。 - 对比浏览器与其他设备:如果同一网络下其他设备也无法解析,问题可能不在 Mac 本地缓存;如果只有某个浏览器打不开,则优先检查浏览器缓存、代理或安全 DNS 设置。
dig 和 scutil --dns用于观察解析结果与系统 DNS 配置,不等于能证明目标网站本身正常。验证时应记录域名、返回结果和测试时间,避免把一次解析失败直接判断为线路或服务器故障。
清除后仍打不开网页:按现象继续排查
清除 DNS 缓存只处理 Mac 本地缓存这一层。如果问题仍存在,请按下面顺序检查,避免直接删除配置文件或反复执行命令。
- 只有一个域名打不开:执行
dig 目标域名,再检查/etc/hosts是否存在手动写入的旧地址。只查看,不要在没有备份的情况下删除或改写系统文件。 - 所有网站都打不开:进入 Apple 菜单>“系统设置”>“网络”,确认当前 Wi-Fi 或以太网服务已连接,并检查 DNS 页面中是否存在明显错误的服务器地址。Apple 官方的 DNS 设置入口是“网络”>网络服务>“详情”>“DNS”。Apple:DNS 设置路径
- 关闭代理或 VPN 后才恢复:检查系统“网络”设置中的“代理”,以及相关客户端是否接管 DNS。不要只看 Wi-Fi 图标判断网络正常,代理、VPN 和安全 DNS 都可能改变解析路径。
- 同一 Wi-Fi 下所有设备都失败:重启路由器或检查路由器的 DNS 设置;Mac 清缓存无法清除路由器缓存,也无法刷新运营商或上游 DNS 服务器。
- 只有浏览器失败:彻底退出浏览器后重开;必要时检查浏览器自己的安全 DNS、代理和缓存设置。不要把浏览器缓存问题误认为系统 DNS 缓存问题。
如果你刚修改过 DNS 服务器,先确认修改已保存,再重新连接 Wi-Fi。修改 DNS 服务器与清除 DNS 缓存是两个不同动作:前者改变后续查询使用的服务器,后者只是让本机重新查询。
安全提醒与结果标准
- 只执行明确知道作用的命令,不要为了“加快网络”随意运行
killall -9、删除系统目录或删除/etc/hosts。 - 清除 DNS 缓存不会保证网页一定恢复,也不会直接降低延迟;它适合处理本机可能保留旧解析结果的场景。
- 如果终端提示权限不足,确认当前账户是管理员账户,并重新输入 Mac 登录密码;不要输入 Apple 账户密码或其他网站密码。
- 如果命令提示找不到工具、服务名称不匹配或出现明确报错,停止继续试错,先确认 macOS 版本,再查对应版本文档。
完成验证的标准是:目标域名能够重新解析,浏览器已重新建立连接,并且问题范围没有从单个域名扩大到全部网站。若只有某个站点仍失败,应继续核查代理、VPN、hosts 文件和目标站点状态,而不是无限重复清缓存。
相关设置与排障入口
如果你要继续处理的是 DNS 配置或 macOS 网络连接,而不只是清缓存,可以参考站内以下页面:
- macOS 网络连接设置方法:Wi‑Fi、DNS、IP与排障路径:适合从系统网络设置继续检查。
- 如何更改DNS:Windows、macOS、手机与路由器步骤:适合区分清缓存与换 DNS。
- DNS泄漏是什么?检测、区别与修复方法详解:适合怀疑 VPN 或代理接管 DNS 的情况。
- 网络连接正常但打不开网页:按范围定位并修复:适合 DNS 清理后仍无法访问网页的综合排查。
常见问题
macOS清除DNS缓存后没有任何提示,是不是失败了?
不一定。该命令完成后通常直接返回新的命令提示符,不一定显示成功文字。只要没有明确报错,可退出并重新打开浏览器,再用 dig 目标域名验证解析。
在终端输入Mac密码时看不到字符,应该怎么办?
这是正常现象。Apple说明终端输入密码时不会显示字符,光标也可能不移动。直接输入当前Mac管理员账户密码并按回车,不要输入Apple账户密码。
清除DNS缓存会不会修改我设置的DNS服务器?
不会。清除缓存只让本机重新进行域名解析,不会自动把DNS服务器改成其他地址。修改DNS服务器要到“系统设置”>“网络”>当前网络服务>“详情”>“DNS”中操作。
清除DNS缓存后网页仍然打不开怎么办?
先执行 dig 目标域名和 scutil --dns,分别观察解析结果与当前DNS配置;然后检查浏览器缓存、代理、VPN、/etc/hosts、路由器和其他设备是否也存在同样问题。
我需要每天清除一次DNS缓存吗?
通常不需要。清除DNS缓存主要用于排查旧解析、域名更换地址或解析异常;它不是日常提速操作,也不能保证解决所有连接问题。