VPN全隧道模式与其他代理冲突原因及解决办法 | Fly
VPN 基础

VPN全隧道模式与其他代理冲突原因及解决办法

不少同时使用企业远程办公VPN和各类代理工具的用户,经常会遇到启动VPN全隧道模式之后,网页加载失败、内网资源连不上、网络时断时续的问题,多数情况下这类故障都不是VPN本身的功能异常,而是VPN全隧道模式与其他代理的规则冲突导致的。本文从实际使用场景出发拆解冲突根源,给出可落地的排查和解决方法,不需要修改底层网络内核参数就能完成配置调整。

VPN全隧道模式的路由接管逻辑

VPN全隧道模式启动之后,会直接修改系统全局路由表,把所有出站流量的默认下一跳指向VPN生成的虚拟网卡,不管用户要访问的是企业内网的OA、财务系统,还是公网的普通资讯网站,所有数据包都会被封装进VPN加密隧道,转发到远端的企业VPN网关处理。

这种设计原本是为了保证所有流量都经过企业侧的安全审计,避免内网资源泄露,但这种完全接管默认路由的机制,天然和其他需要劫持流量、修改转发路径的代理工具存在规则冲突的可能性,很多用户没有提前清理原有代理配置就启动全隧道VPN,直接就会触发网络故障。

常见冲突场景的根因定位

最普遍的冲突场景是系统级代理和全隧道VPN叠加,很多用户之前为了访问特定资源,在Windows或者macOS的系统网络设置里配置了全局HTTP或者Socks5代理,启动全隧道VPN之后,系统流量会先被代理规则劫持,转发到本地代理的监听端口,代理处理完数据包之后查询路由表,又会把数据包发往VPN虚拟网卡,两层转发的规则不兼容,VPN远端网关收到格式错误的数据包之后直接丢弃,最终表现为所有网络连接都超时。

第二类冲突是同层级隧道类代理的规则打架,如果用户同时开启了其他全局模式的透明代理客户端,再启动全隧道VPN,两个软件都会尝试修改系统的默认路由条目,后启动的软件会覆盖前一个的路由配置,两个隧道的封装逻辑互不识别,数据包被重复封装之后远端解包失败,网络状态会反复横跳,一会儿能访问内网一会儿能访问公网,完全没有稳定性可言。

还有一类隐性冲突很容易被忽略,很多用户只检查了系统层面的代理设置,忘记浏览器里安装的代理插件还开着全局规则,启动全隧道VPN之后,浏览器的流量被插件代理劫持,其他软件的流量走VPN隧道,就会出现企业微信能正常连内网OA,但是浏览器打不开任何网页的反常现象,不少用户排查很久都找不到问题根源。

分步排查冲突的实操步骤

首先可以先查看系统当前的路由表状态,Windows系统在命令提示符里执行route print命令,macOS系统在终端里执行netstat -rn命令,查看0.0.0.0对应的默认路由条目,如果同时出现多个下一跳地址,就说明已经有多个软件修改了全局路由规则,冲突已经实际发生。

接下来检查系统层面的代理配置,Windows用户可以在设置的网络和Internet板块找到代理页面,确认自动检测代理、手动代理服务器的选项全部处于关闭状态,macOS用户打开系统设置的网络板块,选中当前正在使用的本地网络接口,查看代理标签页,确认所有代理协议的勾选标记都已经取消。

最后检查浏览器侧的隐性代理规则,主流浏览器都可以在设置的系统板块直接跳转到系统代理设置页面,同时打开扩展管理界面,把所有代理类插件的全局运行开关临时关闭,测试基础网络的连通性,确认没有浏览器插件的规则在干扰流量转发。

无冲突的共存配置方案

如果确实需要同时用VPN全隧道访问企业内网,又需要用代理访问特定的公网资源,可以把原有代理工具的全局模式改成分流模式,只把指定的需要走代理的域名和网段加入代理规则,其余所有流量默认走系统原生路由,这样全隧道VPN接管默认流量的同时,只有小部分指定流量走本地代理,不会出现路由优先级冲突的问题。

如果没有强制要求必须开启全隧道模式,优先切换到VPN客户端自带的分流隧道模式,只把企业内网的指定网段流量导入VPN加密隧道,公网流量直接走本地运营商线路,从根源上避免全隧道模式和其他代理的路由规则打架,这种配置也是绝大多数企业IT运维推荐的远程办公网络方案。

配置完成之后可以按顺序验证连通性,先访问企业内网的核心业务系统确认正常加载,再打开普通公网网站测试访问状态,最后访问原本需要走代理的特定资源,三类资源都能正常连通没有超时丢包的情况,就说明冲突已经完全解决。需要注意的是不要同时开启两个全局隧道类代理软件,即便它们绑定不同的虚拟网卡,路由规则冲突的概率也极高,强行叠加只会导致网络完全不可用。

远程办公编辑组 | Fly
围绕办公网络、视频会议和远程访问,说明连接准备与常见排查步骤。
查看更多文章
连接指南

从一个连接问题开始

遇到家庭宽带首次连接VPN相关问题,可从“先用不依赖隧道的目标确认基础联网,再尝试连接”开始阅读。一次连通不能说明长时间传输同样稳定,需要结合具体环境判断。