mac网络接口优先级由服务顺序决定,非信号或速度;wi-fi首选网络排序控制自动连接;静态路由可分流内网流量;networksetup仅辅助管理,关键设置需图形界面操作。

Mac 的网络接口优先级不是靠“信号强弱”或“网速快慢”自动判断的,而是由服务顺序严格决定的——谁排第一,谁就是默认出口。真正高效的管理,是让不同流量走不同的路,而不是只争一个“第一”。
用服务顺序控制默认出口
这是最基础也最关键的设置。系统所有未明确指定路径的流量(比如浏览器打开网页、App Store 更新)都会走这里排第一的接口。
- 进入「系统设置」→「网络」,点击右上角⋯ →「设定服务顺序」
- 把你想作为日常上网主通道的接口(如 Wi-Fi)拖到列表最顶端
- 点「完成」后,系统会立即重载路由表,但已建立的长连接(如视频会议、SSH)可能不会立刻切换
- 务必在终端执行 route get default 验证:看 interface 是否是你期望的(如 en0 或 en4),gateway 是否匹配该网络的真实网关
用静态路由分流内网/特定网段
当你需要 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 自启加载
Wi-Fi 首选网络排序决定自动连接行为
Mac 连哪个 Wi-Fi,完全取决于「首选网络」列表从上到下的顺序。这不是建议,是执行逻辑。
- 进「系统设置」→「网络」→「Wi-Fi」→「详细信息」→「高级」→「Wi-Fi」标签页
- 勾选「记住这台电脑所加入的网络」,确保新连上的网络自动进列表
- 按住目标网络前的三横线(≡),拖到列表最顶;右侧必须勾选「自动加入」
- 双频合一(2.4G/5G 同名)会导致 Mac 无法区分频段——关闭该功能,给 5G 单独起名(如 Home_5G),再把它拖到顶部
- 旧密码残留、钥匙串未解锁、同名不同密的冗余条目,都可能导致“明明排第一却连不上”,需逐个清理
命令行辅助,但不能替代图形操作
networksetup 是 macOS 原生工具,适合批量管理和验证,但关键排序仍依赖界面。
- 查服务名:networksetup -listallnetworkservices
- 调顺序(精确覆盖):networksetup -ordernetworkservices "Wi-Fi" "USB Ethernet" "Bluetooth PAN"
- 查某服务详情:networksetup -getinfo "Wi-Fi"
- 终端无法直接拖动 Wi-Fi 首选列表顺序,也无法用 metric(跃点数)控制优先级——macOS 完全忽略该字段











