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, führe ich eine virtuelle Maschine mit VirtualBox aus. Ich muss auch sehen, wie es in Firefox in einer Windows-Umgebung aussieht (Schriftarten zum Beispiel sind unterschiedlich).
In meiner realen Maschine öffne ich die Website einfach über die URL http://localhost:8000
. Wie adressiere ich diesen lokalen Host von der virtuellen Maschine aus?
Im Moment besteht meine Problemumgehung darin, die IP-Adresse zu verwenden. Irgendwelche besseren Ideen?
Antworten:
Googeln hat dies aufgedeckt: http://data.agaric.com/localhost-from-virtualbox-xp-install-ubuntu
Es schlägt vor, IP: zu verwenden
http://10.0.2.2
, und es hat bei mir funktioniert.Also habe ich die Hosts-Datei bearbeitet
C:\windows\system32\drivers\etc\hosts
und diesen Eintrag hinzugefügt:Denken Sie beim Testen auf IE8 daran,
http://
die Adressleiste einzutragen. Nur die IP direkt zu setzen, wird nicht funktionieren.Zum Beispiel:
quelle
Attached to
vonBridged Adapter
auf ändern, damitNAT
dies für mich funktioniert.localhost
nicht10.0.2.2
wegen irgendeiner beschissenen Authentifizierung zugreifen , die localhost als Adresse will :(Mac OS
Ich verwende Virtual Box unter macOS (früher OS X) und verwende Virtual Box zum Testen des IE unter Windows usw.
Gehen Sie in Virtual Box zum IE und greifen Sie
localhost
überhttp://10.0.2.2
forlocalhost
oderhttp://10.0.2.2:3000
for zulocalhost:3000
.Ich habe die Netzwerkeinstellungen als NAT beibehalten, keine Bridge erforderlich, wie oben in meinem Fall vorgeschlagen. Konfigurationsdateien müssen nicht bearbeitet werden.
quelle
Um dies unter OSX zu aktivieren, musste ich Folgendes tun:
VirtualBox Preferences -> Network -> Host-only Networks ->
dem „+“ Symbol zu klicken. OK klicken."Settings" icon -> Network -> Adapter 2 ->
Sie auf die Dropdown-Liste "Angeschlossen an:". Wählen Sie "Nur-Host-Adapter" aus. Ihr Netzwerk (vboxnet0
) sollte standardmäßig unten angezeigt werden. OK klicken.http://10.0.2.2/
Sie können darauf verweisen
localhost
und auf andere lokal gehostete Sites zugreifen, indem Sie deren VerweiseC:\windows\system32\drivers\etc\hosts
wie folgt zur Hosts-Datei ( ) hinzufügen :quelle
IPv4 Address
(z192.168.56.1
. B. ). Sobald Sie die VM gestartet haben, öffnen Sie Ihren Browser und gehen Sie zuhttp://192.168.56.1:3000
Wahrscheinlich ist das Netzwerk Ihrer virtuellen Maschine auf NAT eingestellt. Wenn Sie Ihr Netzwerk auf Bridged setzen, sollten Sie über den Hostnamen auf Ihren Hostcomputer 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-7510: 3000 / anzeigen .
Um Ihren Hostnamen zu finden, öffnen Sie ein Terminal / eine Konsole und führen Sie den Befehl aus
hostname
. Ihr Hostname wird in der nächsten Zeile ausgegeben.Anweisungen zum Festlegen Ihrer Netzwerkeinstellungen auf Bridged finden Sie in der VirtualBox-Dokumentation .
quelle
whatever.local
Versionen nur dann Bonjour installieren können.Ich musste in die Virtualbox gehen und meine Netzwerkeinstellungen auf 'NAT' ändern. Danach konnte ich
localhost
von meinem Emulator auf virtualbox durch auf meinem Host-Computer laufenhttp://10.0.2.2:3000
quelle
http://10.0.2.2
lokalen Host des Hosts über genau das erreichen, was hier von @Pytth beschrieben wurde.Wenn Sie einen Adapter an NAT angeschlossen haben , ist es heutzutage eine bessere und elegantere Lösung, die Portweiterleitung an lokale Ports festzulegen.
Settings
>Network
>Adapter
>Advanced
>Port forwarding
Fügen Sie einfach eine neue Regel ein und setzen Sie
Host port
undGuest port
auf80
(für http) oder22
(für ssh) und so weiter.Dann können Sie auf diese Maschine zugreifen, indem Sie einfach eingeben
http://localhost
Möglicherweise möchten Sie NAT auch in den transparenten Modus schalten.
quelle
Ich fand, dass das
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 wechselte dann zurück zu NAT, 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-Computer
localhost:<port>
auf meiner VM unter sehen10.0.2.2:<port>
.quelle
Die Möglichkeit, Anforderungen an localhost in der VM nicht an den localhost des Hosts umzuleiten, ist jetzt in Windows ( https://tools.ietf.org/html/rfc6761#section-6.3 ) integriert, einschließlich der unter https verfügbaren VMs: //developer.microsoft.com/en-us/microsoft-edge/tools/vms/
Aus Sicherheitsgründen verhindert Microsoft jetzt, dass Hostdateieinträge die Adresse von localhost auf etwas anderes als die Loopback-Adresse :: 1 überschreiben. Fügen Sie also eine Zeile zur Host-Datei der VM hinzu, z
wird ignoriert.
Es gibt zwei Möglichkeiten (die ich kenne), um dies zu überschreiben:
1) Verwenden Sie NETSH, um den Proxy zum Host zu portieren
(Dabei ist 10.0.2.2 das Standard-Gateway auf der VM und 8000 der Port, den Sie auf dem Host auflösen möchten.)
2) Richten Sie IIS ein, um das Routing von Anwendungsanforderungen durchzuführen, und schreiben Sie dann die Anforderungen für localhost: port in den hostIP: port
https://docs.microsoft.com/en-us/iis/extensions/configuring-application-request-routing-arr/creating-a-forward-proxy-using-application-request-routing
quelle
netsh
hat mir geholfen, ich habe alles versucht, was ich im Netz gefunden habe, aber keinen Erfolg. Dies ermöglicht den Zugriff<protocol>://localhost:<port>
, anstatt direkt über IP zuzugreifen. Dies sollte die akzeptierte Antwort für Windows 10 sein.Mac OS
Wenn Sie eine Windows-Umgebung mit Virtualbox auf einem Mac einrichten möchten, verwenden Sie einfach die Standard-NAT-Einstellungen des Adapters. Wechseln Sie in Ihrer Windows-VM zur Hosts-Datei und fügen Sie Folgendes hinzu:
Abweichend von den obigen Antworten ist es wichtig, beide Zeilen einzuschließen, da dies sonst nicht funktioniert.
quelle
Sie müssen Ihre Hosts-Datei auf Ihrem Windows Virtual-Computer genauso bearbeiten wie auf Ihrem lokalen Host-Computer:
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:
Dadurch wird Ihre virtuelle Maschine angewiesen, für diese Domänennamen auf Ihre lokale Maschine zu verweisen.
quelle
Sie müssen weder die Hosts-Datei noch eine Virtual Box-Konfiguration ändern. Behalten Sie die Einstellungen in NAT bei. 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 Standard-Gateway- IP-Adresse ab. Das Durchsuchen von http://10.0.2.2:8080 unter Windows IE entspricht dem Ihres Mac Safari http: // localhost: 8080 / oder http://127.0.0.1:8080
quelle
localhost
. (zB Webpack-Dev-Server)10.2.2.3 or .4
? Ich kann.2
genauso gutEine Kombination von ein paar Dingen brachte mich schließlich zum Laufen. Ausführen eines Flask-Servers unter Macosx.
In meiner Windows-VM habe ich die Hosts-Datei bearbeitet:
C:\windows\system32\drivers\etc\hosts
10.0.2.2 outer
Fahren Sie die VM und meinen Mac in VirtualBox herunter:
VirtualBox > preferences > Network > Host-only Networks > +
, um ein Netzwerk hinzuzufügenvboxnet1
My_VM > settings > Network > Adapter 1
.Enable Network Adapter
und einstellenAttached to:
aufBridged Adapter
.Advanced > Promiscuous Mode:
aufAllow VMs
.OK
My_VM > settings > Network > Adapter 1
.Attached to:
zurück zuNAT
.Danach ging ich zu
Adapter 2
Attached to:
zuHost-only Adapter
und das vorherige hinzugefügt Netzwerk auswählenvboxnet1
.Ich habe meinen Server auf meinem Mac gestartet
127.0.0.1:5000
und lief darauf. Dies war jetzt auf meinem VM unter verfügbarhttp://10.0.2.2:5000
Mann, was für ein Albtraum, um auf IE auf Mac zu testen. Wie gibt es keinen einfacheren Weg?
quelle
rails s -b 127.0.0.1
und von allen VMs aufhttp://10.0.2.2:3000
darauf zugegriffen, und es hat funktioniert. Ich frage mich, ob die Änderung der Einstellung von oben irgendwie verweilte, selbst nachdem ich alles zurückgerollt hatte.vboxnet1
, aber es funktionierte schließlich. Danke für die Hinweise!Ich habe das Problem gelöst, indem ich in den Virtualbox-Einstellungen unter Netzwerk eine Portweiterleitung hinzugefügt habe. Host-IP-Set 127.0.0.1 Port: 8080 Gast-IP: Geben Sie eine beliebige IP für den Website-Port (z. B. 10.0.2.5) an: 8080 Jetzt vom Gastcomputer aus über den IE auf http://10.0.2.5:8080 zugreifen
quelle
In der oben genannten virtuellen Box können Sie diese Zeile als Hosts-Datei hinzufügen
Wenn Sie jedoch keine Administratoren direkt in Ihrer VM haben, verschieben Sie die Hosts-Datei einfach auf den Desktop. Bearbeiten Sie sie dann, um die äußere Zeile 10.0 .... hinzuzufügen, speichern Sie die Datei und verschieben Sie sie an ihren ursprünglichen Speicherort.
quelle
Überprüfen Sie, ob Sie Ihren übergeordneten Computer erreichen können mit:
ipconfig
(Holen Sie sich Ihre IP-Adresse)ping <ip>
odertelnet <ip> <port>
Wenn Sie den Port nicht erreichen können, fügen Sie in Ihrer übergeordneten Firewall eine neue eingehende Regel hinzu, die lokale Ports zulässt.
Ich konnte dann zugreifen
http://<ip>:<port>
quelle
In der virtuellen Box
Das knifflige Bit ist jetzt Ihr lokaler Host. Wenn Sie von Node.js aus die IP-Adresse auf 0.0.0.0 setzen, suchen Sie Ihre eigene IP-Adresse, z. B. cmd: ipconfig -> 10.0.1.3
Geben Sie diese Adresse mit der Portnummer ein. Und es wird funktionieren.
quelle
Allgemeine Schritte:
quelle
Unter Windows mit einem virtuellen Windows 7 funktionierte das einzige, was für mich funktionierte, NAT und Portweiterleitung (es konnte keine überbrückte Verbindung 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 nach unten zu der Teil mit " Weiterleiten von Ports an eine virtuelle Maschine ").
Mit diesen Änderungen konnte ich die xampp-Website mit " http: //192.168.xx.x: 8888 / mywebsite " im Internet Explorer 10 auf meiner virtuellen Maschine erreichen.
Ich habe die IP in XAMPP Control Panel> Netstat ("System") gefunden.
quelle
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, die Box anzuhalten, bevor Sie sie im Terminal ausführen.
VBoxManage modifyvm "YOUR VM NAME" --natdnshostresolver1 on
Ich werde bemerken, dass dies aus den Dinghy-Dokumenten stammt, die ich ausführe, aber es ist ein Befehl für eine virtuelle Box, so dass es eigentlich egal sein sollte, was Sie verwenden, solange es eine virtuelle Box ist
quelle
Ich muss auf localhost laufen, nicht auf irgendeiner seltsamen IP.
1)
iconfig -a
Suchen Sie auf Ihrem Mac-Terminal nach Ihrer lokalen IP-Adresse. 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
zB 10.1.5.60
2) Starten Sie Ihr Windows-Image. Start> Typ
cmd
, um ein Terminal zu erhalten3)
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 auf Ihrem Mac ausgeführten Server treffen:
http://localhost:3000/
quelle
Rufen Sie die IP für den Computer ab, auf dem Apache ausgeführt wird (inet addr: in
ifconfig
), und geben Sie diese in die Adressleiste des virtuellen Box-Browsers ein.quelle
Tatsächlich ist die Antwort von user477494 im Prinzip richtig.
Ich habe die gleiche Logik in anderen Umgebungen angewendet (OS X-Host - virtuelles Windows XP) und das macht den Trick. Ich musste den Host- LAMP- Stack durchlaufen , um die IP-Adresse und den Apache-Port aufzulösen, aber als ich das herausgefunden hatte, lachte ich.
quelle