最近一直都在家远程办公,因此访问内网环境就需要使用VPN。客户使用的VPN网络是深信服的SSLVPN,客户端是EasyConnect。由于我日常开发使用的都是Linux系统,而EasyConnect虽然有Linux客户端,但是在登录了之后会自动注销,也没看到错误日志什么的。最后我只好用vmware创建了一个Windows 10虚拟机,在虚拟机上登录EasyConnect客户端,然后在Linux上设置路由转发来将所有内网的请求都转发到虚拟机中来访问,这样子在Linux中就可以使用VPN内网环境了。下面我来说明一下具体的步骤。
1.网络配置
对于Windows虚拟机的网络配置,首先是要有一个可以访问公网的 NAT 适配器或者桥接的适配器,如图:
上图中,圈住的第一个为桥接的网络适配器,圈住的第二个为NAT的网络适配器。这两种用哪一个都可以,看个人的需求。
其次是要有一个可以和主机互相通信的网络适配器,即仅主机的适配器,如下图中鼠标所指的适配器:
有了这两种网络适配器后我们来看一下Windows中的适配器配置界面:
如图所示,Ethernet 1为仅主机的网络适配器,负责和Linux主机相互通信,Ethernet 2为NAT的网络适配器,负责访问公网,连接VPN服务器。而最后一个名为以太网的网络适配器为EasyConnect客户端创建出来的适配器。
2.登录VPN
网络配置完成之后就可以在Windows中登录EasyConnect客户端来连接VPN网络。此部分不再详细说明,应该各个VPN网络提供方都会给详细的连接教程。
3.网络分享
EasyConnect客户端登录VPN网络成功后,名为以太网的网络适配器就应该是可用的状态了,这个时候在Windows中就可以访问内网环境。接下来要做的就是将名为以太网的网络适配器设置网络共享(右键点击适配器图标,然后点击属性,接着切换到共享标签,勾选允许….),并选择仅主机的那个网络适配器作为目标,即”Ethernet 1″,如下图:
在设置了之后,Ethernet 1的IP地址可能会被修改为它自身的网关地址,为什么说可能呢,因为我在另一台电脑上设置网络连接共享后被共享目标适配器的IP地址并没有变。如果IP地址变得了的话,右键点击名为Ethernet 1的网络适配器,点击属性,双击ipv4配置,会发现它写死了IP地址为网关地址,此时选择自动获取IP地址即可。如图:
修复完IP地址之后,将仅主机的网络适配器的IP地址记下来,之后会用到。在这次示例中Ethernet 1的IP地址为”172.16.176.128″,如图:
4.添加路由
接着回到Linux主机中,打开终端,使用”route”命令添加一条路由,如下:
sudo route add -net 10.0.0.0/8 gw 172.16.176.128
上面的命令意思就是将10开头的内网IP地址所有的请求都转发到”172.16.176.128″,这个IP地址就是Windows虚拟机中仅主机的那个Ethernet 1的网络适配器IP地址。
可以用如下命令去查看已有的路由表:
$ route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
default RT-AC54U.lan 0.0.0.0 UG 600 0 0 wlp0s20f3
10.0.0.0 172.16.176.128 255.0.0.0 UG 0 0 0 vmnet1
link-local 0.0.0.0 255.255.0.0 U 1000 0 0 wlp0s20f3
172.16.176.0 0.0.0.0 255.255.255.0 U 0 0 0 vmnet1
192.168.35.0 0.0.0.0 255.255.255.0 U 0 0 0 vmnet8
192.168.123.0 0.0.0.0 255.255.255.0 U 600 0 0 wlp0s20f3
可以看到多了一条10.开头的IP网段路由表。此时就可以在Linux主机中访问10.网段的内网地址了。
使用”route add”命令添加的路由信息在重启之后就会被自动删除,要想手动删除可以使用”route del”命令,即将上面那条命令中的”add”替换为”del”,如下:
sudo route del -net 10.0.0.0/8 gw 172.16.176.128
执行之后10网段的路由信息就被删除了。
5.重启失效
即使设置好Windows虚拟机中的网络共享,但是当Windows虚拟机重启之后共享配置就会失效,不知道为何会有这个问题,解决的办法很简单,先取消EasyConnect客户端创建的网络适配器的网络连接共享,然后重新走设置网络连接共享的那一套流程,即第3步即可。
6.防火墙
如果在什么都设置好了之后发现Linux主机还是不能访问VPN内网,则可能是Windows的防火墙导致的,将Windows的防火墙关闭即可,如图:
7.视频教程
此次教程我也录制了视频,如有需要可以扫描文章下方左边的二维码或微信搜索”sunriseydy”关注公众号并回复:” linux_sslvpn”即可获取视频观看链接。
本作品由 sunriseydy 采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。
文章内容如未说明均为原创,欢迎转载,但请注明原作者(sunriseydy)和原文链接(https://blog.sunriseydy.top/technology/linux/linux_sslvpn/)
部分来自互联网的文章,如有侵权,请联系我,24小时内删除,谢谢
感谢您的支持,SunriseYDY 会继续努力的!



打开支付宝扫一扫,即可进行扫码打赏哦
日出一点一 | 在探索的路上永不止步