在 macOS 上,同时连接两个网络(如 iPhone 个人热点 + 内网 Wi-Fi)并实现“分流”访问(外网走 iPhone,内网走 Wi-Fi)是可行的,但需要手动配置 网络服务顺序静态路由规则。以下是详细操作步骤:


✅ 场景说明

  • iPhone 通过 USB / 蓝牙 / Wi-Fi 热点连接 Mac → 提供 外网(互联网)

  • Mac 连接公司/局域网 Wi-Fi → 仅用于访问 内网资源(如 192.168.x.x、10.x.x.x 等)

  • 目标

    • 所有公网流量(如浏览器、App Store)走 iPhone

    • 所有内网 IP 流量走 Wi-Fi


🔧 步骤一:确认两个网络接口已连接

  1. 连接 iPhone 个人热点(推荐用 USB,更稳定):

    • 用数据线连接 iPhone 与 Mac

    • 在 iPhone 上开启「设置 > 个人热点」

    • Mac 会自动识别为 “iPhone USB” 网络接口(名称可能略有不同)

  2. 连接内网 Wi-Fi

    • 正常连接公司或内部 Wi-Fi(假设该 Wi-Fi 不能访问互联网,仅能访问内网)

🔧 步骤二:调整网络服务顺序(关键!)

macOS 默认按“服务顺序”决定主路由(默认网关)。我们要让 iPhone 接口排在 Wi-Fi 前面,以使其成为默认出口。

  1. 打开 系统设置 > 网络

  2. 点击右下角 “…” > “设定服务顺序”(或点击齿轮图标)

  3. iPhone USB(或“iPhone 热点”)拖到 最顶部

  4. 点击 “好” 保存

✅ 这样所有默认流量(如打开网页)就会走 iPhone 的网络。


🔧 步骤三:添加静态路由(让内网走Wi-Fi)

现在的问题是:虽然默认走 iPhone,但 内网地址(如 192.168.10.0/24)也需要走 Wi-Fi。我们需要手动加路由。

1. 获取 Wi-Fi 网关地址

系统设置 > WI-FI > 详细信息 > TCP/IP > 下:

路由器:对应的ip即为内网网关,比如:192.168.10.1

ip地址:对应的ip即为本机的内网ip,同时确认内网网段,比如 192.168.10.0/2410.0.0.0/8

2. 添加静态路由(临时生效)

在终端执行(替换为你自己的内网网段和网关):

sudo route add -net 192.168.10.0/24 192.168.10.1

如果是整个 A 类内网(10.x.x.x):

sudo route add -net 10.0.0.0/8 192.168.10.1

特别注意:

mac重启后需要重新添加路由,因此可以将路由配置写成脚本,比如:/Users/phoenix/apps/addroute.sh

3.查看静态路由

打开 终端(Terminal),运行:

# 查看wifi的路由规则
netstat -nr | grep "en0\|Wi-Fi"

# 查看默认网关:可以看到iphone和wifi两个网关
netstat -nr | grep '^default'

✅ 这样访问 192.168.10.x 就会走 Wi-Fi,其他流量走 iPhone。

相关命令:

删除路由:

sudo route delete default 192.168.10.1

添加默认路由:

sudo route add default 172.20.10.1

特殊场景:

场景1:内网wifi连接以后,需要使用内网登录云桌面。这种情况下iphon的公网dns会导致云桌面的地址解析被解析为公网地址,导致无法使用内网访问云桌面。

解决步骤如下:

1)只连接内网wifi,关闭iphone usb网络

2)登录云桌面

3)添加内网路由,包括mac本机路由和云桌面的内网ip路由

比如云桌面地址为:10.11.21.8,则路由配置:sudo route add -net 10.11.21.0/24 192.168.10.1

4)开启iphone usb网络

此时公网和内网同时可以访问了。

问题解决:

1、iphone外网经常中断

原因是:iphone的default路由消失,导致外网中断。

解决:添加default网关路由:sudo route add default 172.20.10.1