
VirtualBox提供了几种虚拟网络配置类型。本文将解释各种网络配置的差异和用途。
虚拟网卡
首先了解一下VirtualBox对网络硬件的模拟,VirtualBox 6.X 提供下面几种虚拟网卡:
- PCnet-PCI II (Am79C970A)
- PCnet-FAST III (Am79C973)
- Intel PRO/1000 MT 桌面 (82540EM)
- Intel PRO/1000 T 服务器 (82543GC)
- Intel PRO/1000 MT 服务器 (82545EM)
- 准虚拟化网络 (virtio-net)
可以在虚拟机的网络配置里查看:
PCnet-FAST III是默认的,所有系统都支持。
Intel PRO/1000系列是为了支持没有PCNet卡驱动程序的虚拟机系统,比如Windows Vista。
准虚拟化网络(virtio-net)使用虚拟机操作系统提供的Virtio网络接口,Virtio是一种网络和磁盘的虚拟化接口标准。
网络模式
VirtualBox提供了下面几种网络连接模式:
- 未指定
- 网络地址转换(NAT)
- NAT 网络
- 桥接网络
- 内部网络
- 仅宿主机(Host-Only)网络
- 通用驱动
可以在虚拟机的网络配置里查看:
未指定
虚拟机系统有网卡,但不连接。
网络地址转换(NAT)
NAT模式是VirtualBox的默认网络模式,可以从虚拟机访问外网,但不能从外网访问虚拟机。如想从外网访问虚拟机需要做端口转发。
NAT 网络
NAT网络模式是前一种NAT模式的变体,同样的,虚拟机可以访问外网,但外网不能访问虚拟机。不同的是,多个虚拟机之间可以组网。
桥接网络
在这种模式下,虚拟机将作为一个独立主机直接加入宿主机所在的网络。
内部网络
虚拟机之间组网。相同内部网络的虚拟机之间可以互通,不能与宿主机或外网通信。
仅宿主机(Host-Only)网络
主机与多个虚拟机组网,但虚拟机不能连外网。
通用驱动
不常用。目前通用网络模式有两种可能的子模式:
- UDP Tunnel[8]
- VDE (Virtual Distributed Ethernet) networking
下表是重要网络模式的总结。
网络模式 | 虚拟机 → 宿主机 |
虚拟机 ← 宿主机 |
虚拟机1 ↔ 虚拟机2 |
虚拟机 → 外网 |
虚拟机 ← 外网 |
---|---|---|---|---|---|
仅宿主机(Host-Only) |
+ |
+ |
+ |
– |
– |
内部网络 |
– |
– |
+ |
– |
– |
桥接网络 |
+ |
+ |
+ |
+ |
+ |
网络地址转换(NAT) |
+ |
端口转发 |
– |
+ |
端口转发 |
NAT 网络 |
+ |
端口转发 |
+ |
+ |
端口转发 |
端口转发
NAT模式下,宿主机或外网无法访问虚拟机内部网络,需要通过端口转发才能访问。VirtualBox监听主机上的某些端口,并将到达该端口的所有数据包转发给虚拟机。
举例说明,设置SSH端口转发(可参考文章),设置好后外网可以SSH登录到虚拟机:
右键点击窗口底部的网络图标,弹出菜单,选择网络...
点击端口转发
添加转发规则,映射IP和端口
主机IP – 宿主机IP
主机端口 – 宿主机映射端口
子系统IP – 虚拟机内部系统IP
子系统端口 – 虚拟机内部系统端口
打开 PuTTY,连接 127.0.0.1:8022,成功连接