VirtualBox 的网卡有多种设置方式,总结各种情况,可以用下表描述。
注:
1. 表中假设 Host OS 能访问互联网。
2. 表中有「能否访问其他 Guest OS」,但无「能否被其他 Guest OS 访问」,是因为各 Guest 在逻辑上是对称的。
3. 只要 Guest OS 之间能互访,就能搭建虚拟的局域网,这在做集群实验时,非常有用。
4. 官方参考:https://www.virtualbox.org/manual/ch06.html
以下用图逐一说明:
1. Not attached, 未指定
这种情况,Guest OS 相当于无联网的单机,和 Host OS 不能互访,且无法访问 Internet. 这种网络结构比较适合做需要隔离内外网络环境的实验,Guest OS 相当于一个完全无破坏里的沙盒(sandbox)。
2. NAT, 网络地址转换(NAT)
这是 VirtualBox 默认的网卡模式,在此模式下,Guest OS 可以通过 10.0.2.2 访问 Host OS 的资源,也可访问互联网,但 Guest OS 之间不能互访。有关 NAT 更详细的信息,可以参考:http://en.wikipedia.org/wiki/Network_address_translation
3. NAT Network, NAT 网络
这是一种比较有趣的网络结构,在此模式下,Guest OS 可以互访,IP 为 10.0.2.*, 网关 IP 是 10.0.2.2,并可通过此 IP 访问 Host OS. 可用此模式搭建一个内访问外部网络 ,但不能被外部访问到的局域网。
4. Bridged Adapter, 桥接网卡
这种网络模式下,Guest OS 和 Host OS 完全对等,可以组件虚实相间的局域网。目前的 VirtualBox 已经支持 IPv6 了,查看 Guest OS 的 IP,已看不到 IPv4 地址。
5. Internal Network, 内部网络
这种网络模式下,Guest OS 之间可以互访,但无法和外部交换信息,可以形成一个内部可见的局域网。
6. Host-ony Adapter, 仅主机(Host-Only)适配器
这种网络模式下,Guest OS 之间可以互访,且能被 Host OS 访问到,但无法访问 Host OS,也无法访问互联网。可以用此模式在单机上搭建一个仅限本机可用的虚拟局域网。实际上,我搭建的第一个 Hadoop cluster 正是用的这种网络结构。
7. Generic Driver, 通用驱动
官网的文档说这是一个相当罕用的模式,允许用户选择 VirtualBox 自带或 Extension pack 带的驱动。我已完全无心研究这个模式了。
本文的图通过 drive.google.com 的 Google Drawings 绘制,导出成 png 格式,再通过 PicPick 剪裁空白,添加边框,缩小为原尺寸的80%进行保存。