linux登陆ipsecvpn之后无法访问本地和互联网是怎么回事?

青山 2021-12-0114:54:17
评论
1647字

今天在我的另一台linux服务器上使用vpnc客户端,连接了ipsecvpn后出现了VPN连接之后无法访问本地其他网段的服务器和互联网,想着这个问题应该是因为ipsecvpn连接之后会将默认路由指向VPN客户端的虚拟网卡,从而导致所有流量均从VPN隧道发出,所以无法正常访问本地网络和互联网。于是按照自己的思路尝试解决。

linux登陆ipsecvpn之后无法访问本地和互联网是怎么回事?

问题解决思路:将需要通过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

匿名

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: