vmware虚拟机三种网络模式(桥接、NAT、仅主机)带图详解
说明
VMware为我们提供了三种网络工作模式,分别为:桥接模式(Bridged)、网络地址转换模式(NAT)、仅主机模式(Host-only)
在VMware中查看已有虚拟网络步骤如下
VMnet0:用于虚拟桥接网络下的虚拟交换机
VMnet1:用于虚拟 Host-only 网络下的虚拟交换机
VMnet8:用于虚拟 NAT 网络下的虚拟交换机
windows查看vmware的虚拟网卡
安装了 VMware 虚拟机后,会在本地主机网络连接对话框中多出两个虚拟网卡(每添加一个nat或仅主机本地就会多一个虚拟网卡),如下:
VMware Network AdepterVMnet1:Host 用于与 Host-only 虚拟网络进行通信的虚拟网卡
VMware Network Adepter VMnet8:Host 用于与 NAT虚拟网络进行通信的虚拟网卡
但是如果你安装的是 VirtualBox 虚拟机,则只会出现一个虚拟网卡:VirtualBox Host-only Network,只能用于主机连接独立主机模式的虚拟网络,主机不能连接 NAT 网络的虚拟机,这一点与 Vmware 不同。
三种网络模式介绍
Bridge 桥接模式
说明
在这种模式下,桥接模式就是将主机网卡与虚拟机虚拟的网卡利用虚拟网桥进行通信,VMware 虚拟出来的操作系统就像是局域网中的一台独立的主机,它可以访问网内任何一台机器。需要手工为虚拟系统配置 IP 地址、子网掩码,而且还要和宿主机器处于同一网段,这样虚拟系统才能和宿主机器进行通信。同时,由于这个虚拟系统是局域网中的一个独立的主机系统,那么就可以手工配置它的 TCP/IP 配置信息,以实现通过局域网的网关或路由器访问互联网,如果需要联网,则网关与DNS需要与主机网卡一致。
在桥接的作用下,类似于把物理主机虚拟为一个交换机,所有桥接设置的虚拟机连接到这个交换机的一个接口上,物理主机也同样插在这个交换机当中,所以所有桥接下的网卡与网卡都是交换模式的,相互可以访问而不干扰(主机,局域网其他主机,虚拟机,三者均可互相访问)
而且一般情况下,虚拟机中使用的是和物理机同网段的真实IP,能够在虚拟机中使用这个真实IP的权限。
注:桥接模式不会在本地生成虚拟网卡!
设置vmware网络适配器
点击vmware编辑-虚拟机网络编辑器,点击桥接模式,桥接至物理网卡这个需要设置一下(如果只有一个网卡在使用,那么可以设置为自动,如果2个网卡都在使用,那么需要指定为你想使用的网卡[以网卡名称为准])
注:
1、如果名称VMnet0不是桥接模式,不得行! (测试过程中名称被造乱了就左下角点击一下还原默认模式设置,屡试不爽)
2、配置之前,需要到windows虚拟网络管理器中吧nat模式的dhcp服务开启(vmwara编辑-虚拟机网络编辑器,一般dhcp默认开启的),否则可能会导致后面网桥不能正常配置使用
虚拟机网络修改为桥接模式
右键该虚拟机-设置-网络适配器-网络连接选择为桥接模式——状态2样均需要勾上
查看桥接物理网卡IP信息
方式1
如果是连接的wifi,一般没有DNS这个概念,所以直接按win+r,输入cmd打开命令面板,然后输入ipconfig(ipconfig /all 可以看到DNS),找到以太网适配器,记录ip网段、掩码和网关(我这是内网ip,码了)
方式二
如果使用的是网线,且是指定ip的,一般会有DNS,如果是自动获取的,用方法1的方式输入:ipconfig /all
下面这个界面看图,就不详细说打开流程了,记录ip段,掩码和网关(真实内网ip,码了)
虚拟机中配置ip
配置方法有很多,根据自己会的方式配置ip掩码网关DNS即可(没有DNS可不配)
我说两个方式,nmtui和文件配置
方式一
这个比较简单,直接在命令面板(root用户)输入nmtui回车,全程不能用鼠标点,用方向机(↑↓←→)调整位置,回车确定!
配置完毕以后,激活该网卡
测试,用ip a 或ifconfig查看有配置的ip信息即配置成功,然后ping网关和ping物理机地址(如果ping不通把物理机防火墙关了)
而且物理机和虚拟机可以互相ping通
注:我配置一个不存在的地址,实际上也可以用,但这种意义不大,还不如直接用nat的dhcp,还不用配置ip这么麻烦, 所以 一般使用桥接模式的,都是使用真实ip,可以在虚拟机上直接使用真实IP的权限来做操作。
方式二
使用配置文件配置
[root@localhost network-scripts]# pwd
/etc/sysconfig/network-scripts
[root@localhost network-scripts]# ls ifcfg-*
ifcfg-eno16777736 ifcfg-lo
[root@localhost network-scripts]# vim ifcfg-eno16777736
内容和解释如下(IP掩码根据自己实际情况修改)
测试,用ip a或ifconfig查看有配置的ip信息即配置成功,然后ping网关和ping物理机地址(如果ping不通把物理机防火墙关了)
而且物理机和虚拟机可以互相ping通
特殊说明
1、虚拟机中的ip只要和物理机是同一个网段,即使不是真实的IP,也可以使用(注:虚拟机要使用的ip,要提前在物理机上ping一下,看是否ping得通(要用ping不通的),如果ping得通代表有人用,如果虚拟机上继续配这个能ping通的ip,会冲突)。
2、桥接模式即使在WiFi模式下也可以使用的,不一定非要插网线才可以使用,wifi测试如下图:
NAT 网络地址转换
说明
使用 NAT 模式,就是让虚拟系统借助 NAT(网络地址转换)功能,通过宿主机器所在的网络来访问公网。也就是说,使用 NAT 模式可以实现在虚拟系统里访问互联网,但前提是主机可以访问互联网。NAT 模式下的虚拟系统的 TCP/IP 配置信息是由 VMnet8(NAT)虚拟网络的 DHCP 服务器提供的,无法进行手工修改,因此虚拟系统也就无法和本局域网中的其他真实主机进行通讯。采用 NAT 模式最大的优势是虚拟系统接入互联网非常简单,不需要进行任何其他的配置,只需要主机器能访问互联网即可。这种情况下,主机可以 ping 通虚拟机,虚拟机也能 ping 通主机。
主机,局域网其他主机,虚拟机,三者中主机和虚拟机可互相访问,但是局域网其他主机和虚拟机不能互访。(如果是 VirtualBox,三者均不能互访)
如果你的网络ip资源紧缺,但是你又希望你的虚拟机能够联网,这时候NAT模式是最好的选择。NAT模式借助虚拟NAT设备和虚拟DHCP服务器,使得虚拟机可以联网。其网络结构如下图所示:
设置vmware的网络适配器
首先,设置虚拟机中NAT模式的选项,打开vmware,点击“编辑”下的“虚拟网络编辑器”,设置NAT参数及DHCP参数。
虚拟机网络修改为nat模式
将虚拟机的网络连接模式修改成NAT模式,点击“编辑虚拟机设置”。
点击“网络适配器”,选择“NAT模式”
虚拟机配置ip
有两种情况:
第一种(dhcp)
默认dhcp,那么这种情况就不需要配置任何IP,直接激活网卡就可以使用网络了,激活网卡命令: systemctl restart network
然后ifconfig就可以看到自动分配的ip了。
第二种static
这种就是需要指定ip才需要做下面配置。
编辑网卡配置文件,命令为vi /etc/sysconfig/network-scripts/ifcfg-eth0(你的可能不是这个ifcfg-eth0这个文件,根据实际情况进行配置)
具体配置如下:
上面这个把dhcp改成static或者none,其实就是配置一个IP的流程,如果看不懂参考这个配置ip的博客:https://cuichongxin.blog.csdn.net/article/details/101523936
编辑完成,保存退出,然后重启虚拟机网卡(7及以上系统:systemctl restart network),ifconfig查看ip是否配置成功,使用ping命令ping外网ip,测试能否联网(前提是你的主机电脑需要能上网)。
VMware Network Adapter VMnet8虚拟网卡的作用就是用来和虚拟机网络沟通用的,如果VMnet8被禁用,主机和虚拟机就不能互通了,但并不影响虚拟机网络的使用。
将VMware Network Adapter VMnet8虚拟网卡禁用,然后,从虚拟机ping外网,看看是否能ping通?
如此看来,虚拟机能联通外网,确实不是通过VMware Network Adapter VMnet8虚拟网卡,那么为什么要有这块虚拟网卡呢?
之前我们就说VMware Network Adapter VMnet8的作用是主机与虚拟机之间的通信,接下来,我们就用远程连接工具来测试一下。
然后,将VMware Network Adapter VMnet8启用之后,发现远程工具可以连接上虚拟机了。
那么,这就是NAT模式,利用虚拟的NAT设备以及虚拟DHCP服务器来使虚拟机连接外网,而VMware Network Adapter VMnet8虚拟网卡是用来与虚拟机通信的。
Host-Only 仅主机模式
说明
在 Host-only 模式下,虚拟网络是一个全封闭的网络,它唯一能够访问的就是主机,当然多个虚拟机之间也可以互相访问。其实 Host-only 网络和 NAT 网络很相似,不同的地方就是 Host-only 网络没有 NAT 服务,所以虚拟网络不能连接到 Internet。主机和虚拟机之间的通信是通过VMware Network Adepter VMnet1 虚拟网卡来实现的。此时如果想要虚拟机上外网则需要主机联网并且网络共享。
Host-Only模式其实就是NAT模式去除了虚拟NAT设备,然后使VMware Network Adapter VMnet1虚拟网卡连接VMnet1虚拟交换机来与虚拟机通信的,Host-Only模式将虚拟机与外网隔开,使得虚拟机成为一个独立的系统,只与主机相互通讯。其网络结构如下图所示:
通过上图,我们可以发现,如果要使得虚拟机能联网,我们可以将主机网卡共享给VMware Network Adapter VMnet1网卡,从而达到虚拟机联网的目的。
设置vmware网络适配器
首先设置“虚拟网络编辑器”,可以设置DHCP的起始范围。
虚拟机网络修改为仅主机模式
设置虚拟机为Host-Only模式。
虚拟机中配置ip
和nat一样的设置方法,dhcp直接重启网卡即可。
需要指定ip,就配置咯(不会的倒回去参考nat模式的ip配置)
开机启动系统,然后设置网卡文件。
保存退出,然后重启网卡,利用远程工具测试能否与主机通信。
仅主机通外网设置
主机与虚拟机之间可以通信,现在设置虚拟机联通外网。
进入到本地的网络连接,右键能上网的网卡,开启共享
我们可以看到上图有一个提示,强制将VMware Network Adapter VMnet1的ip设置成192.168.137.1,那么接下来,我们就要将虚拟机的DHCP的子网和起始地址进行修改(改为和共享网络一个段),点击“虚拟网络编辑器”
重新配置网卡,将VMware Network Adapter VMnet1虚拟网卡作为虚拟机的路由。
重启网卡,然后通过 远程工具测试能否联通外网以及与主机通信。
测试结果证明可以使得虚拟机连接外网。
总结
上述中,桥接是一个比较特殊且实用的一个模式,网上说的有点笼统,所以自己实操了一遍。
nat和仅主机模式是找了比较多的其他参考内容,加了些更能容易让人理解的内容整理出来的,nat相对简单很多,仅主机相对不常用,而且我觉得上面内容足够清晰,所以就没有再实操,以供参考。
另外,如果需要自定义nat网段的,可以参考:https://cuichongxin.blog.csdn.net/article/details/108033647