关于Forticlient VPN路由配置与导航限制修改的技术问询
关于Forticlient VPN路由配置与导航限制修改的技术问询
作为第三方开发者,咱们现在碰到个头疼的问题:为了调用客户的API,必须通过FortiClient VPN连接到他们的环境,连接上之后API调用确实正常,但这个VPN会把所有流量都强制走隧道,导致咱们连其他任何非API服务器的IP都访问不了。咱们的开发机器全是Windows 10/11,想问问有没有办法改路由配置,让只有10.10.0.0/16这个网段的流量走VPN,其他流量正常走本地网络?
补充:咱们必须得绕过VPN隧道,只针对特定IP用它,而且这完全合规,没违反任何公司规则。
方案一:用FortiClient自带的拆分隧道功能(最省心)
很多企业版FortiClient支持拆分隧道(Split Tunnel),如果客户那边允许的话,这是最简单的解决办法:
- 打开FortiClient,找到你正在用的VPN连接,进入配置界面
- 翻到「高级设置」里找「拆分隧道」或者英文的「Split Tunnel」选项
- 选「仅指定目的地通过VPN」模式,然后把
10.10.0.0/16这个网段加进去 - 保存配置后重新连VPN,这时候只有目标网段的流量会走隧道,其他网页、工具该怎么用就怎么用
方案二:手动改Windows路由表(客户端不支持拆分隧道时用)
如果FortiClient没这个功能,或者客户的VPN配置强制全隧道,那咱们就手动调Windows的路由表,把目标网段的流量单独导去VPN,剩下的走本地:
第一步:先拿VPN接口的关键信息
- 连好VPN后,按
Win+R输入cmd开命令提示符(记得用管理员身份!) - 敲
route print,输出里找VPN对应的接口(名字一般带「FortiClient」或者「VPN」),记下它的接口索引(Interface Index)和网关地址(Gateway) - 同时把本地网卡的默认网关也记下来(看IPv4路由表的0.0.0.0那条)
第二步:删掉VPN加的全局默认路由
VPN连上后会自动加一条默认路由,把所有流量都往VPN导,咱们先删了它:
route delete 0.0.0.0 mask 0.0.0.0 [你的VPN网关地址]
把[你的VPN网关地址]换成刚才记的VPN网关
第三步:给目标网段加专属路由
添加一条路由,让10.10.0.0/16的流量只能走VPN:
route add 10.10.0.0 mask 255.255.0.0 [你的VPN网关地址] metric 1 if [VPN接口索引]
替换掉括号里的内容,metric 1是让这条路由优先级最高,确保目标网段流量优先走VPN
第四步:恢复本地默认路由(如果本地网断了的话)
删掉VPN默认路由后如果本地网连不上,就加回本地的默认路由:
route add 0.0.0.0 mask 0.0.0.0 [你的本地网关地址] metric 10
metric 10是让本地路由优先级比VPN的目标网段路由低,这样不会冲突
额外提醒
- 每次重新连VPN,它可能会自动把默认路由加回来,所以你可以把这些命令存成
.bat批处理文件,每次连完VPN双击运行就行 - 改路由表必须用管理员权限,不然会报错
- 如果客户的VPN有严格的路由管控,手动改可能会被客户端覆盖,这种情况最好跟客户沟通,让他们在VPN服务器端配置拆分隧道,允许咱们只针对特定网段走隧道
备注:内容来源于stack exchange,提问作者realtebo
相关产品推荐
相关产品推荐

