macos网络接口优先级由服务顺序严格决定,非启动顺序或物理类型;需在「系统设置→网络→设定服务顺序」中拖动以太网或wi-fi至顶端,并用route get default验证interface和gateway;双网并行应添加静态路由而非调整服务顺序。

macOS 里没有“启动项”意义上的网络接口优先级配置——以太网(或 Wi-Fi)的优先级不由开机自启顺序决定,而是由网络服务顺序控制,默认路由、DNS、所有未指定路径的流量都严格按这个顺序走。
服务顺序才是真正的优先级开关
系统不会根据接口物理类型(有线/无线)或连接时间(开机即插/热插拔)自动选路。谁排在「服务顺序」列表最上面,谁就是默认出口。
- 打开「系统设置」→「网络」
- 点击右上角 ⋯ →「设定服务顺序」
- 把「以太网」拖到列表顶端(若想让它当主通道),或把「Wi-Fi」拖上去(若想保留无线为主)
- 点「完成」,路由表立即重载,无需重启
验证是否真的生效
界面操作完别直接信,终端里跑一句才准:
- 打开终端,输入:
route get default - 看输出里的 interface 字段:常见如
en4、en5多为 USB-C/雷电有线口;en0在 M 系列 Mac 上也可能是有线口,不能只靠名字猜 - 同时核对 gateway 是否匹配你以太网所在网络的真实网关(比如
192.168.204.254)
需要双网并用?加静态路由更稳妥
如果既要以太网访问内网(如 10.10.0.0/16),又要 Wi-Fi 上公网,就别动服务顺序——直接配静态路由:
- 确认以太网接口名(如
USB Ethernet)和内网网关(如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 的自动连接逻辑和以太网无关,它只看「首选网络」列表顺序+是否勾选「自动加入」。以太网插上就激活,不参与这个列表,但它在服务顺序里的位置决定了它能否成为默认出口。
- 插着以太网但没生效?先检查服务顺序里它是不是被 Wi-Fi 压在下面
- 插拔后没立刻切换?已建立的长连接(SSH、会议软件)不会断开重连,需手动刷新或等连接重建
- 怀疑接口识别错?用
ifconfig en4(换成你实际的 en* 编号)看有没有拿到正确 IP 和子网











