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