从主机访问 Virtual Box 机器

从主机访问 Virtual Box 机器

我的主机操作系统是 Windows,我正在使用Oracle 虚拟盒。我有 3 个虚拟机:卡利Linux可利用的Windows 10

问题1: 我有一个托管在 Metasploitable 中的网站。如果我使用 NAT 网络,那么我就能够使用 Kali Linux 和 Windows 10 中的 IP 访问该网站。

现在我想从主机访问虚拟机中托管的站点也一样。

长话短说,我想创建一个网络,以便我可以从虚拟机访问主机,反之亦然。

问题2:我还想与我的虚拟机共享主机的互联网(LAN 和 WIFI)

答案1

您需要将虚拟机设置为“桥接”网络。这将为每个虚拟机提供一个唯一的 IP,网络上的任何计算机都可以连接到该 IP。

下面是与此相关的虚拟盒手册的链接和讨论桥接网络的文章的摘录。

https://www.virtualbox.org/manual/ch06.html

使用桥接网络时,VirtualBox 使用主机系统上的设备驱动程序来过滤来自物理网络适配器的数据。因此,此驱动程序称为“网络过滤器”驱动程序。这允许 VirtualBox 拦截来自物理网络的数据并将数据注入其中,从而有效地在软件中创建一个新的网络接口。当客户机使用这种新的软件接口时,主机系统会认为客户机使用网络电缆物理连接到接口:主机可以通过该接口向客户机发送数据并从中接收数据。这意味着您可以在客户机和网络的其余部分之间设置路由或桥接。

为了实现此功能,VirtualBox 需要主机系统上的设备驱动程序。VirtualBox 2.0 和 2.1 完全重写了桥接网络的工作方式,具体取决于主机操作系统。从用户的角度来看,主要区别在于,在任何受支持的主机操作系统上都不再需要复杂的配置。[31]

注意:即使在桥接网络的 Linux 上不再需要 TAP,您仍然可以使用 TAP 接口进行某些高级设置,因为您可以将 VM 连接到任何主机接口 - 这也可以是 TAP 接口。

要启用桥接网络,您只需打开虚拟机的“设置”对话框,转到“网络”页面,然后在“连接到”字段的下拉列表中选择“桥接网络”。最后,从页面底部的列表中选择所需的主机接口,该列表包含系统的物理网络接口。例如,在典型的 MacBook 上,这将允许您在“en1:AirPort”(无线接口)和“en0:以太网”(代表带有网线的接口)之间进行选择。

注意:桥接到无线接口与桥接到有线接口的方式不同,因为大多数无线适配器不支持混杂模式。所有流量都必须使用主机无线适配器的 MAC 地址,因此 VirtualBox 需要替换传出数据包以太网报头中的源 MAC 地址,以确保将回复发送到主机接口。当 VirtualBox 看到传入数据包的目标 IP 地址属于虚拟机适配器之一时,它会将以太网报头中的目标 MAC 地址替换为 VM 适配器的 MAC 地址并将其传递。VirtualBox 检查 ARP 和 DHCP 数据包以了解虚拟机的 IP 地址。

根据您的主机操作系统,应牢记以下限制:

在 Macintosh 主机上,使用 AirPort(Mac 的无线网络)进行桥接网络时功能会受到限制。目前,VirtualBox 仅支持通过 AirPort 的 IPv4 和 IPv6。对于其他协议(例如 IPX),您必须选择有线接口。

在 Linux 主机上,使用无线接口进行桥接网络时功能会受到限制。目前,VirtualBox 仅支持通过无线方式使用 IPv4 和 IPv6。对于其他协议(例如 IPX),您必须选择有线接口。

此外,已知在 Marvell Yukon II EC Ultra Ethernet NIC 上的 sky2 驱动程序提供的有线接口上将 MTU 设置为小于 1500 字节会在某些情况下导致数据包丢失。

某些适配器会在硬件中剥离 VLAN 标签。这不允许在 2.6.27 之前的 Linux 内核或 Linux 以外的主机操作系统上在虚拟机和外部网络之间使用 VLAN 中继。

在 Solaris 主机上,不支持使用无线接口。由于 Solaris 网络子系统的技术限制,使用 IPFilter 过滤来宾流量也不完全受支持。这些问题将在 Solaris 11 的未来版本中得到解决。

从 VirtualBox 4.1 开始,在 Solaris 11 主机(版本 159 及以上)上,可以将 Solaris 的 Crossbow 虚拟网络接口(VNIC)直接与 VirtualBox 一起使用,无需任何其他配置,除了每个 VNIC 必须专用于每个客户网络接口。

从 VirtualBox 2.0.4 开始到 VirtualBox 4.0,可以使用 VNIC,但有以下注意事项:

一个 VNIC 不能在多个来宾网络接口之间共享,即每个来宾网络接口必须有自己的、独有的 VNIC。

必须为 VNIC 和使用该 VNIC 的客户网络接口分配相同的 MAC 地址。

当在 VirtualBox 中使用 VLAN 接口时,必须根据 PPA-hack 命名方案命名它们(例如“e1000g513001”),否则客户机可能会收到意外格式的数据包。

使用桥接网络将使虚拟机在您的网络设备上显示为物理计算机,这将解决这两个问题。根据您的设置,您可能需要更改指向托管站点的链接的一些设置,因为它很可能会获得新的 IP。

编辑1:

很有可能,kali linux 不喜欢虚拟盒正在使用的驱动程序,或者 kali 没有与桥接适配器兼容的驱动程序。

相关内容