终端重置macos网络服务需分层操作:先重启mdnsresponder及清理缓存,再重载接口与路由表,最后重建/systemconfiguration/下的plist配置文件。

直接用终端重置 macOS 网络服务状态,核心是分层清理:先清缓存与服务发现,再重载接口与路由,最后重建配置源头。图形界面操作只改表层,无法触达 mDNSResponder、内核路由表或 /Library/Preferences/SystemConfiguration/ 下的 plist 文件,所以终端才是最有效的方式。
刷新 DNS 与服务发现缓存
macOS 12 及之后版本中,dscacheutil -flushcache 已基本失效,真正起效的是重启 mDNSResponder:
- 强制重启 DNS 和 Bonjour 服务:
sudo killall -HUP mDNSResponder - 顺带执行传统缓存清理(兼容部分 NSS 查询路径):
sudo dscacheutil -flushcache - 若 AirDrop、隔空播放或 .local 域名解析异常,额外运行:
sudo killall -HUP mDNSResponderHelper
重载网络接口与清空路由表
仅开关 Wi-Fi 或拔插网线不会清除 stale ARP 条目、错误路由或 socket 状态,必须触发内核级重载:
- 查主无线接口名(通常为
en0):ifconfig | grep "^[a-z]" | head -1 | awk '{print $1}' - 停用接口、清空 IPv4 路由表、再启用接口(以
en0为例):sudo ifconfig en0 down && sudo route -n flush && sudo ifconfig en0 up - Wi-Fi 用户需额外启用硬件:
networksetup -setairportpower en0 on
删除并重建系统级网络配置文件
/Library/Preferences/SystemConfiguration/ 下的 plist 是网络配置的“唯一真相源”,GUI 操作完全不修改它们:
- 先停掉守护进程,防止文件被实时重建:
sudo launchctl unload /System/Library/LaunchDaemons/com.apple.networking.systemconfiguration.plist - 备份并移走 5 个关键文件:
sudo mv /Library/Preferences/SystemConfiguration/{NetworkInterfaces,com.apple.airport.preferences,com.apple.network.identification,com.apple.wifi.message-tracer,preferences.plist} /tmp/ - 重启守护进程,触发系统自动生成新配置:
sudo launchctl load /System/Library/LaunchDaemons/com.apple.networking.systemconfiguration.plist
可选:清空已知 Wi-Fi 列表与网络位置
这步非必须,但能避免旧配置干扰新状态:
- 一键删除全部已存 Wi-Fi:
sudo /usr/sbin/networksetup -removeallpreferredwirelessnetworks Wi-Fi - 列出所有网络位置:
networksetup -listlocations - 删除非默认位置(如 Home、Office),再切回 Automatic:
sudo networksetup -deletelocation "Home",然后sudo networksetup -switchtolocation "Automatic"
做完以上步骤后,Wi-Fi 密码需重新输入,但网络服务状态已恢复到接近出厂级干净状态。不需要立即重启,但重启可确保所有组件完全初始化。











