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?
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/
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.
Um dies unter OSX zu aktivieren, musste ich Folgendes tun:
VirtualBox Preferences -> Network -> Host-only Networks ->
, klicken Sie auf das Symbol "+". OK klicken."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.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
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.
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.
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.
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.
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.
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
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
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:
C:\windows\system32\drivers\etc\hosts
öffnen 10.0.2.2 outer
Herunterfahren von VM und auf meinem Mac in VirtualBox:
VirtualBox > preferences > Network > Host-only Networks > +
, um ein Netzwerk hinzuzufügen vboxnet1
My_VM > settings > Network > Adapter 1
. Enable Network Adapter
und setzen Sie Attached to:
auf Bridged Adapter
. Advanced > Promiscuous Mode:
auf Allow VMs
. OK
.My_VM > settings > Network > Adapter 1
. Attached to:
wieder auf NAT
. Dann ging ich zu Adapter 2
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?
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
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.
In der virtuellen Box
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.
Ü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.
Allgemeine Schritte:
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/
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.
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