日期 | 作者 | 版本 | 备注 |
---|---|---|---|
2022-05-18 | dingbin | v1.0 | |
本文主要讲述如何设置linux的虚拟机(以CentOS7的vmware虚拟机为例)的网络,使其能共享连接宿主机(以Windows 10宿主机为例)的VPN(以EasyConnect VPN)的网络连接。话不多说,直接上干货。
1. vmware 虚拟机网络设置
打开vmware虚拟机软件当前虚拟机,右键点击 设置 - 硬件 - 网络适配器,如下图设置,虚拟机网络适配器应设置为NAT模式。以下两图所示的任何一种NAT模式都可以。
2. 设置虚拟机的虚拟网络
以EasyConnect VPN软件为例:首先查看宿主机连通VPN状态下的虚拟网卡的IP地址和子网掩码。操作如下:更改网络适配器,找到当前连通的VPN网络的图标,右键 状态-详细信息,如下图所示,可以其IP为:10.52.235.223,子网掩码是:255.255.255.0。接下来根据这个设置虚拟机的网关(Gateway/子网掩码/IP)。
打开vmware虚拟机软件的 编辑 - 虚拟网络编辑器,如下设置:
其中子网IP设置为:宿主机IP10.52.235.223的前三段,第4段补0一般是这个经验。子网掩码同宿主机的子网掩码。
然后点击NAT设置,如下图配置:
注意此处的网关IP务必设置成宿主机的IP地址。这个设置非常重要。
3. 进入虚拟机机器内部设置IP/Gateway等网络配置项
以虚拟机为Centos7 为例说明如下,切换到root用户下,
vim /etc/sysconfig/network 编辑gateway 网关如下:
vim /etc/sysconfig/network-scripts/ifcfg-etho,编辑如下:
BOOTPROTO设置为static 表示设置了固定的ip地址。
NETMASK设置为宿主机的子网掩码255.255.255.0
GATEWAY设置为宿主机的IP地址10.52.235.223‘
虚拟机的IP地址设置为10.52.235.110。 注意前三段需与宿主机的IP前三段相同,最后一段可以自由发挥设置。
4. 重启虚拟机网络服务
设置好以上步骤后,最后在centos虚拟机机器上只需要执行如下命令重启网络服务即可生效网络配置:
systemctl restart network.
接着可以利用ping命令试试网络是否正常。
至此,虚拟机就可以成功地共享宿主机的vpn连接了。
5. 讨论
实践中发现,其实vmnet8的NAT设置的网关不一定要是VPN的IP,只要是和宿主机IP在同一局域网中的IP2都可以, 客户机中的Gateway必须配置成IP2就可以,同时客户机中的DNS1一般配置成公共的DNS如114.114.114.114 或8.8.8.8(一般只配置DNS1=114.114.114.114即可), 即能实现客户机共享宿主机的VPN网络。
vmware客户机桥接方式网络设置示例:
DNS1=48.144.232.158 #修改为宿主机DHCP时自动获得的DNS1和DNS2值
DNS2=21.151.3.236 #修改为宿主机DHCP时自动获得的DNS1和DNS2值
NETMASK=255.255.255.0
GATEWAY=10.253.64.1
IPADDR=10.253.65.57
vmware客户机 NAT方式网络设置示例:
DNS1=114.114.114.114
#DNS2=8.8.8.8
NETMASK=255.255.255.0
GATEWAY=10.253.67.139
IPADDR=10.253.67.57
实践中还发现,如果使用宿主机的拆分协议隧道功能(即只让某些应用程序走VPN网络的设置)一般会影响客户机的NAT网络配置,导致客户机网络连接失效网络不可用,因此NAT方式不建议和宿主机VPN客户端的拆分协议隧道功能同时使用。
实践中建议 桥接和 NAT两种方式搭配使用,大部分时间使用桥接方式(为了得到独立IP的客户机)+ 宿主机VPN拆分协议隧道模式; 只在客户机中需要VPN网络连接时,临时切换到NAT方式+宿主机VPN不使用拆分协议隧道模式(为了让客户机中临时访问VPN网络)。
实践中还有个重要的经验,如果发现windows 上vpn 总也很难连接上,往往把本地网络的ip获取方式改为自动获得,重连网络后,再重连VPN客户端,往往瞬间就能连上VPN了。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。