Frage Herstellen einer Verbindung mit dem Host-Computer über ein VirtualBox-Gastbetriebssystem?


Ich möchte im Wesentlichen von dem Gast in VirtualBox auf meinen Host-Computer zugreifen. Gibt es eine IP-Adresse für meinen Gastgeber, die ich vom Gast verwenden kann? Sind zusätzliche Schritte erforderlich, um dies einzurichten? Ich möchte auf die Apache-, FTP- und SSH-Dienste meines Hosts zugreifen.


186
2017-07-14 22:53


Ursprung


Schwierig zu lösen ohne Hinweis darauf, welche Netzwerkkonfiguration Ihr Gast tatsächlich hat. Einige erlauben keinen Zugriff auf den Host. Probieren Sie die Standard-Gateway-Adresse des Gasts aus. - Turbo J
Stellt sich heraus, dass ich es über mein Standardgateway bei 10.0.2.2 erreichen kann. - Naftuli Kay
Verbunden: stackoverflow.com/q/19933550/1157054  stackoverflow.com/q/16244601/1157054 - Ajedi32


Antworten:


Diese Antwort bezieht sich fast auf ein Gastbetriebssystem in VirtualBox; Sie müssen nur die Netzwerk-Gateway-Adresse auf dem Gastbetriebssystem verwenden, um von einem Gastbetriebssystem eine Verbindung zum Host-Betriebssystem herzustellen.

In der Standardkonfiguration von Vagrant sollten Sie in der Lage sein, Ihren Host über das Standardgateway zu erreichen.

Auf Windows-basierten Gästen können Sie diese IP-Adresse leicht ermitteln, indem Sie den folgenden Befehl ausführen:

ipconfig

Es sollte so etwas ausgeben:

Windows IP Configuration

Ethernet adapter Local Area Connection:

        Connection-specific DNS Suffix  . :
        IP Address. . . . . . . . . . . . : 10.0.2.15
        Subnet Mask . . . . . . . . . . . : 255.255.255.0
        Default Gateway . . . . . . . . . : 10.0.2.2

In diesem Beispiel kann der Gast den Hostcomputer erreichen 10.0.2.2.


Auf Unix / Linux-basierten Gästen verwenden Sie den folgenden Befehl:

netstat -rn

Es sollte so etwas ausgeben:

Kernel IP routing table
Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
192.168.1.0     0.0.0.0         255.255.255.0   U         0 0          0 wlan0
169.254.0.0     0.0.0.0         255.255.0.0     U         0 0          0 wlan0
0.0.0.0         192.168.1.1     0.0.0.0         UG        0 0          0 wlan0

In diesem Beispiel kann der Gast den Hostcomputer erreichen 192.168.1.1.


236
2017-07-15 01:49



Irgendeine Idee, warum Konnektivität schrecklich langsam sein würde, wenn Sie das Standardgateway gemäß Ihrer Antwort anschließen? - Ben Swinburne
Dies schien bei mir nicht zu funktionieren (Ubuntu 12.04, Vagrant 1.0). Das Standard-Gateway im Gast wurde als angezeigt 10.0.2.2und ein nmap dieser IP ist fehlgeschlagen. 192.168.33.1 scheint die richtige IP zu sein. (Ich hatte config.vm.network :hostonly, "192.168.33.52" in meiner Konfig.) - Ajedi32
Eigentlich egal. Es hat funktioniert. nmap funktionierte einfach nicht aus irgendeinem Grund; nicht sicher warum. Ich könnte mich immer noch mit Diensten verbinden, die auf dem Host von dieser IP laufen, obwohl nmap sie nicht zeigte. - Ajedi32
netstat -rn auf CentOS 7.2 zeigte Docker 1.11 a 172.17 Adresse als mein Gateway, aber diese IP passte nicht zu meinem Host. Es stellt sich heraus, dass 10.0.2.2 hat getan. - Spencer Williams


Der Zugriff auf den Webserver des Host-Computers vom Gast aus ist einfach. Dies kann leicht mit zwei Methoden erfolgen. Mach zuerst folgendes

  • Gehe zu Geräte und wählen Sie Netzwerkadapter... 
  • Überprüfen Sie in den Adaptereinstellungen nach Verbunden mit.
  • Wenn der Wert ist NAT, mach folgendes

  • Das Standardgateway beim Einrichten von Virtual Box ist generell 10.0.2.2 als Standardwert Wenn Sie nichts geändert haben, wird dies funktionieren. Aber wenn du es geändert hast und der Gast dich maschinell bearbeitet hat laufen ist Fenster Führen Sie den folgenden Befehl aus und suchen Sie den Standardwert Tor

    ipconfig /all

    Wenn Sie eingeschaltet sind Linux, Unix oder Mac OS, Führen Sie den folgenden Befehl aus Hole es

    netstat -rn | grep 'default' | awk '{print $2}'

  • Rufen Sie den Webbrowser auf, geben Sie dieses Standardgateway ein und drücken Sie die Eingabetaste. Auf den Webserver kann zugegriffen werden.

  • Wenn der Wert ist Überbrückter Adapter, mach folgendes
    • finde die IP-Adresse von Host und Gast
      • Wenn Sie auf Windows sind, führen Sie ipconfig und bekomme die IP-Adresse
      • Wenn Sie mit Linux, Unix oder Mac OS arbeiten, führen Sie diese aus ifconfig | grep 'inet' und bekomme IP-Adresse
      • Die IP Adresse ist wie 192.168.1.1
    • Wenn Sie auf den Host zugreifen möchten, führen Sie den Browser in guest aus und geben Sie die IP-Adresse des Hosts ein
    • Wenn Sie auf den Gast zugreifen möchten, führen Sie den Browser im Host aus und geben Sie die IP-Adresse des Gastes ein

29
2017-07-14 12:27





Eine andere Möglichkeit besteht darin, ein virtuelles Netzwerk vom Typ "Host" zu verwenden. Das gibt Ihnen eine Schnittstelle in dem Gastbetriebssystem mit einer Adresse in einem lokalen Sub-Netz anders von den Subnetzen der "äußeren Welt", auf denen sich Ihr Host-Rechner befindet. Damit dies funktioniert, müssen Sie einige Dinge beachten:

  • Ihre VM hat einen "Nur-Host" -Adapter konfiguriert.
  • Ihre Host-Dienste müssen alle lokalen Adapter abhören oder zumindest diejenigen, mit denen Sie in Kontakt treten können.
  • Ihr Host erhält seinen eigenen virtuellen Adapter, und Sie werden seine IP-Adresse herausfinden und sie der "hosts" -Datei in Ihrem Gastbetriebssystem hinzufügen müssen (das funktioniert jedoch für das Gastbetriebssystem; unter Windows XP ist es nur das " Hosts "Datei in C begraben: / WINDOWS / system32 / drivers / etc). Geben Sie ihm einen Namen, den Sie für den Hostnamen des Hosts verwenden möchten.

Sobald Sie dies getan haben, sollten Sie in der Lage sein, den Host von der VM über den Namen zu "sehen", den Sie in der Host-Datei codiert haben.

Zum Beispiel bekomme ich auf meinem Ubuntu 11.04-Host eine virtuelle "vboxnet0" -Schnittstelle auf 192.168.56.1. Die Adapter in den Maschinen ergeben etwas wie 192.168.56.101. Ich muss nicht gehen im zu meinen VMs, aber ich gehe davon aus, dass dies über eine symmetrische Änderung an der Host-Datei des Hosts möglich wäre. ich füge hinzu

192.168.56.1 mymachine

zu den Host-Host-Dateien des Gastes, und sie können (zum Beispiel) den Web-Server meines Host-Rechners sehen

http://mymachine/whatever

Sie können natürlich sowohl Bridge- als auch Host-Only-Adapter einrichten.


8
2017-07-17 18:37





Sie können freigegebene Ordner in VirtualBox erstellen. Dadurch wird automatisch eine Netzwerkfreigabe innerhalb von Virtual Box erstellt, um auf Ordner in Ihrem Host-Betriebssystem zuzugreifen.

Hier ist ein anständiger Schritt für Schritt in einem Windows XP-Gastbetriebssystem:

http://www.giannistsakiris.com/index.php/2007/09/28/virtualbox-access-shared-folders-from-windows-xp-guest-os/


0
2017-07-14 23:08



So kann ich auf meinen Host unter / vboxsvr / ShareName zugreifen? - Naftuli Kay
Ja, Sie würden einen Ordner wie C: \ STUFF festlegen, der mit VirtualBox geteilt werden soll. Innerhalb von VirtualBox Guest OS können Sie zu diesem vboxserver gehen und auf die freigegebenen Ordner zugreifen. - kobaltz
Ich möchte den freigegebenen Ordner eigentlich nicht. Ich möchte eine IP-Adresse für meine Host-Maschine. Wenn ich es bekomme, möchte ich es verwenden, um Dienste auf meinem Host-Computer zu verwenden, dh: echo "GET /\r\n\r\n" | nc 192.168.100.100 80 (Senden Sie eine HTTP-GET-Anforderung vom Gast an meinen Hostcomputer.) - Naftuli Kay
In diesem Fall müssen Sie möglicherweise den Gastbetriebssystem-Netzwerkadapter auf eine Bridge einstellen. Dadurch wird eine IP-Adresse von Ihrem DHCP oder Router abgerufen. Sie könnten dann nativ auf Ihren Host-Computer über die IP-Adresse anstelle des freigegebenen VBox-Ordners zugreifen. - kobaltz


Hier ist eine andere Lösung zu diesem Problem, indem Sie eine zusätzliche Netzwerkschnittstelle verwenden und den für den Host bestimmten Datenverkehr für die Weiterleitung über eine zusätzliche Schnittstelle festlegen.


0
2018-03-28 15:12



Willkommen bei Super User! Es wäre nett um die wesentlichen Teile der Antwort hier einzubeziehen und den Link nur für die zukünftige Bezugnahme bereitzustellen. - slhck