Verbinden Sie zwei VirtualBox-VMs mit einer Hardware-Maschine mit einer einzigen öffentlichen IP


2

Ich habe eine Hardware-Maschine mit Ubuntu 12.04 und einen Selenium-Server-Hub, der über eine öffentliche IP mit dem Internet verbunden ist. Auf diesem Computer werden zwei VirtualBox-VMs mit Selenium-Serverknoten und ein Webserver ausgeführt. Die Kommunikation zwischen dem Hub und den Knoten muss bidirektional sein, daher muss für VMs die Netzwerkverbindung auf Bridge eingestellt sein. Aber das funktioniert nicht, weil ich nur eine einzige öffentliche IP habe.

Gibt es eine Möglichkeit, ein virtuelles LAN zwischen den VMs und der Hardwaremaschine einzurichten, damit ich von der Hardwaremaschine aus auf die virtualisierten Webserver und Selenium-Server zugreifen kann?

Antworten:


1

Ja da ist. Irgendwie. Es ist ein bisschen unkomplizierter als in VMWare, aber es gibt.

Ich bin mir nicht sicher, ob Sie wollen, dass die beiden Gäste miteinander sprechen können. Wenn Sie das tun, werden Sie finden Hier ein guter Leitfaden, um das zu erreichen. Um Zugriff auf Ihre VMs zu erhalten, müssen Sie außerdem die Portweiterleitung auf dem Hostcomputer aktivieren. Wieder werden Sie finden Hier die entsprechende Anleitung. Sobald Sie wissen, wonach Sie suchen müssen, werden Sie feststellen, dass dies nur zwei von vielen ausgezeichneten Führern sind, die Sie dort finden können.


Vielen Dank! Jetzt habe ich ein anderes Problem. Ich kann auswählen Host-only Adapter aber die Name: Auswahlfeld enthält keine Werte. Und anscheinend muss ich eine Schnittstelle zum Anschließen auswählen.
lucassp

Egal, ich habe es gefunden.
lucassp

@lucassp Außerdem sollten Sie bedenken, dass Sie die Maschine immer über "Reverse-SSH-Tunnel" hinter NATs erreichen können. Es gibt viele Anleitungen bei Google, wie es geht. Mein zusätzlicher Rat ist, ein Dienstprogramm namens autossh zu verwenden, das automatisch neu gestartet wird, wenn die Verbindung unterbrochen wird. Die Konfiguration auf Server und Client besteht aus zwei Einzeilern, ziemlich einfach.
MariusMatutiae

Es scheint, dass ich ein anderes Problem habe: Die Selenium-Serverknoten stellen eine korrekte Verbindung zum Selenium-Server-Hub auf dem Host-Computer her, aber der Selenium-Server-Hub versucht immer, die Verfügbarkeit der Knoten mit NAT IP 10.0.0.x zu überprüfen, und dies schlägt fehl , Na sicher. Wenn ich NAT deaktiviere, ist alles in Ordnung, aber ich habe kein Internet mehr auf den VMs. Haben Sie eine Idee, wie Sie das Problem beheben können?
lucassp

Einen weiteren Adapter zu den VMs hinzufügen? Eins mit Nat, eins ohne?
MariusMatutiae

1

Der Fehler, den Sie gerade haben, ist, dass der Gast mit dem Host sprechen kann, aber die falsche IP-Adresse für den Rückruf registriert. Mit localhost / 127.0.0.1 können Sie Selenium-Knoten- und Grid-Instanzen anweisen, sich auf die lokale Portweiterleitung zu verlassen.

Konfigurieren Sie die Gast-VM für die Verwendung des NAT-Netzwerks und fügen Sie eine Portweiterleitung für Port 5555 und Port 4444 hinzu. Lassen Sie dabei beide IP-Adressen leer oder setzen Sie sie auf 0.0.0.0. Möglicherweise möchten Sie auch Port 80 weiterleiten, damit Ihr Host den Gast sehen kann Webserver. Bei Verwendung von NAT ist die IP-Adresse 10.0.2.2 auf dem Gastcomputer die IP-Adresse für die Kommunikation mit dem Hostcomputer. Hier sind die Befehle:

Host-Maschine als Hub

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

Gastmaschine, als Knoten

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

Wenn Sie möchten, dass mehrere VM-Maschinen miteinander kommunizieren, richten Sie jede über eine sekundäre Netzwerkverbindung ein, und stellen Sie "Internes Netzwerk" mit dem Namen "vboxnet0" oder ähnlich ein. Geben Sie jedem von ihnen eine statische IP-Adresse, z. B. 192.168.1.10 (Maschine 1) und 192.168.1.11 (Maschine 2).

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.