mac清理dns缓存需按系统版本执行终端命令:sonoma至catalina用sudo dscacheutil -flushcache; sudo killall -hup mdnsresponder,mojave至sierra仅需sudo killall -hup mdnsresponder,el capitan及更早同catalina命令;也可用复合命令sudo dscacheutil -flushcache && sudo killall -hup mdnsresponder、改dns服务器、开关wi-fi或检查/etc/hosts文件。

如果您在Mac上遇到网页打不开、加载缓慢或仅特定网站无法访问,而其他设备(如手机)访问正常,则极可能是本地DNS缓存中保存了过期或错误的域名解析记录。以下是多种可靠且互为补充的清理方案:
一、按macOS系统版本执行终端命令精准清除
macOS通过mDNSResponder服务管理DNS缓存,不同版本依赖的缓存机制存在差异;执行对应版本的命令可确保服务重置并清空全部解析映射,避免因版本不匹配导致清理失败。
1、按下Command + 空格调出Spotlight搜索,输入“终端”并回车启动应用。
2、在终端窗口中,根据您的macOS版本输入以下任一命令:
——若运行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
——若运行macOS El Capitan (10.11) 及更早版本:sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder
3、按回车后,系统将提示输入管理员密码。
4、键入当前用户登录密码(输入过程中屏幕不显示任何字符),再按回车确认执行。
5、终端返回新行光标即表示命令已执行完毕,此时DNS缓存已被清除。
二、使用单条复合命令确保双重生效
该方法将缓存清空与服务重启合并为原子化指令,通过逻辑运算符&&保障两步动作严格顺序执行,防止因进程调度延迟导致清理残留,适用于所有支持dscacheutil的macOS版本。
1、打开“终端”应用程序。
2、复制并粘贴以下完整命令:sudo dscacheutil -flushcache && sudo killall -HUP mDNSResponder
3、按回车键提交命令。
4、在密码提示下输入管理员密码并回车。
5、系统将依次完成缓存清空与mDNSResponder进程重启,两个动作均成功执行后DNS缓存即被彻底刷新。
三、通过更改DNS服务器设置强制刷新
修改网络接口中的DNS服务器地址会触发系统丢弃全部现有DNS缓存条目,并建立全新解析路径,无需命令行操作,同时可提升后续解析稳定性与速度。
1、从屏幕左上角点击苹果菜单,选择“系统设置”(macOS Ventura及更新版本)或“系统偏好设置”(macOS Monterey及更早版本)。
PyCharm 2026.2.0.1 Mac版提供 JetBrains 官方 2026.2.0.1 版本安装包,适合在macOS系统上进行 Python 项目开发、运行、调试和测试。
2、进入“网络”设置界面,选择当前正在使用的连接(如Wi-Fi或以太网)。
3、点击右侧的“详细信息…”按钮。
4、切换到“DNS”标签页,在左侧DNS服务器列表中选中现有条目,点击下方“−”号将其删除。
5、点击“+”号添加新的公共DNS地址,例如:8.8.8.8 和 8.8.4.4(Google公共DNS),或1.1.1.1 和 1.0.0.1(Cloudflare DNS)。
6、选中刚添加的DNS条目,拖拽至列表顶部,确保其优先使用;点击“完成”保存。
四、关闭并重新开启Wi-Fi连接触发网络栈重置
此操作会强制系统丢弃当前DNS缓存并重新建立解析路径,无需命令行操作,适合快速验证或临时缓解问题,对有线以太网连接同样适用(需断开后重连网线或重启网络接口)。
1、点击屏幕右上角Wi-Fi图标。
2、在弹出菜单中选择“关闭Wi-Fi”。
3、等待约5秒后,再次点击Wi-Fi图标。
4、在菜单中选择当前网络名称,重新连接。
5、连接成功后,系统自动重建TCP/IP栈与DNS查询链路,旧缓存即被丢弃。
五、检查并清理被篡改的/etc/hosts文件
/etc/hosts文件具有最高DNS解析优先级,若被恶意软件或误操作写入类似www.example.com 0.0.0.0的拦截行,浏览器将直接拒绝访问,绕过所有DNS缓存清理操作。
1、打开“终端”应用程序。
2、输入命令:sudo nano /etc/hosts
3、检查文件内容,删除所有非注释(即不以#开头)且指向0.0.0.0、127.0.0.1或异常IP的域名映射行。
4、按Control + O保存,回车确认文件名;再按Control + X退出编辑器。
5、执行命令:sudo dscacheutil -flushcache && sudo killall -HUP mDNSResponder确保变更立即生效。










