SMsoft – informatica e dintorni

varie su OSX, GNU/Linux e l'Open Source

VirtualBox, NAT e Port Forwarding su host OSX

Nota: quanto scritto di seguito è stato testato con VirtualBox 1.6.x su host OSX e guest Linux, anche se le istruzioni riportate possono essere adattate ad altre situazioni

Attualmente VirtualBox non gestisce direttamente le connessioni bridge, ovvero non è possibile configurare l’IP della macchina guest con la stessa rete della macchina host.

Questo non consente di raggiungere la macchina guest direttamente dalla macchina host tramite rete, perché gli IP della macchina guest ed host sono su reti differenti.

La connessione di rete della macchina guest viene infatti configurata dal pannello di VirtualBox in modalità NAT.

E’ però possibile raggiungere la macchina guest dalla macchina host via rete tramite un “port forwarding”. Non mi dilungo a parlare del “port forwarding” di cui trovate molta documentazione onLine; riporto di seguito le semplici operazioni da fare.

Supponiamo che la macchina guest si chiami “Debian” e che volessi raggiungerla via ssh (dopo aver chiaramente installato il server ssh sul guest), basterebbe digitare nel terminale di OSX:

VBoxManage setextradata "Debian"
           "VBoxInternal/Devices/pcnet/0/LUN#0/Config/guestssh/GuestPort" 22
VBoxManage setextradata "Debian"
           "VBoxInternal/Devices/pcnet/0/LUN#0/Config/guestssh/Protocol" TCP
VBoxManage setextradata "Debian"
           "VBoxInternal/Devices/pcnet/0/LUN#0/Config/guestssh/HostPort" 2222

Con queste semplici opzioni si crea un port forward dalla porta locale 2222 verso la porta 22 del guest. La connessione ssh è ora possibile digitando nel terminale dell’host:

ssh -l <username> -p 2222 localhost

La stessa cosa è possibile per tutti gli altri protocolli, ad esempio per contattare dall’host il server web del guest, basta fare:

VBoxManage setextradata "Debian"
           "VBoxInternal/Devices/pcnet/0/LUN#0/Config/guestweb/GuestPort" 80
VBoxManage setextradata "Debian"
           "VBoxInternal/Devices/pcnet/0/LUN#0/Config/guestweb/Protocol" TCP
VBoxManage setextradata "Debian"
           "VBoxInternal/Devices/pcnet/0/LUN#0/Config/guestweb/HostPort" 8888

e poi aprire il browser sull’host e richiamare

http://localhost:8888

In alternativa è possibile modificare direttamente il file xml di configurazione del guest:

~/Library/VirtualBox/Machines/Debian/Debian.xml

ed inserire dopo l’ultimo <ExtraDataItem ….. />:

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

Buon lavoro!




Se hai trovato utili le informazioni su questo blog,
Fai una donazione!
Clicca sul bottone qui sotto
Category: Open Source, OSX

Page optimized by WP Minify WordPress Plugin