«
»


Mai
13

Virtualbox – Port forwarding

Zugriff per NAT auf das Gastsystem

Netzwerkeinstellungen NAT Sun VirtualboxVirtuelle Maschinen lassen sich ja für alles Mögliche einsetzen. Ob nun als Labor-Umgebung für irgendwelche Netzwerk-Geschichten, zum Testen von Software, als zusätzliches Betriebssystem oder zum "sicheren Surfen". In meinem Fall möchte ich das Debian 4.0 Gastsystem als Entwicklungsserver für Webseiten nutzen. Wie und wo man Virtualbox installiert, downloaded und mit einem Gastsystem bestückt soll nicht das Thema dieses Beitrags sein. In diesem Tutorial geht es wirklich nur um das NAT (Network Adress Translation, eigentlich Network Address Port Translation in diesem Fall) und wie man diese Portweiterleitung einrichten und anwendet.

Ich möchte von meinem Windows-Rechner per SSH und HTTP auf die Virtuelle Maschine zugreifen ohne aber die Konfiguration "Hostinterface" oder "Internes Netzwerk" zu nutzen. SSH lauscht auf auf Port 22 und HTTP ebenfalls unverändert auf dem bekannten Port 80. Ansprechen, also vom Windows her aufrufen, möchte ich SSH auf Port 9022 und HTTP auf 9080. Die Ports sind hierbei oberhalb von Port 1024 prinzipiell frei wählbar; ein bisschen Ordnung schadet sicherlich nicht und somit hat diese VM von mir die Nummer 90 bekommen und die Original-Ports habe ich einfach an gehangen.

Netzwerkeinstellungen Virtual Box, NAT

 

NAT-Konfiguration

Bei den Einstellungen für das Netzwerk innerhalb von Virtualbox muss NAT ausgewählt werden und beim direkten Bearbeiten der Konfigurations-XML-Datei ist ein Beenden des Programms notwendig, da Windows sonst das Schreiben in diese Datei verweigert. Da meine Maschine "Debian 4.0" und mein Anmeldename bei Windows "daniel" ist, lautet der Pfad zur XML bei mir

C:\Dokumente und Einstellungen\daniel\.VirtualBox\Machines\Debian 4.0\Debian 4.0.xml

Diese mit einem Texteditor öffnen und die folgenden 3 Zeilen zwischen <ExtraData> und </ExtraData> hinzufügen

<ExtraDataItem name="VBoxInternal/Devices/pcnet/0/LUN#0/Config/SSH/HostPort" value="9022"/>
<ExtraDataItem name="VBoxInternal/Devices/pcnet/0/LUN#0/Config/SSH/GuestPort" value="22"/>
<ExtraDataItem name="VBoxInternal/Devices/pcnet/0/LUN#0/Config/SSH/Protocol" value="TCP"/>

Für den HTTP-Port einfach 3 weitere Zeilen anhängen; ggf. weitere Dienste einfach entsprechend erweitern

<ExtraDataItem name="VBoxInternal/Devices/pcnet/0/LUN#0/Config/HTTP/HostPort" value="9080"/>
<ExtraDataItem name="VBoxInternal/Devices/pcnet/0/LUN#0/Config/HTTP/GuestPort" value="80"/>
<ExtraDataItem name="VBoxInternal/Devices/pcnet/0/LUN#0/Config/HTTP/Protocol" value="TCP"/>

Nun nur noch speichern, Virtual Box ausführen und die entsprechende VM starten.

 

Alternative zur XML-Bearbeitung

Eine andere Möglichkeit die XML-Datei zu beschreiben lässt sich mit Hilfe des sich im Funktionsumfang befindlichen VBoxManager bewerkstelligen. DOS-Box öffnen (Start > Ausführen > CMD) und zum Virtualbox-Verzeichnis navigieren

cd "c:\Programme\Sun\xVM VirtualBox\"

hier angekommen (die Pfade/ Laufwerke können natürlich von meinen abweichen) gilt es die 3 folgenden Befehle abzusetzen (STRG+C und in der DOS-Box Rechtsklick und Einfügen wählen)

VBoxManage setextradata "Debian 4.0" "VBoxInternal/Devices/pcnet/0/LUN#0/Config/SSH/HostPort" 9022
VBoxManage setextradata "Debian 4.0" "VBoxInternal/Devices/pcnet/0/LUN#0/Config/SSH/GuestPort" 22
VBoxManage setextradata "Debian 4.0" "VBoxInternal/Devices/pcnet/0/LUN#0/Config/SSH/Protocol" TCP

 

Einstellungen im Putty

Die VM läuft und nun möchte ich mit dem Putty auf die Linux-Konsole zugreifen. Hier habe ich einige Zeit gebraucht, um auf die Idee zu kommen, bei Hast Name nicht die IP der virtuellen Maschine einzugeben, sondern localhost oder 127.0.0.1. Bei Port kommt der weiter oben gewählte hinein und das war’s eigentlich schon. Der Zugriff müsste per SSH möglich sein; vorausgesetzt, dass auf der VM auch ein Dienst auf Port 22 lauscht.

Putty-Einstellungen für NAT Virtual Box

 

Was macht der Port 80?

Ein frisch installierter Apache auf dem Gastsystem liefert beim Aufruf von "http://localhost:9080" im Browser: "It works" – und genau so ist’s gemeint.

Weiterführende Informationen zum Thema:

bereits 3 Kommentare zu "Virtualbox – Port forwarding"
  1. Hinzugefügt durch Niko
    am 10.06.2009 um 23:38 Uhr

    Was gibt es denn noch für eine Möglichkeit außer Portforwarding wenn ich auf mehrere virtuelle Maschinen zugreifen möchte.

    Bei der Möglichkeit hier könnte man ja nur unterschiedliche Ports nehmen.

    Gehts nicht auch direkt über die IP wenn man Gastsystem und Hostsystem in das gleiche Subnetz hängt??

    Grüße aus Berlin!

  2. Hinzugefügt durch romeon
    am 23.10.2009 um 15:44 Uhr

    Wow!! Genau diese Infos suche ich schon seit langem!

    Super!! Vielen Dank für die Infos.
    Jetzt funktioniert alles auch bei mir einwandfrei!! :-)

  3. Hinzugefügt durch mauronaut
    am 09.01.2010 um 17:15 Uhr

    Klasse Anleitung – die Nutzung von VirtualBox auf einem WindowsXP System mit virtuellem Debian Lenny hat mich schon einige Stunden beschäftigt, um endlich per SSH und WinSCP auf die VB zuzugreifen. Die Anleitung hier löste sofort mein Problem – jetzt läuft alles wie gewünscht.

    Thnx!
    mauronaut

Kommentar abgeben




Kommentar (*)

Folgende Tags können verwendet werden: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

(*) erforderliche Angaben