macos可通过网络位置、服务顺序、静态路由和脚本监听组合实现wifi与有线自动联动切换:网络位置分场景保存wi-fi和以太网启停及参数配置;服务顺序决定默认出口路径;静态路由强制内网流量走有线;脚本监听ssid变化动态调整代理或路由,配合launchd后台运行且重启不失效。

macOS 本身不提供“WiFi 与有线自动联动切换”的图形化开关,但通过系统原生机制组合——网络位置、服务顺序、静态路由和脚本监听——可以实现接近自动的协同行为:Wi-Fi 用于上网,有线专走内网,两者同时在线、互不干扰。
网络位置帮你分场景存配置
每个位置可独立设定 Wi-Fi 和以太网的启用状态、IP 获取方式(DHCP/手动)、DNS、代理等。比如创建“办公”位置:Wi-Fi 启用(连外网)、以太网启用(配静态内网 IP);再建“居家”位置:只启用 Wi-Fi,禁用以太网。切换位置时,系统自动启用对应服务并加载其全部参数,无需逐项调整。
服务顺序决定默认出口路径
即使 Wi-Fi 和有线都连着,macOS 会按服务顺序选第一个“已连接且启用”的接口作为默认网关。在“网络”设置中点击“设定服务顺序”,把 Wi-Fi 拖到以太网上方,就能确保访问互联网时优先走 Wi-Fi;而内网流量则靠后续路由规则引导。
静态路由让内网流量定向走有线
仅靠服务顺序无法让特定地址(如 10.1.0.0/16 或 172.16.74.0/24)强制走有线。需用终端添加路由:
sudo route add -net 172.16.74.0/24 172.16.74.254
其中 172.16.74.254 是你有线网卡的网关。该命令让所有匹配此网段的请求发往有线接口,其余流量仍走 Wi-Fi。
SSID 变化可触发代理或路由更新(进阶联动)
如果你在公司 Wi-Fi 下需要开代理、回家自动关,可用脚本监听 SSID:
- 每 15 秒运行一次,用
airport -I提取当前 SSID; - 匹配成功后,调用
networksetup开启代理,或用route add/delete动态增删内网路由; - 配合
launchd后台运行,重启后仍生效,只需提前给终端授予“完全磁盘访问权限”。
这些机制不是一键联动按钮,但组合起来稳定、无需第三方工具、兼容 Ventura 至 Sequoia 全系列系统。关键在于:位置管“存什么”,顺序管“先用谁”,路由管“往哪送”,脚本管“什么时候改”。











