桥接
桥接简而言之就是指:就是通过一台设备(可能不止一个)把几个网络串起来形成的连接。这边主要介绍虚拟机所采用的桥接方式,虚拟出来的操作系统就像是局域网中的一独立的主机,它可以通过路由器网线访问网内任何一台机器。不过虚拟机需要占用你同一个网段的一个 IP 地址,当且仅当虚拟机和实体机在同一个网段,两者才可以进行通信,如:虚拟机 IP:192.168.1.101,实体机 IP:192.168.1.100。
在桥接模式下,例如在 windows 下使用 vmware 时,明显看到会生成多个虚拟网卡出来,但却没有一个网卡是属于桥接的,原因是虚拟机采用桥接方式时,是不需要虚拟网卡的,这时候虚拟机操作系统和实体机操作系统同时使用真实网卡工作,然后真是网卡发送数据出去,而如果虚拟机发送数据给真实机,则数据流向是:虚拟机系统->真实网卡->路由器->真实网卡->实体机系统,不难看出同一个数据经过网卡在路由器上面绕了一圈又回到了网卡。
通过上述内容发现,桥接必须经过真实网卡和路由器,故当你的电脑没有连接有线网或者无线网时,你的实体机是无法和虚拟机进行交互的,即使两者看起来很近也不行。而选用桥接还是 NAT 等方式是在虚拟机软件中选定,进入虚拟的操作系统后,所有的设置和真实电脑没有本质区别,如果路由器允许自动分配 IP 地址,则操作系统设置为自动获取 IP 即可,如果不能自动分配,也可以在操作系统中手动分配 IP 地址。另外值得注意的是某些公司路由器绑定了电脑 mac 地址和 IP 地址,这时候虚拟机中的桥接也相当于一个真实电脑,也需要完成相关的绑定才可以访问网络。
如果你想利用VMware在局域网内新建一个虚拟服务器,为局域网用户提供网络服务,就应该选择桥接模式。
NAT
NAT模式实际是虚拟了一个网卡出来,虚拟机直接使用链接这个虚拟网卡,每次访问和交互通过这个虚拟网卡交换数据。虚拟机发送数据给实体机:虚拟机系统->虚拟网卡->实体机系统(可以发现是不经过真实网卡的流程简单很多);虚拟机访问外网:虚拟机系统->虚拟网卡->实体机系统->真实网卡->路由器->外网* 。*
虚拟机借助 NAT (网络地址转换)功能,通过宿主机器所在的网络来访问公网。 NAT 模式中,虚拟机的网卡和真实网卡的网络,不需要在同一个网络,虚拟机的网卡的网段可以理解:路由器所在网段之下的一个子网段。
采用NAT模式最大的优势是虚拟系统接入互联网非常简单,你不需要进行任何其他的配置,只需要宿主机器能访问互联网即可。如果你想利用VMWare安装一个新的虚拟系统,在虚拟系统中不用进行任何手工配置就能直接访问互联网,建议你采用NAT模式。而缺点是: NAT 模式下,虚拟机仅仅可以同路由器下网段中的一台真实机通讯,而这台真实机就是安装虚拟机的这台电脑,之所以可以通讯是因为这台电脑本身充当了虚拟机的路由器,相当于路由器的 192.168.1.1 这个地址,而你在 vmware 下的网卡管理中是可以看到这个地址的。这边再补充一点:采用NAT模式时,虚拟机和实体机交互并不是直接进行的,首先虚拟机操作系统访问虚拟网卡 VMnet8 (地址如: 192.188.1.33),然后这个虚拟网卡会再将数据提交给真实机操作系统VMware Network Adapter VMnet8(地址: 192.188.1.1)而地址(192.188.1.33 和 192.188.1.1)实际都是由虚拟机软件 vmware 提供的
NAT和桥接的比较:
(1) NAT模式和桥接模式虚拟机都可以上外网。
(2) 由于NAT的网络在vmware提供的一个虚拟网络里,所以局域网其他主机是无法访问虚拟机的,只有宿主机可以访问虚拟机,虚拟机可以访问局域网的所有主机,因为真实的局域网相对于NAT的虚拟网络,就是NAT的虚拟网络的外网,不懂的人可以查查NAT的相关知识。
(3) 桥接模式下,多个虚拟机之间可以互相访问;NAT模式下,多个虚拟机之间也可以相互访问。
如果你建一个虚拟机,只是给自己用,不需要给局域网其他人用,那么可以选择NAT,毕竟NAT模式下的虚拟系统的TCP/IP配置信息是由VMnet8(NAT)虚拟网络的DHCP服务器提供的,只要虚拟机的网路配置是DHCP,那么你不需要进行任何其他的配置,只需要宿主机器能访问互联网即可,就可以让虚拟机联网了
- VMnet8
使用NAT网络模式,在宿主机安装多台虚拟机,和宿主组成一个小局域网,宿主机,虚拟机之间都可以互相通信,虚拟机也可访问外网,例如 搭建hadoop 集群,分布式服务
- VMNet0
使用桥接模式,安装VM后,在VM里建立虚拟机 默认 就是该模式。
如果你只是需要一台虚拟机可以和宿主互通,并可以访问外网,此模式即可。