macos 不支持按协议类型设置网络优先级,实际路由由服务顺序和静态路由决定:主出口通过「设定服务顺序」指定,按目标地址分流需添加静态路由,wi-fi 优先连接靠「首选网络」列表,跃点数设置无效。

macOS 中没有“网络传输协议优先级”这一设置概念。系统不按 TCP/UDP/ICMP 等协议类型分配优先级,也不提供图形界面或系统偏好设置来手动指定某类协议走特定网卡。所谓“协议优先级”,实际是路由决策的结果——由目标 IP 地址是否匹配某条路由规则决定流量走向。
默认出口由服务顺序唯一决定
当 Wi-Fi 和以太网同时启用时,macOS 仅依据「网络服务顺序」选择一个默认网关,所有未被静态路由明确覆盖的流量(无论 HTTP、DNS、SSH 还是视频会议)都走这条路:
- 打开「系统设置」→「网络」→ 右上角 ⋯ →「设定服务顺序」
- 把想要作为主出口的网络(如 Wi-Fi 或以太网)拖到列表最顶端
- 点击「完成」后,系统立即更新路由表,无需重启
- 用终端执行 route get default 验证 interface 和 gateway 是否符合预期
按目标地址分流才真正控制“协议行为”
想让某些服务走特定线路(例如:公司内网访问走以太网,公网浏览走 Wi-Fi),不能靠改协议设置,而要加静态路由:
部署和使用军舰的 macOS Automator 自动化服务集合。包含 5 个实用工作流:PDF转JPG、PNG重命名并转JPG、图像拼接、解压RAR、顺序命名图像文件。一键安装所有服务到 ~/Library/Services/ 目录。使用场景:(1) "安装我的自动化服务",(2) "部署所有 Automato...
- 例如,强制所有发往 10.20.0.0/16 的流量经以太网网关 10.20.254.254:
- 终端运行:sudo route -n add -net 10.20.0.0/16 10.20.254.254
- 验证是否生效:netstat -rn | grep 10.20
- 该路由永久生效需写入启动脚本(如 /Library/Scripts/setroutes.sh),否则重启丢失
Wi-Fi 网络本身的连接优先级可单独调整
如果你指的是“多个 Wi-Fi 网络之间谁先连”,这是另一套逻辑,通过「首选网络」列表控制:
- 进入「系统设置」→「网络」→「Wi-Fi」→「详细信息」→「Wi-Fi」标签页
- 在「首选网络」中,将目标 SSID(如 Home_5G)拖至顶部
- 确保右侧复选框已勾选(启用自动加入)
- 若路由器双频合一,必须为 5G 单独设 SSID,否则 macOS 无法区分频段
跃点数(Metric)和高级设置里的数值全是摆设
Windows 用户熟悉的“调低跃点数提升优先级”在 macOS 完全无效:
- IPv4 设置中的「跃点数」字段仅作显示,系统从不读取或应用它
- 任何通过「高级」→「TCP/IP」里修改数字的操作,都不会影响实际路由行为
- 不要浪费时间填这个值,它对连接选择零作用










