1+1=10

扬长避短 vs 取长补短

VirtualBox的网络设置

VirtualBox 可以为每一个Guest分配多达8个网卡(界面上只显示了4个,其他需要通过VBoxManager modifyvm进行配置),每个网卡的连接方式可以选为下列之一:

  • Not attached
  • NAT
  • NAT Network
  • Bridged Adapter
  • Internal Network
  • Host-only Adapter
  • Generic Driver
Not attached NAT NAT Network Bridged Adapter Internal Network Host-only Adapter Generic Driver
Guest->Host × × ?
Host->Guest × × × × ?
Guest<->Other Guest × × ?
Guest->Other Host × × × ?
Other Host->Guest × × × × × ?

以下假定Host位于一个192.168.1.0/24 的局域网中。

Not attached (未指定)

在该模式下,Guest的网卡存在,但是没有有效网络连接。在选项卡中,如果Cable Connected被选中,那么Guest会试图连接网路,但最终也会报告:受限制或无连接。

NAT (网络地址转换)

这个是虚拟机的默认模式。对于“Client”类型的Guest,该模式在大部分情况下都能很好地工作。 当Guest启动时,它通常使用DHCP获取一个IP地址。VirtualBox 响应DHCP请求并为其指定一个IP地址(10.0.2.15),网关地址(10.0.2.2)。

Host 192.168.1.3
10.0.2.2
Guest1 10.0.2.15
Guest2 10.0.2.15
... 10.0.2.15

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

NAT Network (NAT网络)

和NAT类似基本一样,只是所有的Guest都在同一个NAT网络内,彼此间可以通讯。

Host 192.168.1.3
10.0.2.2
Guest1 10.0.2.15
Guest2 10.0.2.16
... 10.0.2.*

需要先通过VirtualBox设置一个NAT网络(网络IP段,端口转发等都在此处可以设置),而后在各个guest的网络设置中才能选择该模式。

Bridged Adapter (桥接网卡)

Host 192.168.1.3
Guest1 192.168.1.4
Guest2 192.168.1.5
... 192.168.1.*

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

缺点:需要占用局域网中的IP地址。

Internal Network (内部网络)

用来创建guest的完全隔离的网络,对host以及外部的计算机不可见。

Host 192.168.1.3
Guest1 169.254.75.244
Guest2 169.254.75.245
... 169.254..
  • 在该模式下,VirtualBox 不提供DHCP/Name service 等服务。
  • 多个Internal Network 是可能的(需要使用VBoxManager modifyvm命令)。

Host-only Adapter (仅主机适配器)

类似 Internal Network,但是所有的guest位于一个 vboxnet0的网络中且提供DHCP服务。

Host 192.168.1.3
192.168.56.1
Guest1 192.168.56.101
Guest2 192.168.56.102
... 192.168.56.*
  • VirtualBox在Host中模拟出一个虚拟网卡(类似于loopback),所有的guest都连接到该网卡上。
  • Host和guest之间都可以互相访问,其他主机不能访问该网络,guest也不能访问其他主机。

据说该模式非常强,通过配置可以实现前面所有的模式的功能(但是我不知道怎么弄)。

Generic Driver (通用驱动)

极少使用的模式所共享的网络接口

  • UDP Tunnel
  • VDE networking

参考

tools

Comments