15
2024
07
19:02:43

VirtualBox网络配置超全详解

如上图,你应该看到4个适配器页签。在虚拟机创建后,默认情况下会启用一个虚拟网络适配器。你可以勾选 "启用网络适配器 "复选框来启用适配器,不勾选复选框来禁用它(这个复选框定义了虚拟网络适配器设备是否连接到虚拟机上)。点击 "高级",展开高级VirtualBox网络适配器设置。

二、VirtualBox中的虚拟网络适配器的类型

一个虚拟网络适配器是一个软件模拟的物理设备,有6种虚拟适配器类型可以通过VirtualBox进行虚拟化:

1、AMD PCnet-PCI II(Am79C970A)。这种网络适配器是基于AMD芯片的,可以在很多情况下使用。对于Windows用户,这种网络适配器可以用于旧版本的Windows系统(如Windows 2000),因为较新的Windows版本,如Windows 7、8和10不包含这种适配器的内置驱动程序。最初,Am79C970A PCI设备包含一个单芯片10-Mbit控制器,并集成了DMA引擎。这个网络适配器还支持AMD的Magic Packet技术,用于远程唤醒。

2、AMD PCnet-FAST III(Am79C973)。这个虚拟化的网络适配器被几乎所有可以在VirtualBox上运行的操作系统所支持。GRUB(启动加载器)可以使用这个适配器进行网络启动。与上述的网络适配器类似,这个适配器也是基于AMD芯片。

3、英特尔PRO/1000 MT桌面(82540EM)。这个适配器可以与Windows Vista和较新的Windows版本完美配合。大多数的Linux发行版也支持这个适配器。

4、英特尔PRO/1000 T服务器(82543GC)。Windows XP无需安装额外的驱动程序就能识别该适配器。

5、英特尔PRO/1000 MT服务器(82545EM)。这个适配器模型对于从其他平台导入OVF模板很有用,可以加速导入过程。

6、Paravirtualized网络适配器(virtio-net)是一个特殊情况。客户操作系统必须为虚拟化环境提供一个特殊的软件接口,而不是将大多数操作系统支持的网络硬件虚拟化。这种方法允许你避免网络硬件仿真的复杂性,因此可以提高网络性能。 VirtualBox支持行业标准的virtIO网络驱动。VirtIO网络驱动是KVM项目的一部分,是开源的。这些驱动程序可用于内核为2.6.25或更高版本的Linux,以及包括Windows 2000、XP和Vista等旧版本的Windows。

巨型帧(Jumbo frames)

支持VirtualBox对巨型帧(可以携带大小超过1500字节的数据包的以太网帧)提供有限的支持。如果你需要使用巨型帧,请选择一个英特尔的虚拟网络适配器,并将该适配器配置为桥接模式工作。基于AMD的虚拟网络适配器不支持Jumbo帧。如果你试图为基于AMD的虚拟网络适配器启用巨量帧,巨量帧的输入和输出流量将被无声地放弃。默认情况下,巨型帧是禁用的。

三、VirtualBox的网络模式

VirtualBox提供了一长串的网络模式可供选择,这是VirtualBox网络设置中最有趣的特性之一。每个虚拟网络适配器都可以单独frames配置为在不同的网络模式下运行。例如,你可以为适配器1设置NAT模式,为适配器2设置Host-Only模式。你可以在下拉菜单中选择网络模式,如下图:


让 我来详细看看每一种VirtualBox的网络模式。

1、无连接模型(Not attached)

在虚拟机中安装了一个虚拟网络适配器,但网络连接不见了,很像你在使用物理网络适配器时拔掉以太网网线。这种模式对测试很有用。例如,你可以在短时间内启用这种网络模式以模拟拔掉网线的情况。当你禁用 "Not Attached "模式切换到另一种网络模式时,网络连接又变得可用。你还可以检查DHCP客户端是否能正确获得IP地址,应用程序是否能在连接中断或丢包后恢复下载,等等。

除了使用 "Not Attached "网络模式外,你也可以使用任何其他网络模式,并使用勾选 "电缆连接 "复选框的方式模拟"Not Attached "网络模式的效果。当虚拟机处于运行状态时,你可以勾选/不勾选该复选框(见上面的屏幕截图)就可以达到类似"Not Attached "网络模式的效果。不要忘记点击 "确定 "来使虚拟机网络配置的生效。

2、NAT

这种网络模式是虚拟网络适配器的默认启用模式。虚拟机上的操作系统可以通过使用虚拟NAT(网络地址转换)设备访问物理局域网(LAN)中的宿主机。虚拟机上的操作系统也可以访问外部网络,包括互联网。当VirtualBox网络使用NAT网络模式的时候,宿主机或其所在局域网的其他服务器不能直接访问虚拟机。这种默认的网络模式对于只使用虚拟机访问互联网的用户来说是足够的。虚拟机网络适配器的IP地址是通过DHCP获得的,在这种网络模式下使用的网络IP地址不能在GUI中改变。 VirtualBox有一个内置的DHCP服务器和NAT引擎。一个虚拟NAT设备使VirtualBox宿主机的物理网络适配器作为外部网络接口。在NAT模式下使用的虚拟DHCP服务器的默认地址是10.0.2.2(这也是虚拟机的默认网关IP地址)。网络掩码是255.255.255.0。如果您将2个或多个虚拟机的网络适配器配置为使用NAT模式,每个虚拟机将在一个隔离网络的虚拟NAT设备后获得一个10.0.2.15的IP地址。每个虚拟机的默认网关是10.0.2.2。在VirtualBox中,当使用NAT模式时,多个虚拟机的IP地址相同,如下图:


在VBoxManage中打开虚拟机的NAT模式可以执行如下命令:

VBoxManage modifyvm VM_name --nic1 nat

这里,VM_name是虚拟机的名称,nic1是虚拟网络适配器的号码,nat是你设定的VirtualBox网络模式。

端口转发可以在VirtualBox虚拟机网络设置窗口中通过点击端口转发按钮进行配置(见上面的截图)。关于在VirtualBox网络设置中配置端口转发的详细信息,你可以在下面的网络模式部分之后找到。

3、NAT网络

这种模式类似于你用于配置路由器的NAT模式。如果你对多个虚拟机使用NAT网络模式,它们可以通过网络相互通信。虚拟机可以访问物理网络中的其他主机,也可以访问外部网络,包括互联网。任何来自外部网络的机器以及宿主机所连接的物理局域网的机器都不能访问被配置为使用NAT网络模式的虚拟机(类似于你配置路由器从家庭网络访问互联网时的情况)。

使用NAT网络模式时,你不能从宿主机访问客机(除非你在全局VirtualBox网络设置中配置了端口转发)。一个内置的VirtualBox NAT路由器使用VirtualBox主机的物理网络接口控制器作为外部网络接口(和NAT模式一样)。


网络地址和名称可以在VirtualBox首选项(文件>首选项)中更改。在首选项窗口的左窗格中,选择网络来访问VirtualBox网络设置,然后双击你现有的NAT网络来编辑设置(你也可以通过点击+或x图标添加一个新的网络或删除一个现有的网络)。


在弹出的对话框里可以启用或停用DHCP、IPv6以及配置端口转发等功能。

NAT网络的默认地址是10.0.2.0/24。默认的网关IP地址是10.0.2.1(x.x.x.1的ip模版通常被用于设置默认网关IP),比如,如果你在virtualbox中配置了基于NAT网络模式的虚拟网络,设置了192.168.22.0/24的网络地址,则这个网络的网关地址会是192.168.22.1。

在NAT网络模式下,你不能改变网关的IP地址,也不能改变由DHCP服务器分配的IP地址范围。类似的,DHCP服务器的IP地址默认是10.0.2.3(使用x.x.x.3的模版)。下面是一个运行在virtualbox中基于win7系统的虚拟机的NAT网络模式下IP地址的配置情况:


如果你不想使用virtualbox的GUI界面编辑网络设置,你可以通过以下命令增加一个新的NAT网络:

VBoxManage natnetwork add --netname natnet1 --network “192.168.22.0/24” --enable

这里natnet1是NAT网络的名称,192.168.22.0/24是NAT网络的地址。

如果你想配置虚拟机网络适配器以便能通过VBoxManage使用NAT网络模式,可以运行以下命令:

VBoxManage modifyvm VM_name --nic1 natnetwork

这里nic1是第一个虚拟网络适配器(网络控制接口),natnetwork是VirtualBox网络模式的名称,VirtualBox网络模式的名称选项有:none, null, nat, natnetwork, bridged, intnet, hostonly, generic。应用这些设置前需要先关闭虚拟机。

端口转发是另外一个可以从这个窗口访问和配置的选项。端口转发可以用来配置从宿主机以及与宿主机同一物理网络的其他主机访问虚拟机内操作系统上运行的服务的路径(详见下文)。

正如你所看到的,在VirtualBox GUI中,NAT模式和NAT网络模式的端口转发设置的位置是不同的。NAT模式的端口转发设置在VM > 设置 > 网络中可用,而NAT网络模式的端口转发设置可以在文件 > 首选项 > 网络中配置。这是因为NAT模式的端口转发规则对每个虚拟机来说是单独的,而NAT网络模式的端口转发规则对多个虚拟机来说是共同的,这些虚拟机的适配器都连接到相应的NAT网络。请参阅下面的 "端口转发 "部分中关于配置端口转发的详细信息。

4、桥接适配器

该模式用于将虚拟机的虚拟网络适配器与VirtualBox主机的物理网络适配器相连。虚拟机的虚拟网络适配器使用主机网络接口进行网络连接。简单地说,虚拟网络适配器直接发送或接收网络数据包,不使用额外的路由。

桥接网络模式使用一个特殊的网络过滤器驱动程序,以过滤来自主机的物理网络适配器的数据。这种网络模式下,宿主机所在的物理本地局域网的服务器都能独立对等地访问跑在虚拟机上的服务器。

在VirtualBox中使用桥接网络模式时,你可以从虚拟机访问宿主机、宿主机所在物理网络的其他主机以及外部网络,包括互联网。虚拟机也可以被同一物理局域网中的宿主机以及其他主机(或虚拟机)所访问。如果你在宿主机上有多个物理网络适配器,你应该在VirtualBox网络设置中选择正确的适配器。

在下面的截图中,你可以看到两个物理网络适配器--以太网适配器和Wi-Fi适配器。如果你对无线网络适配器使用桥接模式,你就不能在虚拟机操作系统中使用该Wi-Fi适配器的底层特性。例如,你不能选择要连接的Wi-Fi网络,启用监控模式等。相反,你需要连接到宿主机上的Wi-Fi网络。如果你必须在虚拟机的客户操作系统中使用Wi-Fi适配器的所有功能,请使用USB Wi-Fi适配器和USB Pass-through功能,详细说明见Kali Linux的博文。


在 VirtualBox 中,使用桥接模式时,虚拟机的虚拟网络适配器的 IP 地址可以与宿主机的物理网络适配器的 IP 地址属于同一个网段。如果物理网络中有DHCP服务器,虚拟机的虚拟网络适配器将在桥接模式下自动获得IP地址(如果在虚拟机操作系统的网络接口设置中设置了自动获得IP地址)。因此,在桥接模式下运行的虚拟网络适配器的默认网关与主机的默认网关相同。让我们看看一个有IP地址的简单例子。

  • 物理网络的地址段是:10.10.10.0

  • 物理网络的默认网关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

mpty-paragraph" style="margin-top: -0.8em; margin-bottom: -0.8em; color: rgb(25, 27, 31); font-family: -apple-system, BlinkMacSystemFont, "Helvetica Neue", "PingFang SC", "Microsoft YaHei", "Source Han Sans SC", "Noto Sans CJK SC", "WenQuanYi Micro Hei", sans-serif; font-size: medium; text-wrap: wrap; background-color: rgb(255, 255, 255);">


有时你可能发现物理网络中有多个网关。你可以通过一个网关将宿主机接入某个必要的网络,然后使用另一个网关将虚拟机接入其他的网络。你也可以修改虚拟机的路由表,使用两个网关接入到合适的网络。正如你所见,桥接网络模式是Virtualbox网络设置中非常强大的选项,可以应用在许多的场景下。

混杂模式。这种模式允许网络适配器中转所有接收到的流量,无论流量是寻址哪个适配器的。在正常模式下,网络适配器只接收包括该特定网络适配器的MAC地址作为目标地址的帧。在正常模式下,被寻址到与所选适配卡的MAC地址不同的MAC地址的帧(当流量不是广播时)会被丢弃。混杂模式使一个物理网络适配器有多个MAC地址成为可能,允许所有传入的流量通过主机的物理网络适配器,到达虚拟机的虚拟网络适配器,该虚拟机有自己的MAC地址,并被认为是宿主机物理适配器上的另一个mac地址,即使该流量并不是寻址该特定虚拟机的虚拟网络适配器。

大多数无线网络适配器不支持混杂模式。与Wi-Fi适配器的桥接是通过以下方式完成的--VirtualBox在必须传送到虚拟机的虚拟网络适配器的以太网帧头中替换了适当的MAC地址(该流量必须使用主机Wi-Fi适配器的MAC地址)。混杂模式对网络测试和安全审计很有用。你可以在VirtualBox网络设置中启用混杂模式,并用嗅探器监测网络流量。使用混杂模式有三个选项:

1、Deny。

任何不以虚拟机的虚拟网卡为目的地的流量都将被屏蔽。这个选项是默认设置。

2、Allow VMs。

除了去向或来自于虚拟机的流量,其他流量都将被屏蔽。

3、Allow ALL。

这一模式下没有限制,虚拟机的网卡可以看到所有进来、出去的流量。混杂模式不仅可以用于桥接网络模式,也可以用于NAT网络模式,Internal网络模式和Host-only适配器模式。

5、Internal Network

VirtualBox中的虚拟机网卡被配置成Internal network模式的时候,他们会被接入一个隔离的虚拟网络。在这个隔离的虚拟网络中,虚拟机之间可以互相通信,但是他们不能和Virtualbox中的宿主机通信,不能和宿主机所在的局域网中的其他主机通信,也不能外部网络通信。宿主机或其他设备可以访问接入到Internal Network中的虚拟机。Virtualbox中的Internal network可以用来模拟真实网络。

例如,你可以创建3个虚拟机,每个虚拟机都有一个连接到internal network的虚拟网络适配器(适配器1)。这些网络适配器的IP地址是被定义为VirtualBox internal network的子网中的IP(你应该手动定义子网)。其中一个虚拟机(VM1)也有2个虚拟网络适配器,第2个网络适配器被配置为在NAT模式下运行。VM1虚拟机被配置为一个路由器(创建路由器的最佳解决方案之一是安装Linux和配置IPTABLES,但在VirtualBox网络测试的情况下,第一次可以使用更简单的路由解决方案)。如果 VM1 运行internal network模式下的网络适配器的 IP 地址在 VM2 和 VM3 的网络设置中被设置为网关, 那么VM2 和 VM3 就可以访问外部网络。这个例子的网络配置如下:

VM1:IP地址-192.168.23.1(internal network模式);10.0.2.15(NAT模式);网关10.0.2.2(Virtualbox 内置NAT设备的IP地址)

VM2:IP地址:192.168.23.2(internal network),网关-192.168.23.1VM3:IP地址:192.168.23.3(internal network),网关-192.168.23.1

VirtualBox internal network 子网设置:192.168.23.0

详见下图:


注意:您也可以部署这样的虚拟基础设施来进行防火墙规则测试,但在连接外部网络时,更好的方案是为VM1的第2个虚拟网络适配器设置桥接模式而不是NAT模式。

6、Host-only Adapter

这种网络模式用于在宿主机和虚拟机之间进行通信。一个虚拟机可以与连接到host-only网络的其他虚拟机通信,也可以与宿主机通信。VirtualBox宿主机可以访问所有连接到host-only网络的虚拟机。


VirutalBox Host-only虚拟网络适配器在宿主机的操作系统中创建,在Host-only网络中使用,你可以在文件-宿主机网络管理菜单中编辑这个virtual box网络的设置,如下:


在我们的例子中,Host-only网络的默认网络段是192.168.56.0/24,宿主机上的虚拟网络适配器的IP地址是192.168.56.1。你可以在适配器标签中手动编辑这些IP地址。可以通过勾选适当的复选框来启用或禁用DHCP服务器。在DHCP服务器选项卡中,你可以设置DHCP服务器的IP地址、网络掩码以及DHCP发布的IP地址范围。


虚拟机的虚拟网络适配器在其IP配置中没有网关,因为host-only模式不允许你连接到host-only网络以外的任何设备。也可以创建1个以上的VirtualBox host-only网络适配器,以便使用不同的host-only网络--只需按下“创建”按钮即可。如果不再需要host-only网络,只需选择适配器并点击删除即可。

7、Generic Driver

这种网络模式允许你共享通用网络接口,用户可以选择一个扩展包中分发的或VirtualBox自带的合适的驱动。

Generic Driver模式有两个可用的子模式:UDP隧道和VDE(虚拟分布式以太网)网络。

UDP隧道。运行在不同宿主机上的虚拟机可以通过使用现有的网络基础设施进行透明的通信。

VDE网络。虚拟机可以连接到 Linux 或 FreeBSD 主机上的虚拟分布式交换机。你需要从源代码编译VirtualBox来使用VDE网络,因为标准的VirtualBox包不包括这个功能。

8、VirtualBox网络模式比较

为了方便,我们使用下边对Virtualbox支持的各网络模式进行了一个汇总总结:


9、端口转发

端口转发是将寻址向某个IP地址和端口的流量转发到另一个不同的IP地址和端口的处理操作。服务器和其他路由设备上可以使用专门应用程序来实现端口转发。端口转发最常用的一个应用场景是为隐藏在NAT后边的特定的网络设备提供外部网络访问入口。

配置完端口转发规则后,客户端可以通过连接路由器(或主机)外部IP地址和专用端口来访问特定的服务。网络包会首先被路由器上的一个应用程序所截获,然后这个应用程序会读取网络包头中的目的IP地址和端口号(IP包头,含有TCP或UDP段的包头)。如果包头中目的IP地址和端口号的组合能与端口转发规则集合中的某个条件匹配上,路由器程序就会重写包头中的信息(IP地址和/或端口号),并根据端口转发规则将包/段发送给另一个网络接口。

默认情况下,VirtualBox宿主机和其他局域网中的主机不能访问网络适配器被设置成NAT或NAT Network模式的VirtualBox虚拟机,但是VirutalBox提供了内置的端口转发特性支持了这种类型的访问。

四、Example 1 – SSH

访问现在让我们考虑配置连接到VirtualBox虚拟机的端口转发的示例,使用的例子是连接到运行在Ubuntu Linux虚拟机上的SSH服务器,该虚拟机通过NAT模式连接到网络。你可以在这篇博文中阅读如何在VirtualBox上安装Ubuntu。(nakivo.com/blog/install

输入数据:

宿主机IP地址:10.10.10.72(一个物理的NIC)

Ubuntu虚拟机IP地址:10.0.2.15(NAT模式)

用户名称:user1

1、在Ubuntu虚拟机上安装SSH服务器apt-get install openssh-server

2、编辑SSH服务器配置文件vim /etc/ssh/sshd_config

3、去掉下边语句的注释,打开使用密码认证的功能PasswordAuthentication yes

4、重启SSH进程服务/etc/init.d/ssh restart

5、确认SSH服务器正常工作并尝试从localhost(Ubuntu虚拟机)连接到SSH服务器

6、如果一切顺利,你就可以开始在virtualbox中配置端口转发了正如你所记得的,你应该打开虚拟机设置,选择网络部分。选择被配置为在NAT模式下工作的虚拟网络适配器,展开高级设置,点击端口转发按钮。点击 "+"图标,在虚拟机的VirtualBox网络设置中添加一个新的端口转发规则,如下图:

SSH服务器默认监听22端口。让我们创建一个规则允许你将virtual box宿主机8022端口的连接请求转发到Ubuntu虚拟机SSH服务器监听的22端口。首先,你可以创建一条规则允许来自Virtualbox宿主机的连接,如下图:

VirtualBox GUI中配置端口转发规则的窗口视图如下图所示:

在Virtualbox的宿主机上打开SSH客户端(如windows下的PuTTY)并连接127.0.0.1的8022端口。如果你创建了一个类似的端口转发规则,其中将定义VirtualBox宿主机的物理网络适配器的真实IP地址,而不是localhost的IP地址(127.0.0.1),那么宿主机所在物理网络中的其他主机将能够通过SSH连接到VirtualBox主机的8022端口来访问Ubuntu 虚拟机。在这个例子中,VirtualBox宿主机上的物理网卡的IP地址是10.10.10.72。

在你的virtualbox宿主机或同一局域网的其他主机上打开一个SSH客户端,连接到你的virtualbox宿主机IP的8022端口,你就可以访问virtualbox上的虚拟机了。

五、Example 2 – HTTP access

如果你想在你的虚拟机上部署一个Web服务器,并提供从外部访问你的网站,你可以添加另一个端口转发规则。让我们考虑如何配置该端口转发规则,以便从VirtualBox宿主机和连接到物理局域网(LAN)的其他机器访问部署在Ubuntu虚拟机上的网站。在这个例子中,使用Apache作为web服务器。首先,在Virtualbox上运行的Ubuntu虚拟机部署Apache软件。apt-get install apache2

默认情况下Ubuntu的ufw防火墙是关闭的。如果你Ubuntu虚拟机上的防火墙是打开的,要确保可以访问TCP80端口。安装完Apache后,在Ubuntu虚拟机上打开一个Web浏览器,输入http://127.0.0.1 访问apache的默认页面。如果一切顺利,我们将能看到Apache的默认页面。这意味着,现在你可以在VirtualBox网络设置中配置一个端口转发规则,用于访问Ubuntu虚拟机上托管的网站。打开端口转发设置窗口,进入虚拟机设置>网络>[选择你的适配器]>端口转发(与上述解释类似)。你可以通过以下方式添加一个新规则。

在宿主机或连接到物理网络的任何其他机器上打开Web浏览器,输入VirtualBox宿主机的IP地址和上面创建的端口转发规则中定义的端口:10.10.10.72:8080
在当前的例子中,10.10.10.72是VirtualBox宿主机的IP地址,8080是VirtualBox宿主机上监听的TCP端口。配置端口转发的结果显示在下面的屏幕截图上:

你也可以为通过RDP、FTP和其他协议访问虚拟机创建类似的规则。为虚拟网络适配器在NAT网络模式下工作的虚拟机配置端口转发的功能类似(见上面解释NAT网络模式的部分)。

六、结论

VirtualBox是一个强大的虚拟化解决方案,它很灵活,提供了广泛的网络设置。每个虚拟机最多可以使用8个虚拟网络适配器,每个网络适配器都可以被模拟成相应型号的真实英特尔和AMD网络接口控制器(NIC)。VirtualBox网络适配器设置允许你改变每个虚拟网卡的MAC地址,插入或拔出虚拟网线,并选择网络模式。为虚拟网络适配器设置网络模式是VirtualBox网络设置中最有趣和重要的部分之一。有六种网络模式,每一种都可以用于不同的使用情况。可以配置端口转发,以便外部服务器访问网络适配器以NAT或NAT网络模式运行的虚拟机。

今天的blog已经涵盖了VirtualBox的网络设置,但如果你想了解更多关于VirtualBox的信息,欢迎你查看我们关于VirtualBox使用、安装VirtualBox扩展包和更新VirtualBox的博文。你也可以阅读关于VirtualBox与VMware和Hyper-V比较的博文,其中也讨论了这些虚拟化平台的网络设置。

翻译自NAKIVO Blog ,原文地址:nakivo.com/blog/virtual




推荐本站淘宝优惠价购买喜欢的宝贝:

image.png

本文链接:https://www.hqyman.cn/post/7117.html 非本站原创文章欢迎转载,原创文章需保留本站地址!

分享到:
打赏





休息一下~~


« 上一篇 下一篇 »

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

请先 登录 再评论,若不是会员请先 注册

您的IP地址是: