it-swarm.com.de

Adressierung von localhost von einer virtuellen VirtualBox-Maschine aus

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

Ich arbeite unter Linux, um die Seite in Internet Explorer 6, 7, 8 usw. zu testen. Ich starte eine virtuelle Maschine mit VirtualBox. Ich muss auch sehen, wie es in Firefox in einer Windows-Umgebung aussieht (beispielsweise unterscheiden sich Schriftarten).

In meiner realen Maschine öffne ich die Website einfach mit der URL http://localhost:8000. Wie adressiere ich diesen localhost von der virtuellen Maschine aus?

Im Moment ist mein Workaround die Verwendung der IP-Adresse. Irgendwelche besseren Ideen?

698
hasen

Googling hat dies aufgeschlagen: http://data.agaric.com/localhost-from-virtualbox-xp-install-ubuntu

Es schlägt vor, IP: http://10.0.2.2 zu verwenden, und es hat für mich funktioniert.

Also habe ich die hosts-Datei C:\windows\system32\drivers\etc\hosts bearbeitet und diesen Eintrag hinzugefügt:

10.0.2.2   outer

Wenn Sie mit IE8 testen, denken Sie daran, http:// in die Adressleiste zu schreiben. Das direkte Setzen der IP-Adresse funktioniert nicht.

Zum Beispiel:

http://10.0.2.2:3000/
879
hasen

mac OS

Ich verwende Virtual Box unter macOS (vormals OS X) und verwende Virtual Box, um IE unter Windows usw. zu testen.

Gehen Sie zu IE in der virtuellen Box und rufen Sie localhost über http://10.0.2.2 für localhost oder http://10.0.2.2:3000 für localhost:3000 auf. 

Ich habe die Netzwerkeinstellungen als NAT beibehalten, keine Bridge wie in meinem Fall oben vorgeschlagen. Sie müssen keine Konfigurationsdateien bearbeiten.

375
Jonathan Lin

Um dies unter OSX zu aktivieren, musste ich Folgendes tun:

  1. Fahren Sie Ihre virtuelle Maschine herunter.
  2. Gehen Sie zu VirtualBox Preferences -> Network -> Host-only Networks ->, klicken Sie auf das Symbol "+". OK klicken.
  3. Wählen Sie Ihre Box aus und klicken Sie auf "Settings" icon -> Network -> Adapter 2 ->. Wählen Sie in der Dropdown-Liste "Angeschlossen an:" die Option "Nur Host-Adapter". Ihr Netzwerk (vboxnet0) sollte standardmäßig darunter angezeigt werden. OK klicken.
  4. Wenn Sie Ihre Box erneut starten, sollten Sie unter http://10.0.2.2/ auf localhost zugreifen können.

Sie können mit localhost darauf verweisen und auf andere localhosted-Sites zugreifen, indem Sie deren Verweise zur hosts-Datei (C:\windows\system32\drivers\etc\hosts) wie folgt hinzufügen:

10.0.2.2    localhost
10.0.2.2    subdomain.localhost
77
spsaucier

Am wahrscheinlichsten ist das Netzwerk Ihrer virtuellen Maschine auf NAT eingestellt. Wenn Sie Ihr Netzwerk auf Bridged setzen, sollten Sie über den Hostnamen auf Ihren Host-Computer zugreifen können. Wenn Ihr Hostname beispielsweise "jsmith-Precision-7510" lautet und Sie http: // localhost: 3000/ öffnen möchten, können Sie diese Seite unter http: // jsmith-Precision anzeigen -7510: 3000/ .

Um Ihren Hostnamen zu finden, öffnen Sie ein Terminal/eine Konsole und führen Sie dann den Befehl hostname aus. Ihr Hostname wird in der nächsten Zeile ausgegeben.

In der VirtualBox-Dokumentation finden Sie Anweisungen zum Festlegen Ihrer Netzwerkeinstellungen auf Bridged.

49
Nick Haddad

Ich fand, dass 10.0.2.2:<port> funktioniert, aber nur wenn der Promiscuous-Modus richtig eingestellt ist. Nach der Installation meiner VM ging ich zu Einstellungen> Netzwerk> Adapter 1.

NAT ist standardmäßig eingestellt, und die Dropdown-Liste Promiscuous Mode ist deaktiviert. Ich habe von NAT zu Bridged Adapter gewechselt, wodurch das Dropdown-Menü Promiscuous Mode aktiviert wurde, und dann den Wert von "Deny" in "Allow VMs" geändert. Ich habe dann wieder auf NAT umgestellt, wodurch der Promiscuous-Modus wieder deaktiviert wurde, der neue Wert jedoch beibehalten wurde.

Nach nur dieser Änderung konnte ich meine VM starten und meine Host-Maschinen localhost:<port> auf meiner VM unter 10.0.2.2:<port> sehen.

27
bluehazetech

Wenn Sie einen Adapter an NAT angeschlossen haben, ist es heutzutage eine bessere und elegantere Lösung, die Portweiterleitung auf lokale Ports festzulegen.

Settings> Network> Adapter> Advanced> Port forwarding

Fügen Sie einfach eine neue Regel ein und setzen Sie Host port und Guest port auf 80 (für http) oder 22 (für ssh) usw.

Dann können Sie auf diesen Rechner zugreifen, indem Sie einfach http://localhost eingeben.

Möglicherweise möchten Sie auch NAT in den transparenten Modus schalten.

24
Boris Brdarić

Sie müssen die hosts-Datei auf Ihrer virtuellen Windows-Maschine auf dieselbe Weise wie für Ihre lokale Hostmaschine bearbeiten:

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 diese

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 Ihre lokale Maschine zu verweisen.

20
William

Mac OS

Wenn Sie eine Windows-Umgebung mit Virtualbox auf einem Mac einrichten möchten, verwenden Sie Verwenden Sie einfach die Standardeinstellungen NAT auf dem Adapter Und in Ihrer Windows-VM.

10.0.2.2       localhost
10.0.2.2       127.0.0.1

Im Unterschied zu den obigen Antworten ist es wichtig, beide Zeilen einzufügen, sonst funktioniert es nicht.

19
Artipixel

Ich musste in Virtualbox gehen und meine Netzwerkeinstellungen in 'NAT' ändern. Danach konnte ich localhost von meinem Emulator auf virtualbox über http://10.0.2.2:3000 ausführen

17
Pytth

Sie müssen weder die Hosts-Datei noch die Virtual Box-Konfiguration ändern. Behalten Sie die Einstellungen in NAT. Gehen Sie zu Ihrer Windows-Instanz und führen Sie "cmd" aus oder öffnen Sie cmd.exe. Führen Sie den Befehl "ipconfig" aus und rufen Sie die IP-Adresse Default Gateway ab. Durchsuchen Sie http://10.0.2.2:8080 Unter Windows IE wird das gleiche angezeigt wie bei Ihrem Mac Safari http: // localhost: 8080/ oder http: // 127.0.0.1:8080

14
marlonjuc

Eine Kombination aus ein paar Dingen hat letztendlich zu meinem Ende geführt. Ausführen eines Flopservers auf Macosx.

In meinen Fenstern VM habe ich die hosts-Datei bearbeitet: 

  • Führen Sie den Editor als Administrator aus
  • C:\windows\system32\drivers\etc\hosts öffnen 
  • fügen Sie diesen Eintrag hinzu: 10.0.2.2 outer 

Herunterfahren von VM und auf meinem Mac in VirtualBox:

  • Gehen Sie 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 Sie Attached to: auf Bridged Adapter
  • Dann setzen Sie Advanced > Promiscuous Mode: auf Allow VMs
  • Klicken Sie auf OK.
  • Gehe zu My_VM > settings > Network > Adapter 1
  • Setzen Sie Attached to: wieder auf NAT

Dann ging ich zu Adapter 2

  • Setzen Sie Attached to: auf Host-only Adapter und wählen Sie das zuvor hinzugefügte Netzwerk vboxnet1 aus. 

Ich habe meinen Server auf meinem Mac gestartet, auf 127.0.0.1:5000 ausgeführt, und dieser Zugriff war jetzt auf meiner VM unter http://10.0.2.2:5000 möglich. 

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

7
Craicerjack

Das Problem wurde durch Hinzufügen einer Portweiterleitung in den Virtualbox-Einstellungen unter Netzwerk ..__ gelöst. Host-IP-Adresse 127.0.0.1-Port: 8080 Gast-IP: Geben Sie eine beliebige IP-Adresse für die Website (z. B. 10.0.2.5) an: 8080Now vom Gastcomputer aus http://10.0.2.5:8080 über IE

4
Praveen

In der virtuellen Box können Sie, wie gesagt, diese Zeile als Hosts-Datei hinzufügen

10.0.2.2   outer

wenn Sie jedoch keine Administratoren in Ihrer VM haben, verschieben Sie einfach die hosts-Datei auf den Desktop, und bearbeiten Sie sie, um die Zeile 10.0 .... äußere hinzuzufügen, die Datei zu speichern und zum Original zu wechseln Platz.

3
Nico

In der virtuellen Box

  1. Stellen Sie Ihr Netzwerk auf Bridge-Netzwerk ein
  2. Gehen Sie zu Erweitert, um den Promiscuous-Modus einzustellen: Alle zulassen

Das knifflige Bit ist jetzt Ihr localhost. Wenn Sie von Node.js aus die IP-Adresse auf 0.0.0.0 setzen, suchen Sie nach Ihrer eigenen IP-Adresse, z. B. cmd: ipconfig -> 10.0.1.3 

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

2
Joel Chu

Überprüfen Sie, ob Sie Ihren übergeordneten Computer mit folgendem Befehl erreichen können: ipconfig (erhalten Sie Ihre IP-Adresse)

ping <ip> oder telnet <ip> <port>

Wenn Sie den Port nicht erreichen können, fügen Sie eine neue eingehende Regel in Ihre übergeordnete Firewall ein, die lokale Ports zulässt.

Ich konnte dann auf http://<ip>:<port> zugreifen.

2
Jon

Allgemeine Schritte:

  • Ein gemeinsames Netzwerk (Host-Only oder Bridge-NIC hinzufügen)
  • bevorzugten Dienst für das Abhören der entsprechenden Schnittstelle konfigurieren (Schnittstelle, die mit einer gemeinsam genutzten Netzwerkkarte verbunden ist)
  • IP verwenden: Port zum Erreichen des Zieldienstes. Verwenden Sie eine IP-Adresse, die zum freigegebenen Netzwerk gehört.
1
Anna

Ich muss auf localhost laufen, nicht auf einer seltsamen IP.

1) Suchen Sie von Ihrem Mac-Terminal aus nach iconfig -a, um Ihre lokale IP-Adresse zu ermitteln. Es ist wahrscheinlich der letzte.

en7: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500 options=10b<RXCSUM,TXCSUM,VLAN_HWTAGGING,AV> ether 38:c9:86:32:0e:69 inet6 fe80::ea:393e:a54f:635%en7 prefixlen 64 secured scopeid 0xe inet 10.1.5.60 netmask 0xfffffe00 broadcast 10.1.5.255 nd6 options=201<PERFORMNUD,DAD> media: autoselect (1000baseT <full-duplex,flow-control>) status: active

z.B. 10.1.5.60

2) Starten Sie Ihr Windows-Image. Start> Geben Sie cmd ein, um ein Terminal zu erhalten

3) notepad c:\windows\system32\drivers\etc\hosts

4) Fügen Sie die folgende Zeile hinzu 10.1.5.60 localhost

5) Öffnen Sie den IE und die folgende URL sollte den Server auf Ihrem Mac treffen: http://localhost:3000/

0
Jason Moore

Unter Windows mit einem virtuellen Windows 7 funktionierte für mich nur die Verwendung von NAT und Portweiterleitung (Bridged Connection konnte nicht ausgeführt werden). Ich habe hier ein Tutorial gefunden: http://www.howtogeek.com/122641/how-to-forward-ports-to-a-virtual-machine-and-use-it-as-a-server/ (Scrollen Sie mit " Ports an eine virtuelle Maschine weiterleiten" zum Teil.

Mit diesen Änderungen konnte ich die xampp-Website mit " http: //192.168.xx.x: 8888/mywebsite " in Internet Explorer 10 auf meiner virtuellen Maschine erreichen.

Ich habe die IP in der XAMPP-Systemsteuerung> Netstat ("System") gefunden.

0
Henning Fischer

Wenn Sie Virtual Box verwenden, können Sie Mac OSX (und ich denke, Linux) mit einer Codezeile an Ihre virtuelle Windows-Maschine anschließen -> Ich empfehle Ihnen, die Box zu stoppen, bevor Sie diese im Terminal ausführen.

VBoxManage modifyvm "YOUR VM NAME" --natdnshostresolver1 on

Ich werde darauf hinweisen, dass dies von den Dinghy-Dokumenten stammt, die ich gerade ausführe, aber es ist ein virtueller Boxbefehl, also sollte es Ihnen eigentlich egal sein, was Sie verwenden, solange es seine virtuelle Box ist

0
Lux.Capacitor