最直接有效的方式是用终端指令重启 mDNSResponder 服务,它负责 macOS 的本地 DNS 缓存与 Bonjour 局域网发现;执行 sudo killall -HUP mDNSResponder 可清空缓存并重建服务,解决局域网设备不可见等问题。
最直接有效的方式是用终端指令重启 mdnsresponder 服务,它负责 macos 的本地 dns 缓存与 bonjour 局域网发现(如 airplay、共享打印机、finder 中的“网络”设备)。该操作会清空当前 mdns 缓存并重建服务实例,对局域网域名解析异常(比如看不到隔壁 mac、无法连接 time machine 目标、隔空播放列表为空)有立竿见影的效果。
推荐命令:强制重启 mDNSResponder
适用于 macOS Sonoma(14)、Ventura(13)、Monterey(12)及更新版本,也兼容多数旧系统:
- 打开“终端”(可通过 Command + 空格 → 输入“终端” → 回车)
- 粘贴并执行以下命令:
sudo killall -HUP mDNSResponder - 输入管理员密码(输入时无显示,输完直接回车)
- 等待约 3–5 秒,系统自动拉起新进程;可打开“活动监视器”,搜索 mDNSResponder 查看 CPU 占用是否回落至正常水平
增强清理:同步刷新系统级 DNS 缓存
仅重启 mDNSResponder 能解决大部分局域网发现问题,但若同时存在网页打不开、ping 域名失败等混合症状,建议追加缓存清空动作:
- 在同一条终端中,执行复合命令:
sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder - 该组合确保系统级 DNS 查询缓存(
dscacheutil)与多播 DNS 服务(mDNSResponder)同步重置 - 无需额外重启或注销,生效即时
验证是否生效
执行后可快速检验局域网解析是否恢复:
- 在终端中运行:dns-sd -G v4 example.local(将
example.local替换为实际局域网设备名,如你的 Mac 名称后缀 .local) - 或尝试在 Finder 侧边栏点击“网络”,观察设备是否重新出现
- 打开“隔空播放”菜单,检查是否有新增设备响应
补充说明
部分早期 macOS 版本(如 Yosemite 10.10.3 及更早)曾使用 discoveryutil mdnsflushcache,但该工具已在 macOS 10.10.4+ 中被弃用。当前所有主流版本(包括 2026 年仍在支持的 Sonoma 和即将发布的 Sequoia 测试版)均以 killall -HUP mDNSResponder 为标准操作,稳定且无需安装额外工具。


















