macOS 上的分流(Split Tunneling):做法与局限
从实用角度讲清 Mac 上的 VPN 分流:macOS 自身提供什么,按应用与按路由有何不同,如何验证,以及它的局限。
阅读约 10 分钟更新于 2026年10月15日作者:XPASS Editorial Team

Mac 很少一次只做一件事:视频会议和文件下载同时进行,银行页面和工作文档并排打开,家里的打印机还得照常使用。当 VPN 把这一切都塞进同一条隧道时,总会有某个环节出问题,这时人们就会去搜索 mac vpn split tunneling,也就是 Mac 上的分流。
本文专门讲 Mac:macOS 提供了什么、没有提供什么,三种现实可行的思路,以及如何验证你设置的分流是否真的生效。如果想先了解通用概念,请阅读什么是分流。这里只谈实操,并坦率说明局限,因为在 macOS 上最诚实的答案是“取决于你用的 VPN 应用”。
macOS 提供什么,不提供什么
macOS 通过一个系统层来管理 VPN,各个应用接入这一层。VPN 应用请求添加配置,你用开机密码或 Touch ID 确认,之后系统会把流量送入一个虚拟网络接口,在终端里表现为以 utun 开头的名称。
系统层没有交给普通用户的,是一个“让这个应用绕开 VPN”的开关。打开系统设置,进入 VPN 部分,你可以开关连接、查看详情、删除配置,但不能把应用分配给它。Apple 平台上确实有按应用生效的 VPN 规则,不过它们通过设备管理描述文件下发,由企业 IT 部门安装在受管理的 Mac 上,并不是个人可用的设置页。
因此在个人 Mac 上,分流只可能来自三个地方:
- VPN 应用自身,前提是开发者做了排除功能。
- 路由表,可以读取,也可以谨慎地修改。
- 习惯与变通办法,不用分流也能解决问题。
下文的内容都归入这三类,而你实际能用哪一种取决于所装应用的版本,所以规划之前先确认。我们不声称某个具体应用有这个功能,请到它的设置里查看,没有的话就看下一个选项。

选项一:在 VPN 应用里设置排除
当 VPN 应用提供分流功能时,通常有两种形态。
排除列表。 除了你添加的应用或网站,其余都走 VPN。这是更稳妥的默认方式,因为以后新装的软件会自动受到保护。
包含列表。 只有你添加的应用或网站走 VPN,其他一切正常出网。适合只想让一个浏览器走 VPN 的人,但更容易出错,因为你忘记添加的内容就没有保护。
在 macOS 上,按应用分流对开发者来说比某些系统更难,因为需要通过网络扩展识别并引导每个进程的流量。所以有些应用改为提供按网站或按地址的列表,这是另一回事:规则针对目的地,而不是针对程序。当浏览器这类程序要访问大量目的地时,两种方式的表现并不相同。
如果你找到了分流选项,第一次比较合理的配置步骤如下。
- 先正常连接,并确认公网 IP 发生了变化(在浏览器里打开任意“我的 IP”页面)。
- 在排除列表里只添加一项,不要一次加五项。
- 重新连接,因为许多应用只在建立隧道时读取该列表。
- 分别测试被排除的应用和未被排除的应用(见后文的测试部分)。
- 确认无误再添加下一项。
逐项添加看似慢,但出了问题你立刻就知道是哪次改动造成的。
如果你的 VPN 应用没有这个功能,也不必担心。日常使用的 VPN 很可能就是一个简单的全隧道应用。这种情况下,选项二和选项三才是你真正的工具箱。
选项二:读取并调整路由表
每台 Mac 都有一张路由表,决定去往某个目的地的流量由哪个网络接口承载。全隧道 VPN 的做法,就是把隧道接口设为默认路由。路由层面的分流,则意味着某些目的地仍保留指向你普通连接的路由。
查看路由表是安全的,因为读取不会改变任何东西。打开终端,输入:
netstat -rn -f inet
你会看到默认路由、本地网络和 VPN 服务器自身的几行。全隧道开启时,默认行通常指向某个 utun 接口,而家庭子网(比如 192.168.1.0/24,属于 RFC 1918 定义的私有地址段)那一行仍然指向 en0。这就是 Mac 往往仍能找到打印机的原因:更具体的本地路由优先于默认路由。
如果想问系统要去某个具体地址会走哪条路,输入:
route -n get 192.168.1.20
把地址换成你的打印机、NAS 或其他目的地。输出里有一行 interface:,如果显示 en0(大多数笔记本的 Wi-Fi)或 en1,说明这部分流量不进隧道;如果显示 utun 加数字,则进入隧道。
用 sudo route 也可以修改,比如为某个地址添加一条经家用路由器的主机路由。提到它只是让你知道有这个办法,并不推荐日常使用,原因如下:
- 手动添加的路由保存在内存中。重启、切换 Wi-Fi 或 VPN 应用重新连接,都可能让它消失,或被应用覆盖。
- 输错可能切断你自己的网络。万一发生,重启 Mac 会清除手动添加的路由。
- 绕过隧道的流量要由你自己负责,而且你得记得自己做过这件事。
- 在由公司或学校管理的 Mac 上,请不要修改路由。这可能违反规定,管理描述文件也可能撤销你的修改。
把改路由当作一项诊断技能,用来确认 VPN 做了什么,这也是大多数人真正受益的地方。
选项三:不分流的变通办法
很多时候,人们想要的并不是分流本身,而是消除某个具体的麻烦。几个简单习惯就能解决大部分情况。
- 为单个任务暂停 VPN。 如果银行、政务门户或支付页面坚持要看到你的正常连接,就断开 VPN,在可信网络上完成,再重新连接。如何在任意设备上关闭 VPN一文介绍了干净的关闭方式,避免连接处于半开状态。
- 用另一台设备处理麻烦的任务。 在手机上用移动数据办银行业务,让 Mac 继续走 VPN。
- 为挑剔的服务单独建一个浏览器配置。 这不会改变路由,但能让 Cookie 相互隔离,并能在重新连接 VPN 前迅速关掉会话。
- 利用 VPN 应用自身的设置。 视频通话等服务有时换一个服务器位置就更顺畅,而不必离开隧道。
- 用热点承担例外。 连在手机热点上的另一台设备,天然处于 Mac 隧道之外。
这些都不如按应用的列表优雅,但优点是看得见、可撤销,你也不会忘记哪里暴露着。
通常排除什么,不该排除什么
并非所有应用都该同样对待。下表是思考的起点,不是硬性规定。
| 流量类型 | 排除的理由 | 留在隧道内的理由 |
|---|---|---|
| 局域网里的打印机、NAS、智能家居中枢 | 这些设备与 Mac 在本地通信,经隧道可能无法访问 | 通常本地路由已经可达,所以往往不需要排除 |
| 银行与支付网站 | 有些站点认为 VPN 连接异常,会增加验证 | 公共 Wi-Fi 正是最需要保护的场合,可以的话改用移动数据 |
| 视频通话与在线游戏 | 对延迟敏感,多一跳会增加延迟 | 涉及保密内容的通话在共用网络上受益于隧道 |
| 来自可信本地来源的大文件下载 | 节省隧道容量 | 来源不明的下载更需要保护 |
| 通过公司 VPN 访问的工作工具 | 一台 Mac 上同时开两个 VPN 常常冲突 | 按雇主的说明操作,不要自己猜 |
| 登录了多个账号的浏览器 | 很少适合排除 | 这正是 VPN 要保护的流量 |
规律是:排除某项,是因为它属于本地、对延迟敏感,或者确实对 VPN 连接很挑剔,而不是仅仅因为觉得 VPN 慢。如果真正的抱怨是速度,VPN 为什么慢以及如何提速是更合适的起点。
三个真实的 Mac 场景
居家办公的职员。 Priya 在家用 MacBook 连 Wi-Fi,她想在合租公寓里工作时开着 VPN,但每次连接后网络打印机就消失。她对打印机地址运行 route -n get,看到的是 en0,说明路由没问题。问题出在 VPN 应用里一个类似“阻止本地网络”的选项。关掉这一个选项后,打印恢复正常,根本没用到分流。
校园网里的学生。 Tom 登录大学门户时,每次遇到陌生的连接就会要求额外验证。他平时开着 VPN 收邮件、上网,门户需要的那五分钟就断开,之后再连上。为一个网站做分流列表有点小题大做,而且他也避免了忘记排除了什么的风险。
同时有两个 VPN 的远程工作者。 Mei Ling 有一个公司 VPN 用于雇主的工具,还有一个个人 VPN 用于咖啡馆 Wi-Fi。两个同时开时,其中一个会丢掉默认路由。她不再尝试合用:工作任务用公司 VPN,其余用个人 VPN,从不同时开。拿不准时,她运行 netstat -rn -f inet 看哪条隧道占着默认路由。

验证分流是否真的生效
没测试过的配置只是猜测。每次改动后,用下面这套简短流程。
- 基线。 关闭 VPN,从“我的 IP”页面记下公网 IP。
- 开启隧道。 连接后刷新同一页面,地址应该变化。如果没变,说明 VPN 根本没有承载该浏览器的流量,这是另一类问题,请看 Mac 故障排查指南。
- 测试被排除项。 如果排除的是应用,就用该应用自带的查 IP 功能(如果有),或看它能否访问本地资源;如果排除的是目的地,就对该目的地运行
route -n get。 - 测试受保护项。 用主浏览器上网,确认仍显示 VPN 的地址。
- 重新连接再测一遍。 断开、重连、再次测试。重连后就消失的分流,从一开始就不可靠。
- 检查泄漏。 留意 DNS 和 IPv6 的表现,因为分流可能让域名查询走错路径。关于 DNS 泄漏的文章解释了该关注什么。
把改动记下来,放在你找得到的地方。忘记排除了什么,是人们在不知不觉中失去保护的最常见原因。
局限与常见误区
即使设计良好的分流,也有内在的取舍。
- 留在隧道外就等于暴露。 隧道之外的流量,对本地网络运营者来说与未开 VPN 时一样可见。
- 基于域名的规则不稳定。 一个网站常常从许多其他域名加载脚本、图片和接口。排除主域名未必能排除页面用到的一切,反过来也一样。
- IPv6 可能表现不同。 如果你的排除规则只覆盖 IPv4,IPv6 流量可能走到你没想到的路径。
- DNS 不一定跟着分流走。 目的地被排除了,域名查询却仍进隧道,或者相反,这会引起一些古怪的故障。
- 更新可能重置设置。 macOS 或 VPN 应用的更新可能改变扩展的工作方式,清掉你的列表。
- 你的 VPN 也许根本没有这个功能。 这不是缺陷,许多刻意保持简单的应用只负责保护整条连接。
常见误区很容易列出:第一天就排除五个应用、忘记排除过什么、在受管理的 Mac 上改路由、用了包含列表却纳闷新装的浏览器为什么没有保护,以及明明是 Wi-Fi 不好却怪 VPN 慢。
总结
macOS 没有面向个人用户的按应用分流开关,所以 Mac 上的分流来自三个方向:VPN 应用内的排除功能、谨慎使用路由表,或者像为单个任务暂停 VPN 这样的简单变通。不论选哪一种,都要一次只改一件事,用公网 IP 和 route -n get 来验证,记住被排除的流量没有保护,并优先选择能解决你真实麻烦的最简单办法。如果只想在 Mac 上用最直接的全隧道方式,可以下载免费的 VPNclient 应用,准备好之后再到价格页面了解通行证。
常见问题
macOS 自带分流开关吗?
没有。系统设置里可以添加、开关和删除 VPN 配置,但没有把某些应用排除在第三方 VPN 之外的按应用开关。按应用的规则来自 VPN 应用本身,或来自受管理 Mac 上的设备管理描述文件。
VPN 开着时还能用家里的打印机或 NAS 吗?
通常可以,因为 Mac 一般会保留指向本地网络的更具体路由。但有些 VPN 应用会特意阻止访问本地网络,所以要实际测试。如果打印机找不到了,先看 VPN 应用里有没有与本地网络相关的选项,或打印时暂时断开。
怎么知道哪个应用真的走了 VPN?
在终端输入 route -n get 加一个地址,看 interface 那一行。以 utun 开头表示流量进入隧道,en0 或 en1 表示走普通连接。在浏览器里查看公网 IP 是同一思路的简单版本。
手动添加的路由是永久的吗?
不是。用 route 命令添加的路由保存在内存里,重启、切换网络或 VPN 应用重新连接后通常会消失。把它当作临时试验,而不是长期配置。
分流比全部走隧道更不安全吗?
它是用一部分保护换取便利。留在隧道之外的流量,对本地网络来说和没开 VPN 时一样可见,所以只排除你了解并信任的内容。
参考资料
关于作者

Bob Kanokphon Thongdee
- XPASS VPN 创始人
- eSIMonline.asia 联合创始人
- 7 年以上网络营销经验
- Cojourney Visa 与 Cojourney Travel 创始人




