MacOS Wi-Fi 优先级由首选网络顺序(决定连接目标)和服务顺序(决定流量出口)双重控制:前者按列表从上到下匹配首个可连且启用“自动加入”的网络,后者将流量默认导向服务列表首位接口,二者独立配置、协同生效。

MacOS 管理 Wi-Fi 连接的优先级和自动切换,不靠信号强弱、不看网速快慢、也不依赖跃点数(Metric),而是严格按两个独立但协同的机制运行:首选网络顺序决定连哪个 Wi-Fi,服务顺序决定走哪条路(Wi-Fi 还是 Ethernet)。搞清这两层,就能精准控制自动行为。
首选网络列表决定“连谁”
系统开机、唤醒或开启 Wi-Fi 时,会从「首选网络」列表顶部开始逐个尝试连接,遇到第一个已启用「自动加入」且当前可达的网络就立即接入——不犹豫、不比较、不回退。这个顺序就是真正的优先级。
- 打开「系统设置 → 网络 → Wi-Fi → 详细信息 → 高级 → Wi-Fi 标签页」
- 确保勾选「记住这台电脑所加入的网络」,新连上的网络才会自动进列表
- 在「首选网络」中,用三横线(≡)拖动目标网络到最顶端
- 必须勾选该网络右侧的「自动加入」复选框
- 点「好」→ 再点窗口右下角「应用」,配置才真正写入生效
如果拖完还是连错,常见干扰包括:
macOS 微信消息自动化工具。通过 GUI 自动化实现:发送消息给指定联系人、读取聊天内容、监控新消息。适用于需要自动化微信操作的场景,如定时发送、批量回复、消息备份等。依赖 peekaboo 进行屏幕截图和 UI 交互。仅支持 macOS。开源地址:https://github.com/chairmanmia...
- 路由器开启双频合一(2.4G/5G 同名),Mac 无法区分,建议关闭该功能,给 5G 单独命名(如 Home_5G),再拖至首位
- 列表里残留同名但不同密码或协议的旧记录,选中后点「-」移除
- 钥匙串中存的密码错误或被锁住,打开「钥匙串访问」搜索对应 SSID,双击修改并勾选“始终允许”
服务顺序决定“走哪条出口”
当 Wi-Fi 和以太网同时连通时,系统所有未指定路径的流量(浏览器、App Store、iMessage 等)默认走服务顺序排第一的接口。这不是“选最优”,而是“认第一”。
- 进入「系统设置 → 网络」→ 点右上角 ⋯ →「设定服务顺序」
- 把日常上网主力接口(如 Wi-Fi)拖到列表最顶端
- 点「完成」后路由表立即重载,但已有长连接(如 Zoom、SSH)可能需重建才切换
验证是否生效:
在终端执行 route get default,检查输出中的 interface(如 en0、en4)和 gateway 是否与你期望的网络一致。注意:M 系列 Mac 的 en0 可能是有线口,不能只看设备名,要结合 ifconfig en0 看 IP 和网关是否匹配。
让不同流量走不同路:静态路由分流
不需要在 Wi-Fi 和有线之间“争第一”。比如 Wi-Fi 上公网、以太网访内网(10.10.0.0/16),可保留 Wi-Fi 排第一,再加一条静态路由专管内网:
- 先确认有线接口名(如 USB 10/100/1000 LAN)和内网网关(如 10.10.254.254)
- 执行:
sudo route -n add -net 10.10.0.0/16 10.10.254.254 - 验证:
netstat -rn | grep 10.10应看到新增条目 - 重启失效?把命令写进
/Library/Scripts/setroutes.sh,再用 launchd 开机自启
这条路由优先级高于默认路由,只要目标 IP 属于 10.10.0.0/16,就自动走有线,其余流量照常走 Wi-Fi,互不干扰。
控制中心快速切换的前提
想在菜单栏直接点选切换,前提是目标网络必须已在「首选网络」列表中,且不是隐藏网络。隐藏网络必须手动添加(点「+」→ 输入 SSID、安全类型、密码),否则不会出现在控制中心列表里。普通网络则只要连过一次、且开启了「记住这台电脑所加入的网络」,就会自动入库。
不复杂但容易忽略

















