VMware
1. VMware的网络连接方式
安装VMware workstation的时候,默认会安装3块虚拟网卡,分别是VMnet0、VMnet1、VMnet8。虚拟机通过虚拟网卡->对应的虚拟网络->本地主机网卡,这样就可以通讯了。
在VMware中,虚拟机的网络连接主要是由VMware创建的虚拟交换机(也叫做虚拟网络)负责实现的,VMware可以根据需要创建多个虚拟网络。VMware的虚拟网络都是以"VMnet+数字"的形式来命名的,例如 VMnet0、VMnet1、VMnet2……以此类推(在Linux系统的主机上,虚拟网络的名称均采用小写形式,例如 vmnet0 )。虚拟机的网络连接(与本地主机的通讯等等,虚拟机与虚拟机之间的通信),都是由虚拟交换机实现的。
VM虚拟机有三种网络连接模式:
网络连接模式 | 网络属性 | 连接方式 | 特性 |
---|---|---|---|
桥接模式(Bridged) | 物理网卡,VMnet0,eth2 | 直接连接物理网络:将虚拟机的虚拟网络适配器与主机的物理网络适配器进行交接,虚拟机中的虚拟网络适配器可通过主机中的物理网络适配器直接访问到外部网络。简而言之,这就好像在局域网中添加了一台新的、独立的计算机一样。因此,虚拟机也会占用局域网中的一个IP地址,并且可以和其他终端进行相互访问。主机与虚拟机之间互访。 | 虚拟机可以通过主机访问外网,外网可以访问虚拟机。虚拟机相当于一台实体机,可以自由访问与被访问及上网。 |
NAT模式(Network Address Translation) | 虚拟网卡,VMnet8,eth8 | 用于共享主机的IP地址:VMware会在主机上建立单独的专用网络,用以在主机和虚拟机之间相互通信。虚拟机向外部网络发送的请求数据包,都会交由NAT网络适配器加上"特殊标记"并以主机的名义转发出去,外部网络返回的响应数据包,也是先由主机接收,然后交由NAT网络适配器根据"特殊标记"进行识别并转发给对应的虚拟机,因此,虚拟机在外部网络中不必具有自己的IP地址。从外部网络来看,虚拟机和主机在共享一个IP地址,默认情况下,外部网络终端也无法访问到虚拟机。此外,在一台主机上只允许有一个NAT模式的虚拟网络。因此,同一台主机上的多个采用NAT模式网络连接的虚拟机也是可以相互访问的。默认情况下,外部网络无法访问到虚拟机,不过我们也可以通过手动修改NAT设置实现端口转发功能,将外部网络发送到主机指定端口的数据转发到指定的虚拟机上。比如,我们在虚拟机的80端口上"建立"了一个站点,只要我们设置端口转发,将主机88端口上的数据转发给虚拟机的80端口,就可以让外部网络通过主机的88端口访问到虚拟机80端口上的站点。 | 主机与虚拟机之间互访。虚拟机可以通过主机访问外网,外网无法访问虚拟机。使用NAT网络模式,在宿主机安装多台虚拟机,和宿主组成一个小局域网,宿主机,虚拟机之间都可以互相通信,虚拟机也可访问外网,例如搭建 hadoop 集群、分布式服务。 |
仅主机(host-only) | 虚拟网卡,VMnet1,eth0 | 与主机共享的专用网络:仅主机模式是一种比NAT模式更加封闭的的网络连接模式,它将创建完全包含在主机中的专用网络。仅主机模式的虚拟网络适配器仅对主机可见,并在虚拟机和主机系统之间提供网络连接。相对于NAT模式而言,仅主机模式不具备NAT功能,因此在默认情况下,使用仅主机模式网络连接的虚拟机无法连接到Internet(在主机上安装合适的路由或代理软件,或者在Windows系统的主机上使用Internet连接共享功能,仍然可以让虚拟机连接到Internet或其他网络)。在同一台主机上可以创建多个仅主机模式的虚拟网络,如果多个虚拟机处于同一个仅主机模式网络中,那么它们之间是可以相互通信的;如果它们处于不同的仅主机模式网络,则默认情况下无法进行相互通信(可通过在它们之间设置路由器来实现相互通信)。 | 主机与虚拟机之间互访,但虚拟机无法访问外网。外网也无法访问虚拟机。 |