- N +

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

在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


返回列表
上一篇:
下一篇:

发表评论中国互联网举报中心

快捷回复:

    评论列表 (已有3条评论,共65人参与)参与讨论
    网友昵称:点滴记录
    点滴记录游客3周前 (11-23)回复
    好久没玩linux都不会用了
    网友昵称:云顶天
    云顶天管理员3周前 (11-23)回复
    @ 点滴记录 我也就会一些皮毛的东西以及和网络有关的
    网友昵称:新闻
    新闻游客2周前 (11-25)回复
    文章不错非常喜欢