VirtualBox 可以为每一个虚拟机分配8个网卡。每一个网卡的连接方式可以选为下列之一:

  • Not attached
  • Network Address Translation (NAT)
  • Bridged networking
  • Host-only networking
  • Internal networking
  • Generic networking

去掉第一个和最后一个,我们关心的只剩下4个:

(以下假定host在192.168.1.*网段中)

Network Address Translation (NAT)



Host



192.168.1.3



Guest1



10.0.2.15



Guest2



10.0.2.15



...



10.0.2.15



NAT是在虚拟机中访问外部网络的最简单的方式,是VirtualBox默认的网络模式。通常不需要对host和guest进行任何设置。

但由于虚拟机连接到的是VirtualBox内部的私有网络,使得虚拟机对其他虚拟机、对host以及网络上的其他计算机都是不可见的。为了使其某些端口对外部可见,需要使用 port forwarding。

通过VirtualBox界面或命令行,对名为windowsxp的虚拟机的nat网卡设置一个转发规则Rule1

VBoxManage modifyvm "windowsxp" --natpf1 "Rule1,tcp,,2222,,22"


格式:

--natpf<1-N> [<name>],tcp|udp,[<hostip>],<hostport>,[<guestip>], <guestport>


Bridged networking

它可以满足虚拟机中更高级的网络需求,比如运行servers等。它通过host的网卡,直接连入到host网络中。因此,虚拟机能被分配到一个中独立的IP,所有网络功能完全和在网络中的真实机器一样。



Host



192.168.1.3



Guest1



192.168.1.4



Guest2



192.168.1.5



...



192.168.1.*



Internal networking

用来创建虚拟机间的网络,对host以及外部的计算机不可见。



Host



192.168.1.3



Guest1



169.254.75.244



Guest2



169.254.75.245



...



169.254.*.*



Host-only networking



Host



192.168.1.3



192.168.56.1



Guest1



192.168.56.101



Guest2



192.168.56.102



...



192.168.56.*



Host和若干个虚拟机之间的网络。Host中自动增加一个有点类似于local loopback接口,和Guest位于同一网段。

与外界的网络绝缘。不能访问外界网络,也不能被外部计算机访问。