VMWare和VirtualBox中NAT模式的区别

前言

最近从在使用VirtualBox,我发现它的nat模式和vm的nat模式有一些区别,而这些区别产生了一些问题,主要就是我的宿主机无法和虚拟机进行通信。

正文

1.vm中的nat模式

我们先来看一看vm中使用nat模式下,宿主机和虚拟机之间的网络拓扑结构图
VMWare和VirtualBox中NAT模式的区别
我们可以清晰的vm为看到虚拟机和宿主机各分配了一张虚拟网卡VMNET8,这两张网卡通过VMNET8交换机进行通信,也就是说只要将虚拟机和宿主机的ip地址设置在交换机所在的网段,网关设置为交换机的ip地址,这两台主机就可以进行通信。虚拟机是如何连上外网的呢?答案是通过vm提供的nat服务器进行地址转换,将vm的ip地址转换为物理机上可以上网的ip地址进行上网。
因此,我们可以确定vmnet8交换机是用于在nat模式下宿主机和虚拟机之间的通信,而nat服务器使用于ip地址转换,为了虚拟机可以上外网的。这两者是独立的,那么禁用vmnet8这张网卡是不会影响虚拟机正常上外网的,影响的只是虚拟机和宿主机之间的通信。

2.VirtualBox下的nat模式

如果你使用过.VirtualBox下的nat模式,你会发现虚拟机和宿主机之间是无法通信的,因为VirtualBox并没有提供类似vm的vmnet8虚拟网卡,而只有一个nat服务器。

3.通过桥接模式让宿主机和虚拟机通信

当然,如果你还是想要和虚拟机进行通信的同时能够使虚拟机上网,你可以额外添加一张网卡,或者直接使用桥接模式。桥接模式指的是指定一张宿主机上的网卡,让虚拟机加入这张网卡所在的局域网,这就类似有一台新主机加入到这个局域网中了,但是会占用这个局域网的ip。如果ip地址不是很紧张的话,这样子显然是很方便的选择

参考文章

VMWare虚拟机网络模式详解