Frage Wie greife ich vom Host-Computer aus auf einen Webserver in einer virtuellen Box zu?


Ich habe einen Windows Vista-Rechner, auf dem VirtualBox ubuntu ausführt.

In ubuntu betreibe ich einen Webserver unter der Adresse http://127.0.0.1:3000/

Wie greife ich von meinem Host-Rechner (der Windows-Box) auf diese Adresse zu?


21
2018-04-28 17:56


Ursprung


Die einfachste Option ist die Port-Weiterleitung. Er kann unter Einstellung-> Netzwerk konfiguriert werden. Überprüfen Sie dies Verknüpfung - spartan
Wenn Sie den Webserver Ihres Gasts wirklich auf 127.0.0.1 konfiguriert haben, können Sie nicht von außen auf den Gast zugreifen. Der localhost / 127.0.0.1 ist ein Loopback-Adapter (im Speicher) und erfordert nicht einmal die Installation der Netzwerkkarte, damit er ordnungsgemäß funktioniert. Wenn Sie die IP Ihres Webservers auf etwas anderes als das Loopback ändern, können die Antworten unten helfen. - Mladen B.


Antworten:


Sie können den Gastnetzwerkmodus von NAT in Bridged ändern. Schließen Sie einfach Ihren Ubuntu-Gast, gehen Sie auf die Seite Einstellungen in VirtualBox, wählen Sie die Kategorie Netzwerk und ändern Sie das Listenfeld Attached to von NAT in Bridged Mode.

Bearbeiten:

Nachdem Sie die obigen Schritte durchgeführt haben, starten Sie Ubuntu neu und die zugewiesene IP wird nach dem Laden auf dem Begrüßungsbildschirm angezeigt. in der Willkommensnachricht sollte es etwa so heißen:

IP-Adresse für eth0: 192.168.1.3

Verwenden Sie diese Adresse in der Browserleiste des Host-Rechners, gefolgt von dem verwendeten Port. Wenn es etwas anderes als Port 80 ist, d.h. wenn Sie es einrichten, Port 666 zu verwenden, dann wäre die Adresse 192.168.1.3:666

Eine weitere Möglichkeit, die IP zu finden, besteht darin, sich mit dem in Ihrem Router eingebauten HTTP-Server zu verbinden und in den LAN-Einstellungen nachzusehen. Jede Maschine im Netzwerk sollte nach Hostname und IP aufgelistet sein. Auf meinem Router die meisten anderen, die ich hatte, können Sie dies tun, indem Sie 192.168.1.1 in der Adressleiste eingeben. Wenn das fehlschlägt, versuchen Sie die gleiche Adresse an Port 81. Wenn das fehlschlägt, LESEN SIE DAS HANDBUCH.


19
2018-04-28 22:04



Aber wie können Sie herausfinden, wie die IP-Adresse ist? Vielen Dank - SSH This
Das funktioniert, aber die Option "Nur Host" hat diese VM dem Unternehmensnetzwerk nicht zugänglich gemacht - Carlos Garcia
Bin ich der Einzige, der denkt, dass der Gast-Endpunkt 127.0.0.1 nur vom Gast aus erreicht werden kann (das ist der Punkt von localhost)? Es sollte keine Möglichkeit geben, von außerhalb des Gastcomputers auf diese Art von Endpunkt zuzugreifen (da es sich um einen Loopback-Adapter handelt, erfordert es nicht einmal eine installierte Netzwerkkarte). - Mladen B.


Hängt davon ab, wie Sie das Netzwerk auf dem Ubuntu-Gastbetriebssystem einrichten. Wenn Sie NAT für die Verwendung von NAT eingerichtet haben und ein DHCP-Server in Ihrem Netzwerk ausgeführt wird, führen Sie Folgendes aus:

ifconfig | grep inet

auf der Ubuntu-Box - Sie sehen die IP-Adresse, die dem Ubuntu-Gast zugewiesen wurde.

Beispiel:

#ifconfig | grep inet
  inet addr:10.0.0.2  Bcast:10.255.255.255  Mask:255.255.255.0
  inet addr:127.0.0.1  Mask:255.0.0.0

Dann schlag einfach auf http://10.0.0.2:3000


7
2018-04-28 18:02



Nun, in meinem Fall sollte die Adresse sein 10.0.2.15:3000/öffentlich und standardmäßig läuft vista im DHCP-Modus .. (der ubuntu-Rechner ist auch für die Verwendung von NAT konfiguriert), aber ich bekomme keine Antwort :( - Argh
Hmmm habe gerade gemerkt, dass ich keinen DHCP-Server habe - ich laufe nach Hause ... - Argh
VirtualBox verfügt über einen eigenen DHCP-Server, der virtuelle Maschinen verwaltet - andernfalls würden virtuelle Maschinen nicht automatisch eine IP-Adresse erhalten, ohne sie statisch zu setzen. Ich denke, Ihr Problem könnte sein, dass Apache nicht auf allen Schnittstellen gehört wird - nur localhost (127.0.0.1). Stellen Sie sicher, dass in / etc / apache2 / sites-available / default die Listen-Anweisung 80, nicht 127.0.0.1:80 pro angibt help.ubuntu.com/9.04/serverguide/C/httpd.html - Cory Plastek
Dies ist wahrscheinlich die Ursache. - fsckin


Ihre Windows-Box und die Ubuntu-Box (ob physisch oder virtuell, spielt in diesem Fall keine Rolle) müssen beide eine IP-Adresse im selben Subnetz haben, damit sie über TCP / IP miteinander kommunizieren können. Sie können jedem Betriebssystem eine zusätzliche Adresse zuweisen, indem Sie eines der privaten IP-Subnetze verwenden (siehe RFC 1918). Sobald beide eine Adresse im selben Subnetz haben, konfigurieren Sie den Webserver so, dass er den Ubuntu-Server überwacht, und verwenden Sie dann diese IP-Adresse im Windows-Browser, um ihn zu laden.

Die IP-Adresse, die Sie jetzt konfiguriert haben, 127.0.0.1, ist die Loopback-Adresse für die lokale Netzwerkschnittstelle. Sie würden diese Adresse niemals verwenden, um auf etwas auf einem anderen System zuzugreifen, nur um auf dasselbe System zurückzugreifen, auf dem Sie sich befinden. Wenn Sie ein virtuelles System verwenden, behandeln Sie es so, wie Sie es von einem Netzwerk-Standpunkt aus mit einem separaten Computer tun würden.


4
2018-04-28 19:15





Um Ihr Problem zu lösen, schlage ich vor, dass Sie ein neues hinzufügen Netzwerkadapter und konfiguriere es als Nur-Host-Adapter.

Jetzt führen Sie die virtuelle Box Instanz und dann was fsckin verdaut, um zu sehen, was ist IP des neuen Netzwerks.

Auf diese Weise haben Sie ein Subnetz mit Ihrem Computer und Ihrer virtuellen Maschine.


2
2018-04-28 22:27



Also ... ich habe getan wie du gesagt hast meine IP-Adresse gepackt. Ich habe dann versucht auf den Webserver zuzugreifen (auf den ich als Gast zugreifen kann) 127.0.0.1:3000) verwenden ZugewiesenIP: 3000 und ich bekam keine Antwort. Ich könnte jedoch die IP vom Host pingen - Argh
Sie müssen die Firewall auf Port 3000 öffnen. - fampinheiro
Host-only funktioniert nicht ohne weiteres: serverfault.com/questions/205477/ ... - givanse