macos网络接口优先级由服务顺序严格决定,非信号或速度;默认流量走列表顶端接口,需用route get default验证;静态路由可分流内网流量,跃点数在macos中无效。

MacOS 同时连上以太网和 Wi-Fi 时,不会自动“选快的”或“选稳定的”,而是严格按服务顺序决定默认出口。冲突的本质是:所有未明确指定目标的流量(比如打开网页、发邮件)都只走一个网关,另一个网络可能完全“不可见”。解决的关键不是禁用某一个,而是让两条路各司其职。
确认当前默认路由是谁在管事
别信系统设置界面显示的“已连接”,终端命令才能看到真实路由:
- 打开终端,输入:route get default
- 看输出里的 interface(如 en0、en4)和 gateway(如 192.168.1.1 或 10.10.0.1)
- 再配合 ifconfig en0 等查看该接口实际拿到的 IP 和子网,确认它是否对应你期望的网络(比如 Wi-Fi 公网 or 有线内网)
调整服务顺序控制默认出口
这是最直接、影响全局的方式,适合“日常上网走 Wi-Fi,偶尔切有线全量走内网”的场景:
- 进入「系统设置 → 网络」
- 点击右上角 ⋯ → 「设定服务顺序」
- 把你想当默认出口的网络(比如 Wi-Fi)拖到列表最顶部
- 点「完成」,系统立即重载路由表,无需重启
- 注意:已有长连接(如视频会议、SSH)不会立刻切换,可手动刷新 DNS:sudo killall -HUP mDNSResponder
加静态路由实现双网并行
这才是企业/开发环境真正需要的做法——让特定流量走指定线路,互不干扰:
- 例如:Wi-Fi 走公网(默认),但所有访问 10.10.0.0/16 的请求强制走以太网
- 终端执行:sudo route -n add -net 10.10.0.0/16 10.10.254.254(最后参数填你有线网关)
- 验证是否生效:netstat -rn | grep 10.10 应能看到新增条目
- 重启后失效?需写入启动脚本并配置 launchd,否则每次开机手动补一次
别碰跃点数(Metric),它在 macOS 里没用
Windows 用户习惯调低跃点数来“提权”,但在 macOS 中:
- 网络设置里 IPv4 高级中的“跃点数”字段仅作显示,系统根本不读取
- 任何通过图形界面修改 Metric 的操作,都不会改变实际路由行为
- 真正起效的是服务顺序 + 静态路由,这两者才是 macOS 的真实控制逻辑











