Wie greife ich vom Host auf den Server zu, der in VirtualBox ausgeführt wird?

Ich führe eine Web-App auf der VM aus.

Ich kann die App unter localhost:8888 über einen Browser innerhalb der VM sehen.

Ich kann die App vom Host nicht unter derselben URL sehen. Das ist das Ziel.

Ich habe versucht, VBoxManage modifyvm "VM name" --natdnshostresolver1 on aber es hatte keinen Einfluss.

Meine Konfiguration ist:

  • , Host: Windows-7 -
  • Person: Ubuntu 16.04.1 LTS
  • VirtualBox: 5.1. 4r110228

Gast-Konfiguration

(Gast) ifconfig wenn auf NAT

kirkland@GC:~$ ifconfig
eth0      Link encap:Ethernet  HWaddr 08:00:27:d0:fc:0e  
          inet addr:10.0.2.15  Bcast:10.0.2.255  Mask:255.255.255.0
          inet6 addr: fe80::4c67:70b5:c37b:8fa8/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:7431 errors:0 dropped:0 overruns:0 frame:0
          TX packets:3587 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:7444830 (7.4 MB)  TX bytes:731870 (731.8 KB)

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:1566 errors:0 dropped:0 overruns:0 frame:0
          TX packets:1566 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1 
          RX bytes:655936 (655.9 KB)  TX bytes:655936 (655.9 KB)

(Gast) /etc/hosts -

127.0.0.1   localhost
127.0.1.1   GC

# The following lines are desirable for IPv6 capable hosts
::1     ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
Author: Kirkland, 2016-08-31

3 answers

Die URL localhost:8888 ist nur eine gültige URL in Ihrer VM. Außerhalb dieser VM müssen Sie ip.ad.dr.ess:8888 oder hostname:8888. Im letzteren Fall wird eine Abhängigkeit von Hostnamen eingeführt, die in Ihrem Netzwerk in ip.ad.dr.ess aufgelöst wird.

Wenn Sie eine VM in VirtualBox erstellen, ist Netzwerkadapter 1 standardmäßig auf NAT gesetzt. Dadurch erhält die VM eine IP-Adresse von 10.0.2.15/24 und eine Standardroute von 10.0.2.2 (die Ihr Host sein sollte). Kurz gesagt, Windows wird nicht an eine Adresse weitergeleitet, für die es NAT bereitstellt, ohne springen durch mehr Reifen zuerst.

Wenn Sie die VM herunterfahren und die Einstellung VM network adapter1 auf "bridged" ändern, kann Ihr Host (und jeder Host in Ihrem lokalen Netzwerk) mit dieser VM kommunizieren, ohne dass spezielle Routen hinzugefügt oder Reifen hinzugefügt werden müssen.

Starten Sie die VM neu. Überprüfen Sie Ihre Verbindung zu localhost:8888. Überprüfen Sie auch Ihre Verbindung zu hostname:8888 (vorausgesetzt, der Hostname wurde not zur Loopback/localhost-Adresse in der Datei /etc/hosts hinzugefügt) und ip-address:8888. BEARBEITEN: Basierend auf die/etc / hosts Details gepostet, Sie are Bindung Ihrer VM und damit die Webapp an das Loopback-Netzwerk. Diese Konfiguration ist außerhalb der VM überhaupt nicht verwendbar.

Wenn Ihr Webserver und Ihre Anwendung nicht von der IP-Adresse abhängig sind, auf der sie zuerst konfiguriert/installiert wurde, und Sie einen DHCP-Server in Ihrem LAN haben, sollten Sie die einzige andere Information, die Sie zur Verbindung mit der VM benötigen, die IP-Adresse, die ihr über DHCP zugewiesen wurde.

Um die IP-Adresse der VM zu finden, öffnen Sie ein terminal - / Konsolenfenster Vom Ubuntu-Desktop aus (Strg-Alt-T) verwenden wir die Befehle hostname, ifconfig und grep /etc/hosts, um die Teile zusammenzusetzen und Ihre Adresse zu finden. Geben Sie im geöffneten Terminal hostname ein und drücken Sie die Eingabetaste. Dies ist wahrscheinlich gc. In demselben Terminal zeigt die Eingabe von ifconfig eth0 | awk '/Bcast/{print $2}' die Adresse an. Sie sollten eine Zeile in /etc/hosts mit der Adresse gefolgt vom Hostnamen haben. grep [hostname] /etc/hosts oder grep [address] /etc/hosts sollte die Zeile finden, die Sie benötigen. Wenn Sie etwas anderes als Ihre aktuelle Adresse finden gefolgt vom Hostnamen müssen Sie die Datei /etc/hosts ändern, um die richtigen Informationen hinzuzufügen.

Hosts in Ihrem LAN sollten nun eine Verbindung zur IP Ihrer VM auf Port 8888 herstellen können. Damit diese Hosts / Clients über hostname:8888 auf die Webanwendung zugreifen können, hängen sie von Clienthostdateien, lokalem DNS oder sogar mDNS-Diensten ab, die möglicherweise auf Ihrem DHCP-Server bereitgestellt werden.

 7
Author: Daniel Liston,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2016-09-04 01:05:07

Um dies zu erreichen, wäre es meiner Meinung nach viel besser, den Bridged-Modus zu verwenden. Wenn dies nicht möglich oder wünschenswert ist, benötigen Sie eine statische Route auf Ihrem Host.

Um eine statische Route hinzuzufügen, tun Sie dies: Suchen Sie in den Netzwerkeigenschaften Ihres Hosts. Finden Sie einen adapter namens VirtualBox Host-only Network. Finden Sie seine IP-Adresse. Es ist wahrscheinlich 192.168.56.1, was meiner Meinung nach der Standard ist, aber etwas anderes sein könnte. Rufen Sie das a. b. c. d. Als nächstes erhalten Sie die IP-Adresse Ihres Gastes. Ruf das an w. x. y. z. (Die ersten 3 Oktette sollten in beiden Adressen gleich sein.) Wenn Sie das haben, öffnen Sie eine DOS-Eingabeaufforderung auf Ihrem Host und geben Sie diesen Befehl ein:

route add w.x.y.z mask 255.255.255.0 a.b.c.d

Wenn dies funktioniert, können Sie denselben Befehl mit dem Schalter-p ausführen, um ihn dauerhaft zu machen (andernfalls verschwindet er beim nächsten Neustart des Hosts).

 0
Author: Charles Burge,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2016-09-02 00:06:34

Ich bin etwas spät dran, aber hier ist eine schnelle Lösung mit Portweiterleitung, wenn Sie nicht möchten, dass VM einem externen Netzwerk ausgesetzt ist. Erstellen Sie einfach dieses Portweiterleitungsprofil für Web und ssh, wie unten in den NAT-Einstellungen von VM

Bildbeschreibung hier eingeben

 -1
Author: Aprilian8,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2020-01-15 19:19:36