VMware虚拟机三种网络连接方式详解与设置
首先要知道VM软件安装成功后,在其内部就有三个网卡VMnet0,VMnet1,VMnet8
且VM安装在宿主机中,宿主中就有这三块网卡的驱动。
一、VMware中网络连接方式
1.VMware中提供了三种网络连接方式,VirtualBox中提供4种网络连接方式。
NAT: 网络地址转换模式(Network Address Translation)
Bridged Adapter : 桥接模式
Host-only Adapter : 仅主机模式
2. VM中有三个网卡介绍
打开vmware虚拟机,可以在选项栏的“编辑”下的“虚拟网络编辑器”中看到VMnet0(桥接模式)、VMnet1(仅主机模式)、VMnet8(NAT模式)。其实,VMnet0表示的是用于桥接模式下的虚拟交换机;VMnet1表示的是用于仅主机模式下的虚拟交换机;VMnet8表示的是用于NAT模式下的虚拟交换机。
同时,在主机上对应的有VMware Network Adapter VMnet1和VMware Network Adapter VMnet8两块虚拟网卡,它们分别作用于仅主机模式与NAT模式下。在“网络连接”中我们可以看到这两块虚拟网卡,如果将这两块卸载了,可以在vmware的“编辑”下的“虚拟网络编辑器”中点击“还原默认设置”,可重新将虚拟网卡还原。
二、详解各种模式:
将主机网卡与虚拟机虚拟的网卡利用虚拟网桥进行通信。在桥接的作用下,类似于把物理主机虚拟为一个交换机,所有桥接设置的虚拟机连接到这个交换机的一个接口上,物理主机也同样插在这个交换机当中,所以所有桥接下的网卡与网卡都是交换模式的,相互可以访问而不干扰。此模式下的虚拟机和自己的依赖主机共同处在同一个网段下,意思就是如果主机的IP是192.168.100.xxx,那么虚拟机中的IP地址也将会是192.168.100.xxx,如果需要联网,则网关与DNS需要与主机网卡一致。虚拟机也会占用局域网中的一个IP地址,并且可以和主机同网段的其他真实终端进行相互访问。
VMware会在主机上建立单独的专用网络,用以在主机和虚拟机之间相互通信。虚拟机向外部网络发送的请求数据”包裹”,都会交由NAT网络适配器加上”特殊标记”并以主机的名义转发出去,外部网络返回的响应数据”包裹”,也是先由主机接收,然后交由NAT网络适配器根据”特殊标记”进行识别并转发给对应的虚拟机,因此,虚拟机在外部网络中不必具有自己的IP地址。从外部网络来看,虚拟机和主机在共享一个IP地址(因此,只要主机可以访问Internet虚拟机就可以访问Internet),默认情况下,外部网络终端也无法访问到虚拟机。此外,在一台主机上只允许有一个NAT模式的虚拟网络。因此,同一台主机上的多个采用NAT模式网络连接的虚拟机也是可以相互访问的,但因为NET模式下的虚拟机不具有真实IP,所以无法和主机同网段的其他真实终端进行相互访问。
一种比NAT模式更加封闭的的网络连接模式,它将创建完全包含在主机中的专用网络。仅主机模式的虚拟网络适配器仅对主机可见,并在虚拟机和主机系统之间提供网络连接。相对于NAT模式而言,仅主机模式不具备NAT功能,因此在默认情况下,使用仅主机模式网络连接的虚拟机无法连接到Internet(在主机上安装合适的路由或代理软件,或者在Windows系统的主机上使用Internet连接共享功能,仍然可以让虚拟机连接到Internet或其他网络)。在同一台主机上可以创建多个仅主机模式的虚拟网络,如果多个虚拟机处于同一个仅主机模式网络中,那么它们之间是可以相互通信的;如果它们处于不同的仅主机模式网络,则默认情况下无法进行相互通信(可通过在它们之间设置路由器来实现相互通信)。
三、设置VM中的三块网卡
1.VMnet0
1.1 设置 VMnet0 桥接模式用的网卡
先确认一下真机的ip地址、网关、DNS等信息,要记住SSID名称后续有用。如下图:
接着点击虚拟机中的 编辑——虚拟网络编辑器,将VMnet0绑定宿主机中真实上网的网卡上面:

注:此时选择桥接到的网卡就是宿主机中连接网络的那张网卡驱动。
1.2. 这张网卡的作用
- 如果VM中的虚拟机,添加了这块网卡,那么这台虚拟机的ip就是和宿主机在同一个网段的,就直接可以和宿主机所在的局域网中的任何一台机器,进行通信。
-虽然 这样虚拟机之间,可以互相通信,他们的IP都是路由器DHCP池中随机分配的,万一某天ip地址改变了,同在同一个局域网的其他电脑上的终端工具,就连接不上虚拟机了。 - 如果是,将虚拟机的ip设置为静态的,保证了ip不变,但是有个问题,路由器将DHCP池中的ip,分配给其局域网下的机器是随机的。保不准,就将和
虚拟机设置的静态ip一样的ip,分配给其他机器了,那么在局域网中,就会产生ip冲突。导致虚拟机上不了网。 - 还得去路由器上面,设置DHCP分配ip规则,规避哪些ip,防止自动分配到,已有静态ip上。(设置DHCP的ip池,ip段范围。预留出一段ip给虚拟机设置静态ip用)
2. VMnet8
2.1 设置VMnet8 NAT模式用的网卡
设置就设置个ip地址段,这个默认可以不用设置用它自动生成的,一定要和宿主机网段区分开,因为这相当于VM内部的 虚拟机网段
不与宿主机所在的局域网连通,只能NAT模式上广域网下载数据
2.2 这张网卡的作用
- 如果VM中的虚拟机,添加了这块网卡,那么这台虚拟机的ip网段,就和宿主机网段,不在同一网段,如上ip肯定是
192.168.59.xx - 是在59 网段。 并且,外界宿主机所在的局域网中,任何设备,不能直接
ping192.168.59.xx来访问这台虚拟机,因为他们不在同一网段。 - 但是,这台虚拟机可以访问广域网。可以
pingwww.daidu.com. 是通过宿主机转发的。 - 而且如果在一台宿主机中的,多个虚拟机,都使用了NAT模式的网卡,那么这些虚拟机可以互相通信的。
- 说白了,就是让虚拟机可以上广域网,且(虚拟机之间可以互相通信。因为他们在同一个NAT网卡下面,都在
192.168.59.xxx网段中) - 但是宿主机所在的局域网中的任何机器,都不能访问虚拟机,其他电脑
不能使用终端工具连接 - 因为NET模式下的虚拟机不具有真实IP,所以无法和主机同网段的其他真实终端进行相互访问。
3. VMnet1
3.1 设置VMnet1 仅主机模式用的网卡
设置这个IP段,和宿主机在同一个网段下
- 虚拟机使用了仅主机模式的网卡,那么这台虚拟机 仅对主机可见,可以和宿主机互相ping通。
- 但是,不能和局域网内其他设备互相通信。
- 使用仅主机模式网络连接的虚拟机无法连接到Internet,不能上广域网,不能ping通www.baidu.com 当然也不能下载镜像。
- 虚拟机上
仅主机模式的这张网卡要进行设置,是和宿主机处于同一个网段的,只能当前宿主机可以访问到。而处在与宿主机相同网段的其他电脑,是不能访问到,这台虚拟机的。 - 也就是说,
这个虚拟机不能上网,而且只有宿主机可以,通过终端连接工具,连接到这台虚拟机。,局域网内其他任何一台电脑都不行 - 一般虚拟机配置双网卡,就是以这个网卡的地址作为静态
四、VM中虚拟机具体使用哪种模式与局域网内设备通信
- 在VM中创建一个虚拟机,为其添加
网络适配器,设置当前虚拟机使用哪种网络模式
1.虚拟机使用 桥接模式:
使用桥接模式。前提得设置路由器
示例
- 整个局域网得网段是192.168.100.1~192.168.100.200,
- 通过路由器设置,将(
192.168.100.111~192.168.100.139)这段网址,给空出来了,在路由器中DHCP地址池中,不会有这一段网址。 - 空出来的这一段网址,是将来给VM中的多个虚拟机使用。同时将他们的
ip设置为静态。 目的是:同一个局域网下,其他机器,通过DHCP动态获取的ip,就不会和现在设置的虚拟机节点ip冲突
- 通过路由器设置,将(
(另一个方法:将DHCP动态分配的ip,在路由器中设置,局域网中的每个设备,其MAC地址绑定对应的IP地址,保证每次设备重连局域网,其IP地址固定不变即可)
-
然后设置VM 将
虚拟机桥接宿主机。由于是桥接模式,VM中得虚拟机都将会在宿主机同一网段中- 使用桥接模式目的:局域网内的任何一台电脑,使用
WindTerm 终端连接工具,都能访问到VM中得 任意虚拟机 进行SSH会话。
- 使用桥接模式目的:局域网内的任何一台电脑,使用
-
再设置
虚拟机ip为静态,ip 从 路由器DHCP池,空出来得那一段(192.168.100.111~192.168.100.139)这段网址中找ip,随便设置一个静态ip. -
这样就保证了,每台
虚拟机主机ip固定,且不会和局域网中任何机器冲突。且局域网内的任何一台电脑,使用WindTerm 终端连接工具,都能访问到VM中得 任意虚拟机 进行SSH会话。
(桥接模式下,新开虚拟机都将会在宿主机同一网段中。)
- 缺点:虚拟机和宿主机,路由器在同一网段。虚拟机有上千台,ip地址就不够用。局域网内每个设备都占用一个ip,网段是有限的。
- 优点:
虚拟机可以宿主机以及同一局域网内的所有其他真实终端进行相互访问。)
1.1. 具体设置
将192.168.100.111这台虚拟机桥接到vmnet0:
此时虚拟机终端ping网关就可以ping通,ifconfig就可以查看虚拟机当前IP地址,这个ip地址是路由器DHCP池中自动随机的分配得,
(我们要自己手动设置ip,且这个ip是非路由器DHCP池中的ip,就是上面设置路由器空出来的IP)
linux服务器,设置静态ip,必须和宿主机网段,在同一个网段!!
由于VM中的各个虚拟机,使用桥接模式到宿主机,所以他们的,ip段是和宿主机同一个局域网。
修改静态ip地址
vim /etc/sysconfig/network-scripts/ifcfg-ens33
设置ifcfg-ens33文件如下,设置静态IPBOOTPROTO="static"、IPADDR=192.168.100.112
TYPE="Ethernet"
PROXY_METHOD="none"
BROWSER_ONLY="no"
BOOTPROTO="static"
DEFROUTE="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_FAILURE_FATAL="no"
IPV6_ADDR_GEN_MODE="stable-privacy"
NAME="ens33"
UUID="e2064e6c-603b-493b-91b8-bf524e895fec"
DEVICE="ens33"
ONBOOT="yes"
IPADDR=192.168.100.111
NETMASK=255.255.255.0
GATEWAY=192.168.100.1
桥接模式总结:
- 通过将VM中的,多个虚拟机网络模式,设置为
桥接模式,且多个虚拟机同时设置了和宿主机同一网段的静态ip,那么此时在这个局域网中的任何设备,都可以和VM下的任意一台虚拟机互相通信,虚拟机之间也可以互相通信,虚拟还可以上广域网。 - 这种方案虽然麻烦,但是局域网内的其他人的电脑,都能访问该虚拟机。
2.虚拟机使用 NAT模式: 网络地址转换模式
2.1 具体设置
- 设置NAT模式:(VMnet8虚拟网卡,重新开了一个网段,与宿主真机不在同一个网段)
- 优点:新开网段,ip富裕。可连接虚拟机数量多。
- (多台虚拟机均设置为NAT则可以互相ping通,也可以和真机宿主机互相ping通,还可以实现上网)
- “虚拟机”——“设置” 并在“网络连接”中选择“NAT模式”,如下图:

接着,将宿主机的网络设置为 IP改为自动获取,右键点击“网络”——属性——更改适配器设置——找到正在使用的真机的网络——右键“属性”,如下图
此时,在虚拟机中ping外部网络,能ping通说明配置成功
查看宿主机中的VMnet8所在网段
也可以进行手动设置自己想要的网段,如下图:
NAT 网络地址转换模式:总结
- 这台虚拟机可以上广域网下载镜像,并且虚拟机之间可以互相通信。因为他们在同一个NAT网卡下面,都在
192.168.59.xxx网段中 - 但是,宿主机和这个虚拟机不能相互通信,宿主机所在局域网的任何一台电脑,都不能与其互相通信。
3. 双网卡模式
解决虚拟机既可以与宿主机进行通信使用终端工具连接虚拟机,又可以上广域网,又可以虚拟机之间进行互相通信。
3.1 给目标虚拟机配置双网卡
-
VMnet1仅主机模式,可以与宿主机进行通信,(虽然多个虚拟机之间也能通信,但是不能上广域网); -
VMnet8NAT网络地址转换模式可以上广域网,可以多个虚拟机之间进行通信,不能与宿主机进行互相通信; -
将上面两种网卡,集合在一起进行互补。就可以实现,既可以与宿主机进行通信,又可以上广域网,又可以虚拟机之间进行互相通信。
-
不足:只能宿主机,连接这个虚拟机 ,
宿主机所在的局域网中其他任何一台设备都不能与其通信。
五、搭建虚拟机集群设置的网络模式(建议)
1. 直接使用VMnet0 桥接模式(所有设备都处于同一个网段)
- 搜先宿主机所在的局域网中其他任何一台设备都能与其通信。
- 同时也可以与宿主机进行通信,又可以上广域网,又可以虚拟机之间进行互相通信。
2.双网卡模式
- 虚拟机既可以与宿主机进行通信使用终端工具连接虚拟机,又可以上广域网,又可以虚拟机之间进行互相通信
- 不足:只能宿主机,连接这个虚拟机 ,
宿主机所在的局域网中其他任何一台设备都不能与其通信。
六、要两台虚拟机能够 ping 通下列要求缺一不可:
1、所设置的虚拟网络的网络号不能跟正在使用的真实的网络号一样
2、防火墙必须关闭(一定要关闭,已关了最开始的win2003的防火墙)
3、设置的那俩台虚拟机必须在同一网段内
4、两台虚拟机的主机名不能相同,在局域网中会把相同的两台电脑视为同一台电脑,只能有一台使用
5、在虚拟机中桥接的地方记住打勾
七、注意:
如出现虚拟机设置正常但还是提示无网络,可能是真机中的虚拟机服务没有完全开启,可以进行以下设置:
“Ctrl+shift+esc”——服务——找到VMware DHCP、VMware NAT、VMwareHostd并将它们全都开启:
八、拓展部分
即使是主机与虚拟机置于同一网段内,主机也不能直接ssh连接虚拟机,还需要做一步端口映射。
1、在VMware系统菜单下选择“编辑:,进入虚拟网络编辑器,选择“NAT设置”,进入“NAT设置”后,在“端口转发”下选择“添加”按钮,添加一条NAT映射规则。其中主机端口即宿主物理网卡的端口,可以任意填写端口号,因为我们这里要实现ssh远程登录功能,这里填写“22”。虚拟机IP地址按照虚拟机实际情况填写,虚拟机端口是22(因为外部设备最终是要通过22端口来访问虚拟机的ssh服务的)。
如果在vmware中建立了多个虚拟机,有几个需要在主机ssh连接,那么就需要配几条端口转发。
2.开启虚拟机在命令行窗口进行ssh配置:(参照网络教程失败了很多次,后来发现在完成了第一步配置之后再按下面的步骤设置即能成功)
(1)检查ssh状态:ssh localhost ssh
connect to hostlocalhost port 22: Connection refused 表示没有安装ssh服务
(2)下载安装ssh:sudo apt-get install openssh-server
(3)启动ssh server:sudo /etc/init.d/ssh start
(4)检查启动状态:ps -e|grep ssh
出现 ssh-agent 和sshd 等表示已经启动
(5)设置root密码:sudo passwd root,根据提示输入
(6)在主机中使用WinSCP连接虚拟机并向虚拟机的桌面发送一个文件,成功。
原文中部分参考:虚拟机连网(多台虚拟机互联、虚拟机与真机互联、虚拟机上网)
更多推荐



所有评论(0)