很多用户在使用企业远程办公VPN或者个人专用VPN时,经常会遇到部分服务走加密隧道、普通网页走本地公网的分流场景,这种VPN分流模式的工作原理长期被很多用户误解为“部分流量加密部分流量裸奔”,实际上它是一套经过严谨路由规则校验的流量分发机制,既可以避免所有流量都绕经VPN节点带来的不必要延迟,也能保障指定的内网资源访问全程走加密隧道,平衡了访问权限和网络使用体验。
VPN分流模式的核心工作底层逻辑
VPN分流模式和传统全局VPN的核心差异,在于流量进入虚拟网卡之前就完成了转发路径的判断,而不是所有流量先全部导入VPN隧道再做二次分发。它的核心逻辑是在终端系统的网络协议栈和物理网卡之间插入一层规则匹配引擎,每一个待向外发送的IP数据包,都会先经过这层引擎的特征校验,符合预设分流规则的数据包会被导向VPN虚拟网卡,走加密隧道传输到对端网络,不符合规则的数据包会直接绕过VPN模块,通过本地物理网卡的运营商网关直接发往公网。

VPN分流模式在流量进入虚拟网卡前完成路径判定,平衡内网访问权限与公网访问体验。
分流模式的常见实现机制分类
最普及的实现方式是基于目标IP段的分流,这种机制不需要对系统网络框架做深度修改,只需要VPN客户端在连接成功后,把预设的内网IP段条目自动添加到系统路由表中,依靠系统原生的最长路由匹配规则完成流量分发,兼容性极强,飞马加速器几乎所有支持标准VPN协议的终端设备都可以运行这类分流规则,也是绝大多数企业远程办公VPN的默认实现方案。
第二种主流实现是基于域名的分流,这类方案会在VPN客户端本地部署一个轻量的前置DNS代理,终端发起任意域名解析请求时,请求会先被这个代理拦截,和预存的分流域名库做比对,命中分流规则的域名,解析请求会被转发到VPN对端的内网DNS服务器,返回的内网IP自然会匹配后续的IP段分流规则,没有命中的域名则直接使用本地运营商的DNS完成解析,适合内网服务使用动态域名、没有固定IP段的场景。
第三种是基于进程标识的深度分流,这类机制需要VPN客户端调用系统内核的网络钩子接口,给每一个正在运行的进程生成唯一的流量标签,用户可以直接指定某几个应用的所有流量强制走VPN隧道,其余所有应用的流量完全不经过VPN模块,不需要配置IP段或者域名规则,适合个人用户不想让私人浏览器、影音应用的流量走工作单位VPN链路的场景。
分流规则生效的前置检查步骤
首先要确认VPN客户端连接成功后,系统生成的虚拟网卡已经正常获取到对端内网分配的IP地址,没有被本地终端的系统防火墙拦截虚拟网卡的转发权限,用户可以通过系统自带的路由表查询命令,查看VPN客户端自动写入的分流路由条目是否完整显示,Windows系统执行route print命令、macOS系统执行netstat -rn命令就可以直接查看全部生效路由。
第二步要验证分流对应的DNS配置没有冲突,如果用户手动给终端配置了全局公共DNS,基于域名的分流规则很可能失效,因为域名解析请求没有经过VPN客户端的前置代理,直接发往了公共DNS服务器,飞马返回的公网IP不在预设的内网IP段范围内,就会出现本该走VPN的内网服务反而直接走公网、最终访问失败的问题。
第三步可以用路由跟踪工具做路径校验,执行tracert命令跟踪内网OA系统的访问路径,看第一跳之后的转发节点是不是直接导向VPN虚拟网卡的内网网关,而不是本地运营商的网关,再跟踪公共互联网服务的访问路径,确认转发路径直接走本地物理网卡的运营商网关,就可以直观验证分流规则有没有正常生效。
分流模式使用的常见认知误区
很多用户误以为开启分流模式之后,所有走公网的流量就完全脱离VPN的管控,实际上如果分流规则配置不全,部分内网服务的域名或者IP段没有被收录到规则库中,访问这些资源的流量就会漏到公网传输,反而会出现内网资源访问失败、甚至敏感数据非预期暴露的问题。
还有部分用户认为分流模式可以完全消除VPN带来的网络开销,实际上走VPN隧道的那部分流量还是要经过加密封装、隧道传输、解封装的完整处理流程,这部分的网络开销和全局VPN场景下的处理开销是一致的,并不会因为其他流量走本地公网就降低这部分的处理成本。日常使用时也不建议用户手动修改VPN客户端自动生成的系统路由条目,自定义添加的路由很容易和原有规则产生优先级冲突,导致分流逻辑混乱,飞马加速器出现部分应用意外断网的问题。



