访问远程服务器上的虚拟盒

访问远程服务器上的虚拟盒

我有一个带有 1 个公共 IP 的远程服务器(ubuntu)。

我已经安装了无头 VirtualBox 并部署了机器。目前我可以通过服务器上运行的 VirtualBox 的 VRDE 服务器访问它,但我需要能够直接访问虚拟机...那么我该如何配置网络?据我所知,Virtual Box 不允许从外部访问它的 NAT,所以它只给我留下了桥接选项,但我只有一个外部 IP 可用。我有什么选择?

答案1

使用仅限主机网络。您向虚拟机的网络配置中添加一个接口,该接口充当交换机。默认情况下,它应该添加vboxnet0

您需要在您的机器上启用内核中的 ip4 转发:

sysctl -w net.ipv4.ip_forward=1

这应该足以允许虚拟机访问互联网。您可以使用 iptables 和 FORWARD 链过滤流量,如果您为每个虚拟机添加一个接口,您甚至可以按接口过滤并限制虚拟机之间的流量。这是最灵活的方法。而且您可以避免桥接。

使用 iptables 您可以将端口转发到本地虚拟机:

iptables -t nat -A PREROUTING -i eth+ -p tcp --dport 2222 -j DNAT --to 10.10.10.100:22

您的虚拟机在可通过端口从外部访问的10.10.10.100接口上的 IP 地址在哪里。您可以手动配置 IP,也可以在主机上使用它作为 DHCP 服务器。vboxnet02222dnsmasq

为您的虚拟机放入一个文件/etc/dnsmasq.d/virtualbox

dhcp-range=interface:vboxnet0,10.10.10.100,10.10.10.100,255.255.255.0,24h

这负责为虚拟机分配 IP 地址和网关 + DNS 信息。您也可以手动配置它,在这种情况下 DNS 和网关地址将是10.10.100.1。如果您熟悉 Linux 网络配置,您应该能够弄清楚这一点。

答案2

如果您配置了“仅主机”接口,VirtualBox 将使用主机上的虚拟接口。您可以定义到该接口的转发。

要使用仅主机接口,请启动 VirtualBox,然后从“文件”菜单中选择“首选项”。在出现的窗口中选择“网络”,然后按“添加”按钮。添加网络后,按右侧的“设置”按钮。在那里,您可以编辑虚拟网络设置。“IP 地址”将是该虚拟网络上的主机 IP 地址。

确保 DHCP 服务器选项已关闭。

完成后,按“确定”按钮。之后,您可以在客户计算机的网络偏好设置中选择“仅主机”。它将默认接口为您在上述步骤中创建的接口。

启动虚拟机。为其指定一个固定 IP 地址,并设置网关。您应该能够从主机 ping 通客户计算机的 IP 地址,反之亦然。

主机操作系统上会出现一个名为“vboxnet0”的新适配器。通过它,客户机计算机将可以访问,但只能从主机计算机访问(当然)。您可以像往常一样在主机计算机上配置端口转发,这样您就可以直接访问您的客户机。

相关内容