Wie greife ich von außerhalb auf Ubuntu-Server zu, die in VirtualBox ausgeführt werden?

44

Ich habe Ubuntu Server 12.04 LTS über VirtualBox auf meinem Laptop installiert. Ich habe LAMP, OpenSSH, Mailserver installiert.

Als ich mich eingeloggt habe, bin ich gelaufen ifconfig. Es gab mir die Inet-Adresse als 192.168.0.3.

Dies sollte also die Adresse sein, über die ich in der Lage sein sollte, auf den Server zuzugreifen. Ich kann jedoch nicht über einen Browser darauf zugreifen. Der Server ist die ganze Zeit über auf VirtualBox aktiv. Trotzdem funktioniert er nicht in anderen Browsern oder auf meinem Handy. Was muss ich tun, um es der Öffentlichkeit zugänglich zu machen?

Kinn
quelle

Antworten:

58

Standardmäßig ist ein Gastcomputer in VirtualBox für die Verwendung des sogenannten NAT-Netzwerks konfiguriert. Die IP-Adresse des Netzwerkadapters des Gasts befindet sich in einem "virtuellen" Subnetz, das den Gast und die übergeordnete VirtualBox-Anwendung enthält, die als Gateway fungiert. Für den Gast sieht es so aus, als würde er über so etwas wie ein normales DSL-Modem auf das Internet zugreifen. Der Gast kann jedoch nicht von jedem Ort aus auf Computer in Ihrem lokalen Netzwerk zugreifen, ohne das Modem speziell dafür zu konfigurieren Zugriff.

Die VirtualBox-Dokumentation enthält die folgende Liste von Netzwerkmodi:

Jeder der acht Netzwerkadapter kann separat für den Betrieb in einem der folgenden Modi konfiguriert werden:

Nicht beigefügt

In diesem Modus meldet VirtualBox dem Gast, dass eine Netzwerkkarte vorhanden ist, jedoch keine Verbindung besteht - als ob kein Ethernet-Kabel in die Karte eingesteckt wäre. Auf diese Weise können Sie das virtuelle Ethernet-Kabel "ziehen" und die Verbindung unterbrechen. Dies kann hilfreich sein, um ein Gastbetriebssystem darüber zu informieren, dass keine Netzwerkverbindung verfügbar ist, und eine Neukonfiguration durchzuführen.

Network Address Translation (NAT)

Wenn Sie nur im Web surfen, Dateien herunterladen und E-Mails im Gast anzeigen möchten, sollte dieser Standardmodus für Sie ausreichen, und Sie können den Rest dieses Abschnitts sicher überspringen. Beachten Sie, dass bei der Verwendung der Windows-Dateifreigabe bestimmte Einschränkungen bestehen (weitere Informationen finden Sie im Abschnitt „NAT-Einschränkungen“).

Überbrückte Vernetzung

Dies ist für erweiterte Netzwerkanforderungen wie Netzwerksimulationen und das Ausführen von Servern in einem Gast vorgesehen. Wenn diese Option aktiviert ist, stellt VirtualBox eine Verbindung zu einer Ihrer installierten Netzwerkkarten her und tauscht Netzwerkpakete direkt aus, um den Netzwerkstack Ihres Host-Betriebssystems zu umgehen.

Interne Vernetzung

Dies kann verwendet werden, um eine andere Art von softwarebasiertem Netzwerk zu erstellen, das für ausgewählte virtuelle Maschinen sichtbar ist, jedoch nicht für Anwendungen, die auf dem Host oder in der Außenwelt ausgeführt werden.

Nur-Host-Netzwerk

Dies kann verwendet werden, um ein Netzwerk mit dem Host und einer Reihe von virtuellen Maschinen zu erstellen, ohne dass die physische Netzwerkschnittstelle des Hosts erforderlich ist. Stattdessen wird auf dem Host eine virtuelle Netzwerkschnittstelle (ähnlich einer Loopback-Schnittstelle) erstellt, die die Konnektivität zwischen virtuellen Maschinen und dem Host gewährleistet.

Generisches Networking

Selten verwendete Modi verwenden dieselbe generische Netzwerkschnittstelle, indem der Benutzer einen Treiber auswählen kann, der in VirtualBox enthalten sein oder in einem Erweiterungspaket verteilt werden kann.

Wenn Sie von außerhalb auf Ihren Gast zugreifen müssen, müssen Sie ein Bridged-Netzwerk konfigurieren, das Ihrem Gast eine eigene IP in Ihrem lokalen Netzwerk gibt. Die Konfiguration erfolgt in den VirtualBox-Einstellungen, nicht im Gastbetriebssystem.

Um von Ihrem Mobiltelefon (dh von außerhalb Ihres LAN) auf den Server zugreifen zu können, müssen Sie nach der Konfiguration des Netzwerks zusätzlich die Portweiterleitung an Ihrem DSL-Modem einrichten.

Sergey
quelle
3
+1 für das Erwähnen der Standard-NAT-Konfiguration und das Vorschlagen von Bridged.
Mark Mikofski
+1 für das Unterrichten von etwas Neuem, Nützlichem und Relevantem für meine Situation. Vielen Dank!
Heypaleblue
Vielen Dank für die Antwort, aber muss ich DNS nicht auf meinem Server installieren, um es anderen über das Internet zugänglich zu machen?
Chins
@Chins: Nein, Sie müssen DNS definitiv nicht auf Ihrem Server installieren. Bei allem, was wir bisher besprochen haben, handelt es sich überhaupt nicht um DNS.
Sergey
1
@ Sergey - Ich habe mein VM mit Bridged Adapter konfiguriert. Die IP-Adresse, die beim Ausführen von ifconfig angezeigt wird, ist 10.210.xx, aber ich kann meine VM immer noch nicht vom Hostcomputer aus putteln. Was könnte falsch sein?
Andy Dufresne
9

Um ein wenig mehr Informationen bereitzustellen, sind dies die tatsächlichen Schritte zum Einrichten eines überbrückten Netzwerks:

Um das Bridged-Netzwerk zu aktivieren, müssen Sie lediglich den Einstellungsdialog einer virtuellen Maschine öffnen, die Seite "Netzwerk" aufrufen und "Bridged-Netzwerk" in der Dropdown-Liste für das Feld "Angeschlossen an" auswählen. Wählen Sie schließlich die gewünschte Hostschnittstelle aus der Liste am unteren Rand der Seite aus, die die physischen Netzwerkschnittstellen Ihrer Systeme enthält. Auf einem typischen MacBook können Sie beispielsweise zwischen "en1: AirPort" (die drahtlose Schnittstelle) und "en0: Ethernet" auswählen, die die Schnittstelle mit einem Netzwerkkabel darstellen.

Quelle

Ich habe dann die virtuelle Maschine neu gestartet und konnte eine externe Verbindung herstellen.

mnd
quelle
Denken Sie daran, dass es zum Beispiel unter Mac OS 10.1.11 nicht erlaubt ist, den WLAN-Adapter direkt zu überbrücken, sondern dass Sie zuerst in den Netzwerkeinstellungen einen "Bridge-Adapter" erstellen müssen
zweimal
1
Aber wie funktionieren statische IP-Adressen im Bridged-Modus? Ist dann alles auf dem gleichen Anschluss? Befindet sich ein Webserver auf der VM anstelle einer IP-Adresse auf dem lokalen Host? Werden die Ports 1: 1 weitergeleitet? Wenn sich Tomcat auf der VM bei localhost: 8080 befindet, gibt der Hostcomputer localhost: 8080 in den Browser ein, um die VM anzuzeigen?
anon58192932