将两个 VirtualBox VM 与具有单个公共 IP 的硬件机器连接起来

将两个 VirtualBox VM 与具有单个公共 IP 的硬件机器连接起来

我有一台运行 Ubuntu 12.04 的硬件机器和一个通过公共 IP 连接到互联网的 Selenium 服务器集线器。在那台机器上,我运行着两个运行 Selenium 服务器节点和一个 Web 服务器的 VirtualBox VM。集线器和节点之间的通信需要是双向的,因此 VM 需要将网络连接设置为桥接。但这行不通,因为我只有一个公共 IP。

有没有办法在虚拟机和硬件机器之间建立虚拟局域网,以便我可以从硬件机器访问虚拟化的 Web 服务器和 Selenium 服务器?

答案1

是的,有。有点。它比在 VMWare 中稍微不那么简单,但确实有。

我不确定你是否希望这两位客人能够互相交谈。如果你这样做,你会发现这里一个很好的指南来实现这一点。此外,要访问您的虚拟机,您必须在主机上启用端口转发。同样,您会发现这里相关指南。一旦您知道要寻找什么,您就会发现这些只是您可以找到的众多优秀指南中的两个。

答案2

您现在遇到的错误是,Guest 能够与 Host 通信,但注册了错误的回调 IP 地址。通过使用 localhost / 127.0.0.1,您可以告诉 Selenium 节点和网格实例依赖本地端口转发。

配置 Guest VM 以使用 NAT 网络,并为端口 5555 和端口 4444 添加端口转发,将两个 IP 地址留空或设置为 0.0.0.0 您可能还需要转发端口 80,以便您的主机可以看到 Guest Web 服务器。使用 NAT 时,在 Guest 计算机中,IP 地址 10.0.2.2 是与主​​机通信的 IP 地址。以下是命令:

主机作为集线器

java -jar selenium-server-standalone.jar -role hub -port 4444

客户机作为节点

java -jar selenium-server-standalone.jar -role node -host 127.0.0.1 -port 5555 -hub http://10.0.2.2:4444/grid/register

如果您希望多台虚拟机相互通信,请为每台虚拟机设置一个辅助网络连接,设置为“内部网络”,命名为“vboxnet0”或类似名称。然后为每台虚拟机指定一个静态 IP 地址,例如:192.168.1.10(机器 1)和 192.168.1.11(机器 2)。

相关内容