854 Stimmen

Adressierung von localhost von einer virtuellen VirtualBox-Maschine aus

Ich habe einen lokalen Test-/Entwicklungsserver (HTTP, natürlich), der auf Port 8000 hört.

Ich arbeite mit Linux, also kann ich die Seite mit Internet Explorer 6, 7, 8 usw. testen. Ich führe eine virtuelle Maschine mit VirtualBox; ich muss auch sehen, wie es auf Firefox in einer Windows-Umgebung aussehen (Schriften zum Beispiel sind anders).

Auf meinem echten Rechner öffne ich die Website einfach über die URL http://localhost:8000 Wie kann ich diesen localhost von der virtuellen Maschine aus ansprechen?

Im Moment besteht meine Lösung darin, die IP-Adresse zu verwenden. Gibt es bessere Ideen?

55 Stimmen

Ich kann nicht glauben, dass das immer noch so mühsam ist. Ich benutze VB seit Jahren, und obwohl es um ein Haar einfacher geworden ist, ist es immer noch die größte Hürde, und die Netzwerkoptionen sind immer noch schwer zu verstehen, und es funktioniert immer noch nicht ohne weiteres für das, wofür die große Mehrheit der Benutzer es benutzen will. Wahrscheinlich benutzen Hunderttausende VB, um Websites (oder Anwendungen) für verschiedene Plattformen auf localhost zu testen. Es ist unglaublich, wie viel Zeit und Ärger man sich sparen kann, wenn man diesen speziellen Aspekt der Software verbessert.

1 Stimmen

Siehe auch die gleiche Frage auf superuser.com: superuser.com/questions/310697/

22voto

William Punkte 337

Sie müssen die Hosts-Datei auf Ihrem virtuellen Windows-Rechner auf die gleiche Weise bearbeiten, wie Sie es für Ihren lokalen Host-Rechner tun:

C:\WINDOWS\system32\drivers\etc\hosts

Und verknüpfen Sie Ihre virtuellen Hosts mit 10.0.2.2. Wenn Sie nur localhost verwenden, ersetzen Sie

127.0.0.1 localhost mit 10.0.2.2 localhost

Zum Beispiel:

10.0.2.2 localhost
10.0.2.2 local.site1.com
10.0.2.2 local.site2.com

Dadurch wird Ihre virtuelle Maschine angewiesen, für diese Domänennamen auf Ihren lokalen Rechner zu verweisen.

0 Stimmen

Thx, dies half in meinem Fall (Ausführung von lokalen Websites in Docker mit nginx) - Zugriff auf die IP direclty (10.0.2.2) nur gibt nginx Fehler.

10voto

Craicerjack Punkte 5870

Durch eine Kombination von verschiedenen Maßnahmen konnte ich die Dinge schließlich zum Laufen bringen. Ich betreibe einen Flask-Server auf macosx.

In meiner Windows-VM habe ich die hosts-Datei bearbeitet:

  • Führen Sie Notepad als Administrator aus
  • öffnen C:\windows\system32\drivers\etc\hosts
  • diesen Eintrag hinzufügen: 10.0.2.2 outer

Fahren Sie die VM herunter und starten Sie meinen Mac in VirtualBox:

  • Gehe zu VirtualBox > preferences > Network > Host-only Networks > + um ein Netzwerk hinzuzufügen vboxnet1
  • Gehe zu My_VM > settings > Network > Adapter 1 .
  • Wählen Sie Enable Network Adapter und setzen Attached to: a Bridged Adapter .
  • Dann setzen Sie Advanced > Promiscuous Mode: a Allow VMs .
  • Klicken Sie auf OK
  • Gehe zu My_VM > settings > Network > Adapter 1 .
  • Set Attached to: zurück zu NAT .

Dann ging ich zu Adapter 2

  • Set Attached to: a Host-only Adapter und wählen Sie das zuvor hinzugefügte Netz vboxnet1 .

Ich habe meinen Server auf meinem Mac gestartet, der unter 127.0.0.1:5000 und dieser war nun auf meiner vm unter http://10.0.2.2:5000

Mann, was für ein Albtraum, den IE auf dem Mac zu testen. Wie gibt es nicht einen einfacheren Weg?

1 Stimmen

Ich wünschte, ich könnte das tausendmal hochstufen. Dies war das Einzige, was funktionierte, nachdem ich einfachere Methoden wie das Bearbeiten der Hosts-Datei und die Verwendung von Standard-NAT-Einstellungen gefunden hatte - keiner dieser Beiträge löste mein Problem. Ich verwende MacOS Sierra mit einer VM von IE11 auf Win81 von developer.microsoft.com/de-us/microsoft-edge/tools/vms für den Fall, dass diese Kombination jemandem hier hilft.

0 Stimmen

FWIW, ich habe versucht, alle diese Einstellungen zurückzusetzen und dann VirtualBox zu entfernen und neu zu installieren und die VMs von Microsoft zu importieren. Ich startete meinen Rails-Server mit rails s -b 127.0.0.1 und griff darauf von allen VMs unter http://10.0.2.2:3000 und es hat funktioniert. Ich frage mich, ob die Einstellungsänderung von oben irgendwie verweilte um auch nach Rolling alle es zurück.

1 Stimmen

Dies war nicht ganz dasselbe für mich, vor allem die Schritte für Adapter 2, musste ich Nat Adapter Einstellung verwenden, um es zu sein vboxnet1 aber am Ende hat es funktioniert. Danke für die Hinweise!

4voto

Praveen Punkte 41

Ich habe das Problem durch Hinzufügen einer Portweiterleitung in den Virtualbox-Einstellungen unter Netzwerk gelöst. Host-IP: 127.0.0.1 Port: 8080 Gast-IP: Geben Sie eine beliebige IP für die Website an (z.B. 10.0.2.5) Port: 8080 Jetzt vom Gastrechner aus zugreifen http://10.0.2.5:8080 mit IE

3voto

Nico Punkte 3281

In der virtuellen Box, wie oben erwähnt, können Sie diese Zeile in der Datei hosts hinzufügen

10.0.2.2   outer

aber wenn Sie keine Administratorenrechte in Ihrer VM haben, verschieben Sie die Hosts-Datei einfach auf den Desktop, fügen Sie die Zeile 10.0....outer hinzu, speichern Sie die Datei und verschieben Sie sie an ihren ursprünglichen Ort.

2voto

Joel Chu Punkte 668

In der Virtual Box

  1. Stellen Sie Ihr Netzwerk auf Bridge-Vernetzung ein
  2. Gehen Sie zu Erweitert und stellen Sie Promiscuous Mode ein: Alle zulassen

Wenn Sie von Node.js aus arbeiten, setzen Sie die IP-Adresse auf 0.0.0.0, dann suchen Sie Ihre eigene IP-Adresse, zum Beispiel cmd:ipconfig --> 10.0.1.3

Geben Sie diese Adresse zusammen mit der Portnummer ein. Und es wird funktionieren.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X