So greifen Sie vom Gastbrowser aus auf den Host „localhost“ von Virtualbox zu

So greifen Sie vom Gastbrowser aus auf den Host „localhost“ von Virtualbox zu

Wir schreiben also das Jahr 2019 und ich verwende Win 10 in meiner VirtualBox. Und ich möchte localhost grundsätzlich auf 10.0.2.2 umleiten (das ist die IP des Hostcomputers).

10.0.2.2 localhost 

Dies scheint nicht zu funktionieren. Einige Leute haben berichtet, dass Windows 10 die Suche nach localhost absichtlich deaktiviert. Ich bin mir nicht sicher, warum sie das tun würden.

Ich versuche jedoch, eine Problemumgehung zu finden, mit der dieses Problem behoben werden kann, sodass ich auf die Localhost-URLs meines Hosts zugreifen kann.

Antwort1

Jetzt erfordern Dienste auf und ab der Maschine, dass die App auf einem lokalen Host-Ursprung ausgeführt wird. Daher kann ich sie nicht unter 10.0.2.2 ausführen

Konfigurieren Sie einen TCP- oder HTTP-Proxy/Forwarder, der die VMs abhört localhostund die tatsächlichen Verbindungen an das richtige Ziel weiterleitet.

Für HTTP wäre ein Reverse-Proxy wie Nginx oder Apache der einfachste Ansatz. Sie würden buchstäblich nur einen VirtualHost mit benötigen ProxyPass / http://10.0.2.2/. Für andere Protokolle unterstützen sowohl Nginx als auch HAproxy auch die Stream-Weiterleitung.

Sie können auch jeden anderen TCP-Forwarder verwenden, etwa SSHs -Loder -R-Weiterleitung (je nachdem, ob der Host oder der Gast über einen SSH-Server verfügt) oder sogar die integrierte netsh int portproxy.

So leiten Sie beispielsweise Port 443 auf dem Windows-Gast weiter:

netsh interface portproxy add listenaddress=127.0.0.1 listenport=443 connectaddress=10.0.2.2 connectport=443

Alternativ, wenn der Gast PuTTY installiert hat und der Host über einen SSH-Server verfügt:

plink -v -N -L 443:localhost:443 [email protected]

Einige Leute haben berichtet, dass Windows 10 die Suche nach localhost absichtlich deaktiviert. Ich bin mir nicht sicher, warum sie das tun würden

Im Allgemeinen gibt es zwei Hauptgründe, warum Windows dies getan haben könnte:

  1. Der Name localhostist "wohlbekannt", das heißt, es ist allgemein anerkannt, dass er sich in Loopback-Adressen auflöst – erpassierenauf 127.0.0.1 oder ::1 auflösen, ist esgemeintauf 127.0.0.1 oder ::1 auflösen und dies bereits seit mehreren Jahrzehnten. Daher ist es ganz natürlich, dass ein Betriebssystem eine solche Regel eingebaut hat.

    Selbst wenn Sie einen Weg finden, Windows zu umgehen, werden Sie feststellen, dass vieleInternetbrowserhaben auch eine solche Regel eingebaut, unabhängig davon, was das Betriebssystem tut. (Hier ist zum BeispielChromium-Quellcodezeigt, dass es eine fest codierte Zuordnung für „localhost“ hat und sich nicht einmal die Mühe macht, das Betriebssystem zu fragen.) Es gibt sogar eine IETFNorm-Entwurfwas es auf Resolverebene vorschreiben würde.

  2. Webbrowser betrachten dies häufig localhostals sicheren Ursprung – sie stellen möglicherweise mehr APIs für http://localhostals für andere http://URLs bereit. Dies bedeutet natürlich, dass es ein Sicherheitsrisiko wäre, localhost zu einer anderen Adresse als 127.0.0.1/::1 auflösen zu lassen.

verwandte Informationen