macos 不支持终端直接修改 wi-fi 自动连接优先级,必须通过图形界面拖拽「首选网络」排序生效;终端仅能间接管理,如查看/增删网络、重载配置,但置顶仍需 gui 操作。
macos 不提供直接通过终端命令修改 wi-fi 自动连接优先级(auto-join order)的原生接口。系统将该优先级完全绑定在图形界面的「首选网络」列表顺序上,而该列表由配置文件 /library/preferences/systemconfiguration/com.apple.airport.preferences.plist 和用户级 ~/library/preferences/com.apple.wifi.message-tracer.plist 等共同维护,但 apple 未开放写入该顺序的公开 cli 工具。
终端可执行的间接管理方式
虽然无法用一条命令“拖动 SSID 到顶部”,但可通过终端完成以下关键操作,实现等效控制:
-
查看当前已知 Wi-Fi 网络列表及顺序:
defaults read /Library/Preferences/SystemConfiguration/com.apple.airport.preferences | grep -A 20 "RememberedNetworks"或更清晰地提取 SSID 和排序(需配合 plutil 解析):plutil -convert xml1 -o - /Library/Preferences/SystemConfiguration/com.apple.airport.preferences.plist | grep -A 2 -B 2 "SSID_STR" -
手动添加新网络并设为最高优先级:
使用
networksetup命令加入网络(需密码),再配合配置文件编辑确保其位于首位:sudo networksetup -setairportnetwork en0 "MyWiFi_5G" "password123"此操作会自动将该网络加入首选列表底部;如需置顶,仍需后续编辑 plist 文件或通过 GUI 调整。 -
删除干扰性旧网络记录:
清除历史连接可避免系统误连弱信号或错误频段网络:
sudo networksetup -removepreferredwirelessnetwork en0 "Office_Guest"sudo networksetup -removepreferredwirelessnetwork en0 "Home_2.4G" -
重载 Wi-Fi 配置与 DNS 缓存:
修改后需刷新系统识别:
sudo ifconfig en0 down && sudo ifconfig en0 up(重启网卡)sudo dscacheutil -flushcache && sudo killall -HUP mDNSResponder
必须配合 GUI 完成的关键步骤
终端无法替代图形界面中「拖拽排序」这一核心动作。所有终端操作后的最终生效,仍依赖于:
部署和使用军舰的 macOS Automator 自动化服务集合。包含 5 个实用工作流:PDF转JPG、PNG重命名并转JPG、图像拼接、解压RAR、顺序命名图像文件。一键安装所有服务到 ~/Library/Services/ 目录。使用场景:(1) "安装我的自动化服务",(2) "部署所有 Automato...
- 进入 系统设置 → 网络 → Wi-Fi → 详细信息 → 首选网络;
- 将目标网络(如
Home_5G)拖至列表最上方; - 点击「好」→「应用」保存——此步写入服务顺序元数据,终端不可绕过。
自动化补充方案(进阶)
若需批量部署或脚本化管理,可结合终端与临时 plist 操作:
- 导出当前偏好:
sudo cp /Library/Preferences/SystemConfiguration/com.apple.airport.preferences.plist ~/Desktop/backup.plist - 用
plutil或 Python 脚本修改RememberedNetworks数组顺序(注意结构嵌套与签名验证); - 替换并重启网络服务:
sudo cp ~/Desktop/edited.plist /Library/Preferences/SystemConfiguration/com.apple.airport.preferences.plist;sudo launchctl kickstart -k system/com.apple.networkd。
⚠️ 注意:直接编辑系统 plist 存在风险,修改前务必备份,且 macOS 可能因签名校验拒绝加载非法格式文件。










