虚拟机共享主机VPN连接
时间:2023-07-01 18:12:02 | 来源:网站运营
时间:2023-07-01 18:12:02 来源:网站运营
虚拟机共享主机VPN连接:
> 前言
最近在工作中需要在虚拟机中使用主机的VPN,但是虚拟机又不能直接安装VPN,对该问题进行了研究,总结有如下解决办法。
P.S.其实是太久没写文章了...内心感到愧疚,因此赶紧写一波。(不过之前一直都在写一些技术文,但是不方便公开。)
1 法一:通过共享VPN网卡
1.1 原理
由于桥接模式与NAT模式类似,只不过桥接模式是与主机共享一个网段,NAT则是有个虚拟子网。因此以下直接通过NAT模式介绍原理。NAT模式是通过VMnet8直接与主机网卡相连,虚拟机通过VMnet8连接主机网卡后进行上网,而主机和虚拟机的通信则是通过VMnet8完成。其网络结构如下图所示。
实际原理更复杂,VMnet8还可看作一个虚拟NAT设备和虚拟DHCP服务器,这里直接简化为VMnet8在起作用。
详情可看https://www.cnblogs.com/hello-wei/p/9467436.html
当登录VPN时,则主机的部分(也可能是所有)数据会先走VPN再出主机网卡。其网络结构如下图所示。可知,虚拟机的数据始终不会通过VPN。
通过共享VPN虚拟网卡给VMnet8,则虚拟机便可使用VPN与目的网络进行通信。其网络结果如下图所示。
不止是VMnet8,采用“仅主机模式”,原理也同样适用。
1.2 配置方法
配置方法介绍环境:
虚拟机OS:Linux
主机OS:Windows
VMware网络模式:仅主机模式
1.2.1 VMware配置
如下图所示,配置VMnet1虚拟网卡勾选“将主机虚拟适配器连接到此网络”,DHCP可勾选也可不勾选,子网IP则随机配一个即可(要注意的是不要配置192.168.137.0,后面会讲到原因)
设置虚拟机的网卡为”VMnet1“,如下图所示。
可查看VMnet1网卡此时的IP地址为192.168.25.1。
1.2.2 主机Windows配置
打开网络连接,选择需要共享的VPN网卡共享给VMnet1,如下图所示。
共享后,可查看VMnet1网卡的IP地址变为192.168.137.1
前面说到不能配置192.168.137.1的原因是因为windows共享网卡会默认自动将获取共享的网卡的IP配置为192.168.137.1,如果需要更改IP则需要在共享之后重新配置该网卡的IP,这里直接采用默认的网卡IP为192.168.137.1。
1.2.3 虚拟机Linux配置
配置Linux的IP为静态IP,如下图所示。
配置完后重启网络服务,即可ping通目的网络。
P.S. 倘若不行,可尝试重启VMnet1、以及VPN网卡,并重新共享VPN网卡给VMnet1。
2 法二:通过将VPN作为虚拟机网关
之前一直都是用法一为虚拟机共享VPN网卡使用VPN的,但是有次在工作中遇到了Cisco 的VPN,使用的是Cisco AnyConnect客户端,就无法共享VPN。
2.1 原理
Cisco的VPN比较特殊,当开启了Cisco VPN时,所有虚拟网卡都会失灵,似乎会限制所有流量必须经过VPN才能出去。当主机访问虚拟机时,先经过VPN,则会导致路由出错,导致无法访问虚拟机。
在网上研究了一番,发现它不支持网卡共享,在安装Cisco AnyConnect的时候还需要关闭网卡共享才可以安装成功,而且网上有些人说如果想顺利使用Cisco VPN到达目的网络,还需要禁用ICS。
偶然发现了一个大佬的神奇方法,可以使得虚拟机使用Cisco VPN。
来源:https://qastack.cn/superuser/842489/vm-share-hosts-vpn-connection
大致原理就是将VPN当作网关,供虚拟机使用。其网络结构如下图所示。
2.2 配置方法
配置方法介绍环境:
虚拟机OS:Linux
主机OS:Windows
VMware网络模式:NAT
2.2.1 VMware配置
连接VPN,查看VPN的IP地址。假设IP为172.40.140.10,子网掩码为255.255.255.0
将VMnet8的子网IP设置为VPN的子网IP。即子网IP为172.40.140.0,子网掩码为255.255.255.0
需要注意的是子网IP需要进行计算得到。根据连接VPN分配的IP以及子网掩码可计算得到。具体方法可参考https://blog.csdn.net/qq_43576028/article/details/103783435
将VMnet8的网关IP设置为主机VPN的IP。即为172.40.140.10
将虚拟机网络模式设置为VMnet8。
2.2.2 主机Windows配置
由于虚拟机需要配置VPN IP为网关IP,会自动寻找VPN,因此主机Windows不需要像共享VPN网卡那样配置。配置VMnet8的IP如下即可。即IP为172.40.140.1,子网掩码为255.255.255.0。
网关IP可配可不可配(VMware中已经配置了,无需再配置)
2.2.3 虚拟机Linux配置
配置虚拟机IP为172.40.140.20(可设置个空闲的IP),子网掩码为255.255.255.0,即与VPN在同一网段。
重启network服务,便可ping通目的网络。
P.S. 要注意主机是仍然无法和虚拟机通信的,如果需要通信则必须关闭VPN。即主机与虚拟机通信和虚拟机使用VPN是不能同时进行的。