MacOS网络位置切换可通过networksetup命令高效完成:用-getcurrentlocation查看、-listlocations列出、-switchlocation切换位置;为服务设DNS用-setdnsservers,-getdnsservers验证,并执行dscacheutil刷新缓存。
macos 的网络位置切换完全可以通过终端高效完成,无需打开系统设置或重启网络服务。核心是 networksetup 命令,配合少量系统级操作即可实现秒级切换和批量配置。
查看与快速切换当前网络位置
系统中所有已创建的位置都可被终端识别和调用:
- 查当前使用的位置:
networksetup -getcurrentlocation - 列出全部位置名称:
networksetup -listlocations - 立即切换到指定位置(如“办公室”):
networksetup -switchlocation "办公室"
注意:切换后系统不会自动重载网络接口,建议紧接执行一次服务重置(例如 Wi-Fi 接口为 en0):sudo ifconfig en0 down && sudo ifconfig en0 up
或者更稳妥的方式是打开“系统设置→网络”,点一下右下角“应用”按钮,确保所有参数即时生效。
为指定位置下的服务配置 DNS(最常用场景)
DNS 设置绑定在具体网络服务(如 Wi-Fi、以太网)上,且随位置独立保存:
- 先确认已切换到目标位置:
networksetup -switchlocation "家庭" - 查看该位置下启用的服务:
networksetup -listallnetworkservices - 为“Wi-Fi”设置两个国内常用 DNS:
networksetup -setdnsservers "Wi-Fi" 223.5.5.5 119.29.29.29 - 恢复自动获取 DNS:
networksetup -setdnsservers "Wi-Fi" automatic - 验证是否写入成功:
networksetup -getdnsservers "Wi-Fi"
刷新 DNS 缓存确保新解析立即生效
即使 DNS 已正确配置,系统仍可能返回旧缓存结果:
- 执行刷新命令:
sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder - 验证是否生效:用
nslookup example.com或dig example.com查看返回的 DNS 服务器地址是否为你刚设置的
创建新位置并预置完整网络参数(适合脚本化部署)
终端不能直接新建位置,但可借助 GUI 创建后,全程用命令初始化:
- 在“系统设置→网络→编辑位置→+”中新建名为“开发环境”的位置
- 终端切换过去:
networksetup -switchlocation "开发环境" - 立即配置 Wi-Fi 为静态 IP 并设 DNS:
networksetup -setmanual "Wi-Fi" 192.168.1.100 255.255.255.0 192.168.1.1; networksetup -setdnsservers "Wi-Fi" 127.0.0.1 8.8.8.8 - 后续只需一条
-switchlocation命令,整套 IP、DNS、代理等参数即刻加载


















