解决linux登陆ipsecvpn之后无法访问本地和互联网的问题

博主:云顶天云顶天 11个月前 ( 11-20 ) 1383 3条评论
摘要: 在linux上使用vpnc客户端来连接ipsecvpn会出现VPN连接之后无法访问本地其他网段的服务器和互联网,这个问题是因为ipsecvpn连接之后会将默认路由指向VPN客户端的...

在linux上使用vpnc客户端来连接ipsecvpn会出现VPN连接之后无法访问本地其他网段的服务器和互联网,这个问题是因为ipsecvpn连接之后会将默认路由指向VPN客户端的虚拟网卡,导致所有流量均从VPN隧道发出,所以无法正常访问本地网络和互联网。
问题解决思路:将需要通过VPN隧道访问的IP资源配置明细路由,将默认路由重新指向本地物理网卡,本文中介绍的步骤已ubuntu kylin操作系统为例。
步骤:
1.在没有使用vpnc客户端登录IPSECVPN之前,先查看本地正常上网的路由配置,确认记录好网关地址及网卡信息,使用route命令查看路由表得到下面的结果,其中default为正常的默认路由,网关为172.16.31.254,网卡为ens33。

root@root-virtual-machine:~$ route
内核 IP 路由表
目标            网关            子网掩码        标志  跃点   引用  使用 接口
default         172.16.31.254   0.0.0.0         UG    100    0        0 ens33   //正常上网的网关地址和网卡
link-local      *               255.255.0.0     U     1000   0        0 ens33
172.16.31.0     *               255.255.255.0   U     100    0        0 ens33

2.使用vpnc客户端登录ipsecvpn,再次使用route查看路由,这时我们可以看到第4行的default默认路由已经指向了tun0的VPN虚拟网卡,本地网络和互联网已经无法正常访问,第5行的原默认路由因为优先级低于第4行其实是不生效的。

root@root-virtual-machine:~$ route
内核 IP 路由表
目标            网关            子网掩码        标志  跃点   引用  使用 接口
default         *                   0.0.0.0           U     0           0        0    tun0      //默认路由指向虚拟隧道
default         172.16.31.254   0.0.0.0         UG    100    0        0 ens33
link-local      *               255.255.0.0     U     1000   0        0 ens33
172.16.31.0     *               255.255.255.0   U     100    0        0 ens33
172.17.68.0     *               255.255.255.0   U     0      0        0 tun0
172.17.68.0     *               255.255.255.0   U     1      0        0 tun0

3.按照解决思路我们增加一条需要通过VPN隧道访问ip地址的明细路由,假设这个ip为10.10.10.100,并将VPNC增加到虚拟网卡的默认路由删除,配置命令如下。

sudo route add -host 10.10.10.100 dev tun0   //增加VPN访问ip的明细路由
sudo route del default dev tun0    //删除到虚拟网卡的默认路由
   在部分版本的linux操作系统vpnc客户端修改默认路由时会将原正常上网默认路由删除,这时候可以在以上命令的基础上添加一条默认路由。
sudo route add default gw 172.16.31.254 dev ens33   //增加一条默认路由指向本地正常上网的网管


4.再次使用route命令查看路由表,这时候默认路由已经重新指向本地网络的物理网卡及网关,访问VPN资源ip则通过虚拟网卡tun0发送,到这里就已经可以正常访问互联网并保持VPN资源可访问了。

root@root-virtual-machine:~$ route
内核 IP 路由表
目标            网关            子网掩码        标志  跃点   引用  使用 接口
default         172.16.31.254   0.0.0.0         UG    100    0        0 ens33   //原来正常上网的默认路由指向网关及网卡
link-local      *               255.255.0.0     U     1000   0        0 ens33
172.16.11.0     *               255.255.255.0   U     100    0        0 ens33
10.10.10.100    *               255.255.255.255 UH    0      0        0 tun0     //需要通过VPN访问的资源单独通过虚拟网卡tun0发送
172.17.68.0     *               255.255.255.0   U     0      0        0 tun0
172.17.68.0     *               255.255.255.0   U     1      0        0 tun0


浮窗式百度分享代码,请勿使用文字或图标
赞(0

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏