目录
网络地址转换(NAT)
虚拟网卡默认开启该网络模式。虚拟机中的Guest操作系统可以通过虚拟的NAT (network Address Translation)设备访问物理局域网中的主机。Guest操作系统可以访问外部网络,包括internet。当VirtualBox网络使用NAT模式时,无法从主机或网络中的其他机器访问Guest机器。例如,这种默认网络模式对于希望使用虚拟机访问internet的用户来说是足够的。
虚拟机网卡的IP地址是通过DHCP方式获取的,该方式使用的网络IP地址不能在GUI界面中修改。VirtualBox内置DHCP服务器和NAT引擎。虚拟NAT设备使用VirtualBox主机的物理网卡作为外部网络接口。NAT方式下使用的虚拟DHCP服务器的默认地址为10.0.2.2 (即虚拟机的默认网关地址)。网络掩码为255.255.255.0。
如果将两台或两台以上虚拟机的网卡配置为NAT方式,则每个虚拟机都将在私有虚拟NAT设备后获取自己隔离网络中的10.0.2.15 IP地址。虚拟机默认网关为10.0.2.2。在VirtualBox中,当使用NAT模式时,IP地址不会改变,如下所示:

如果要开启虚拟机的NAT模式,请执行以下命令:
bash
VBoxManage modifyvm VM_name --nic1 nat
- VM_name是虚拟机的名称;
- nic1为虚拟网卡编号;
- nat为需要设置的VirtualBox网络模式名称。
NAT网络
该模式类似于配置路由器时使用的NAT模式。如果对多个虚拟机使用NAT Network模式,虚拟机之间可以通过网络进行通信。虚拟机可以访问物理网络中的其他主机,也可以访问包括internet在内的外部网络。来自外部网络的任何机器以及来自主机所连接的物理网络的机器都不能访问配置为使用NAT网络模式的虚拟机(类似于您从家庭网络配置路由器访问internet时的情况)。使用NAT网络模式时,不能从主机访问Guest机器(除非在全局VirtualBox网络设置中配置端口转发)。内置的VirtualBox NAT路由器使用VirtualBox主机的物理网络接口控制器作为外部网络接口(与NAT模式一样)。

如果你不想在GUI中编辑VirtualBox网络设置,你可以使用以下命令在VBoxManage中添加一个新的NAT网络:
bash
VBoxManage natnetwork add --netname natnet1 --network "192.168.22.0/24" --enable
- natnet1为NAT网络名称;
- 192.168.22.0/24为该NAT网络的地址。
如果需要通过VBoxManage配置虚拟机网卡,使其使用NAT network方式,则执行如下命令:
bash
VBoxManage modifyvm VM_name --nic1 natnetwork
- nic1是第一个虚拟网络适配器(网络接口控制器);
- natnetwork 是VirtualBox网络模式的名称。注:所有的网络模式有none, null, nat, natnetwork, bridged, intnet, hostonly, generic。
桥接网卡
该方式用于将虚拟机的虚拟网卡连接到VirtualBox主机的物理网卡所连接的物理网络中。虚拟机虚拟网卡使用主机网络接口进行网络连接。简单地说,网络数据包直接在虚拟网络适配器之间发送和接收,而不需要额外的路由。VirtualBox为桥接网络模式使用了一个特殊的网络过滤驱动程序,以便过滤来自主机物理网络适配器的数据。
该网络模式适用于需要通过物理局域网完全可访问的虚拟机上运行服务器。在VirtualBox中使用桥接网络方式时,可以通过虚拟机访问主机、物理网络中的主机和外部网络(包括internet)。该虚拟机既可以从主机访问,也可以从连接到物理网络的其他主机(和虚拟机)访问。
在VirtualBox中,当使用桥接模式时,虚拟机虚拟网卡的IP地址可以与主机物理网卡的IP地址属于同一网络。如果物理网络中存在DHCP服务器,虚拟机的虚拟网卡会以网桥方式自动获取IP地址(如果在guest操作系统的网口设置中设置了自动获取IP地址)。因此,在桥接模式下运行的虚拟网络适配器的默认网关与您的主机相同。让我们看一个简单的IP地址示例。
- 物理网络地址:10.10.10.0/24
- 物理网络默认网关的IP地址:10.10.10.1
- 物理网络中DHCP服务器的IP地址:10.10.10.1
- 主机的IP配置:IP地址- 10.10.10.72;网络掩码---255.255.255.0;默认网关为10.10.10.1。
- 客户机的IP配置:IP地址- 10.10.10.91;网络掩码---255.255.255.0;默认网关为10.10.10.1。

混杂模式。这种模式允许网络适配器传递所有接收到的流量,而不管该流量的地址是哪个适配器。在正常模式下,网络适配器只接收帧,帧头中包含该特定网络适配器的MAC地址作为目的地址。地址为MAC地址的帧与所选适配器的MAC地址不同(当流量不是广播时),在正常模式下会被丢弃。混杂模式使得物理网卡有多个MAC地址成为可能,允许所有传入的流量通过主机的物理网卡,到达虚拟机的虚拟网卡,虚拟机有自己的MAC地址,在主机适配器上表示,即使该流量不指向特定虚拟机的虚拟网卡。
大多数无线网络适配器不支持混杂模式。桥接到Wi-Fi适配器是通过以下方式完成的- VirtualBox替换以太网帧头中的适当MAC地址,这些帧必须传递给虚拟机的虚拟网络适配器(主机Wi-Fi适配器的MAC地址必须用于该流量)。混杂模式对网络测试和安全审计非常有用。您可以在VirtualBox网络设置中启用混杂模式,并使用嗅探器监控网络流量。
使用混杂模式有三种选择。
- 否认。任何不打算通过虚拟机的虚拟网卡的流量都将对虚拟机隐藏。该选项是默认设置的。
- 允许虚拟机。除了与其他虚拟机往来的流量外,所有流量对虚拟机网卡都是隐藏的。
- 允许所有。该模式不受任何限制。虚拟机网络适配器可以看到所有传入和传出的流量。
混杂模式不仅适用于网桥网络模式,还适用于NAT网络、内部网络和主机专用适配器模式。
内部网络
将适配器配置为VirtualBox内部网络模式的虚拟机连接到隔离的虚拟网络。连接到该网络的虚拟机可以相互通信,但不能与VirtualBox主机通信,也不能与物理网络或外部网络中的任何其他主机通信。连接到内部网络的虚拟机无法通过主机或其他设备访问。VirtualBox内部网络可用于模拟真实网络。
例如,您可以创建3个虚拟机,每个虚拟机都有一个虚拟网卡(适配器1)连接到内部网络。这些网卡的IP地址是从VirtualBox内部网络使用的子网中定义的(您应该手动定义子网)。其中一个虚拟机(VM1)还有第二个虚拟网络适配器,该适配器被配置为以NAT模式运行。VM1被配置为路由器(创建路由器的最佳解决方案之一是安装Linux并配置IPTABLES,但在VirtualBox网络测试的情况下,您第一次可以使用更简单的路由解决方案)。
如果VM2和VM3的网卡只连接到VirtualBox内部网络,则在VM2和VM3的网络设置中将VM1的内部网卡的IP地址设置为网关,则VM2和VM3可以访问外部网络。
本例中使用的网络配置:
- VM1。IP地址---192.168.23.1(内部网络模式);10.0.2.15 (NAT模式),网关10.0.2.2 (VirtualBox内置NAT设备的IP地址)。
- VM2。IP地址---192.168.23.2(内网),网关---192.168.23.1
- VM3。IP地址---192.168.23.3(内网),网关---192.168.23.1
VirtualBox内部网络子网:192.168.23.0/24
注意:在实际网络基础设施中实现防火墙规则之前,您也可以部署这种虚拟基础设施,以便在IPTABLES中测试防火墙规则,但在连接外部网络时,最好对VM1的第二个虚拟网络适配器使用桥接模式,而不是NAT模式。
仅主机(Host-Only)网络
该网络模式用于主机和Guest之间的通信。虚拟机可以与主机网络中的其他虚拟机通信,也可以与主机通信。VirtualBox主机可以访问连接到主机专用网络的所有虚拟机。

通用驱动
该网络模式允许共享通用网络接口。用户可以选择适当的驱动程序,在扩展包中分发或包含在VirtualBox中。 VirtualBox通用驱动模式有两个子模式:UDP隧道和VDE(虚拟分布式以太网)网络。
- UDP隧道。运行在不同主机上的虚拟机可以通过使用现有的网络基础设施透明地进行通信。
- VDE网络。虚拟机可以连接到Linux或FreeBSD主机上的虚拟分布式交换机。您需要从源代码编译VirtualBox以使用VDE网络,因为标准VirtualBox包不包括此功能。
网络模式比较

端口转发
端口转发是拦截发送到适当IP地址和端口的 转发。端口转发最流行的用例之一是提供对隐藏在NAT后面的特定网络服务的访问,这些服务来自外部网络。配置端口转发规则后,客户端可以通过连接到路由器(主机)的外部IP地址和指定端口,从外部访问相应的服务。
数据包首先被路由器上的应用程序截获,然后应用程序读取相应报头(IP包报头,TCP或UDP段报头)的目的IP地址和端口号。如果报头中的目的IP地址和端口号组合符合端口转发规则中设置的条件,则路由应用重写报头信息(IP地址和端口号),按照端口转发规则将报文/报文段发送到其他网口。
默认情况下,VirtualBox主机和局域网内的其他主机无法连接到网卡设置为NAT或NAT network模式的VirtualBox虚拟机,但VirtualBox提供了内置的端口转发特性,可以实现这种访问。
引用:https://www.nakivo.com/blog/virtualbox-network-setting-guide/#