6

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

 2 years ago
source link: https://www.huhexian.com/14376.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

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。

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

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

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

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

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

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

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

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK