
Ich führe eine Webanwendung auf der VM aus.
localhost:8888
Ich kann die App über einen Browser innerhalb der VM sehen .
Ich kann die App vom Host unter derselben URL nicht sehen. Das ist das Ziel.
Ich habe es versucht VBoxManage modifyvm "VM name" --natdnshostresolver1 on
, aber es hatte keine Wirkung.
Meine Konfiguration ist:
- Gastgeber:Windows 7
- Gast:Ubuntu 16.04.1 LTS
- VirtualBox:5.1.4r110228
(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
Antwort1
Die localhost:8888
URL ist nur innerhalb Ihrer VM gültig. Außerhalb dieser VM müssen Sie ip.ad.dr.ess:8888
oder verwenden hostname:8888
. Im letzteren Fall ip.ad.dr.ess
entsteht eine Abhängigkeit von der Hostnamenauflösung in Ihrem Netzwerk.
Wenn Sie in VirtualBox eine VM erstellen, ist Netzwerkadapter 1 standardmäßig auf NAT eingestellt. 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 routet nicht zu einer Adresse, für die es NAT bereitstellt, ohne vorher weitere Hürden zu überwinden.
Wenn Sie die VM herunterfahren und die Einstellung des VM-Netzwerkadapters1 auf „überbrückt“ ändern, kann Ihr Host (und jeder Host in Ihrem lokalen Netzwerk) mit dieser VM kommunizieren, ohne dass spezielle Routen hinzugefügt werden oder Hürden genommen 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
der Loopback-/Localhost-Adresse in der Datei /etc/hosts hinzugefügt) und ip-address:8888
. BEARBEITEN: Basierend auf den veröffentlichten Details in /etc/hosts are
binden Sie Ihre VM und damit die Webanwendung an das Loopback-Netzwerk. Diese Konfiguration ist außerhalb der VM überhaupt nicht verwendbar.
Wenn Ihr Webserver und Ihre Anwendung nicht von der IP abhängig sind, auf der sie ursprünglich konfiguriert/installiert wurden, und Sie über einen DHCP-Server in Ihrem LAN verfügen, ist die einzige andere Information, die Sie zum Herstellen einer Verbindung mit der VM benötigen, die IP-Adresse, die ihr per DHCP zugewiesen wurde.
So finden Sie die IP-Adresse der VM: Öffnen Sie ein Terminal-/Konsolenfenster auf dem Ubuntu-Desktop (Strg-Alt-T). Wir verwenden die /etc/hosts
Befehle hostname, ifconfig und grep, um die Teile zusammenzusetzen und Ihre Adresse zu finden. Geben Sie im geöffneten Terminal ein und hostname
drücken Sie die Eingabetaste. Dies ist wahrscheinlich gc. Wenn Sie im selben Terminal tippen, ifconfig eth0 | awk '/Bcast/{print $2}'
wird die Adresse angezeigt. Sie sollten in /etc/hosts eine Zeile mit der Adresse gefolgt vom Hostnamen haben. grep [hostname] /etc/hosts
oder grep [address] /etc/hosts
Sie sollten die gewünschte Zeile finden. Wenn Sie etwas anderes als Ihre aktuelle Adresse gefolgt vom Hostnamen erhalten, müssen Sie die Datei /etc/hosts ändern, um die richtigen Informationen hinzuzufügen.
Hosts in Ihrem LAN sollten jetzt in der Lage sein, eine Verbindung mit der IP Ihrer VM über Port 8888 herzustellen. Der Zugriff dieser Hosts/Clients auf die Webanwendung hostname:8888
hängt von den Hostdateien der Clients, dem lokalen DNS oder sogar von mDNS-Diensten ab, die möglicherweise auf Ihrem DHCP-Server bereitgestellt werden.
Antwort2
Antwort3
Um dies zu erreichen, wäre es meiner Meinung nach viel besser, den Bridged-Modus zu verwenden. Wenn das nicht möglich oder wünschenswert ist, benötigen Sie eine statische Route auf Ihrem Host.
So fügen Sie eine statische Route hinzu: Sehen Sie in den Netzwerkeigenschaften Ihres Hosts nach. Sie sollten dort einen Adapter namens „VirtualBox Host-Only Network“ finden. Suchen Sie nach seiner IP-Adresse. Wahrscheinlich ist es 192.168.56.1, was meiner Meinung nach die Standardeinstellung ist, aber es könnte auch etwas anderes sein. Nennen Sie diese abcd. Suchen Sie als Nächstes die IP-Adresse Ihres Gasts. Nennen Sie diese wxyz (die ersten 3 Oktette sollten bei beiden Adressen gleich sein). Wenn Sie diese 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 es dauerhaft zu machen (andernfalls verschwindet es beim nächsten Neustart des Hosts).