Chi da tempo utilizza Virtualbox certamente ne conosce tutti i rudimenti: dopo aver creato una nuova macchina virtuale, Virtualbox utilizza per impostazione predefinita la tecnica NAT (Network Address Translation). Con questo schema il sistema operativo installato nella virtual machine risulta isolato rispetto alla rete LAN e, quindi, non è raggiungibile da parte degli altri dispositivi collegati in rete locale né può comunicare con questi (utilizza una rete a sé stante).
Selezionando Scheda con bridge la macchina virtuale diverrà parte integrante della rete locale e sarà gestita come se fosse un sistema fisico collegato al router via cavo Ethernet.
Il fatto è che molto spesso si usano le macchine virtuali Virtualbox per scopi di test e il sistema guest ivi installato dovrebbe essere mantenuto separato non soltanto rispetto al sistema host ma tenuto isolato rispetto all’intera rete LAN.
Abbiamo più volte sottolineato che installando le Guest Additions (menu Dispositivi, Inserisci l’immagine del CD delle Guest Additions) è possibile attivare l’area degli appunti condivisa tra sistema host e guest oltre che la possibilità di trasferire file da una macchina all’altra con una semplice operazione di trascinamento (menu Dispositivi, Appunti condivisi, Bidirezionale e Dispositivi, Trascinamento e rilascio, Bidirezionale), anche nel caso in cui si optasse per l’impostazione NAT. Inoltre, servendosi della funzionalità Dispositivi, Cartelle condivise, si possono definire alcune cartelle condivise cui fare riferimento per il trasferimento dei file da una macchina all’altra.
Come attivare il port forwarding sulle macchine virtuali Virtualbox
Tutto ciò premesso, è interessante evidenziare che Virtualbox permette a sistemi operativi guest e host di comunicare direttamente anche attraverso l’utilizzo del port forwarding.
Abbiamo detto che una macchina virtuale con la scheda di rete impostata su NAT non è direttamente reggiungibile né dal sistema host né dalle altre macchine connesse in rete locale. Cliccando su Impostazioni quindi su Rete e infine su Avanzate nella finestra di Virtualbox (dopo aver selezionato la macchina virtuale d’interesse; che dovrà essere spenta) si troverà il pulsante Inoltro delle porte.
Premendo il pulsante “+” in alto a destra, si possono aggiungere una o più regole di port forwarding.
Supponendo di aver installato nella macchina virtuale (“Connessa a: NAT”) un server web in ascolto sulla porta 80 (HTTP), specificando un nome per la nuova regola di inoltro delle porte (colonna Nome) e inserendo, rispettivamente, 8080 e 80 in corrispondenza di Porta dell’host e Porta del guest, Virtualbox aprirà la porta TCP 8080 sull’IP della macchina host e inoltrerà automaticamente tutte le richieste di connessione ricevute su tale porta verso la 80 del sistema guest.
Lasciando vuote le colonne IP dell’host e IP del guest, digitando http://127.0.0.1:8080
nella barra degli indirizzi di un qualunque browser, ci si collegherà senza problemi al server web in esecuzione sulla macchina virtuale.
La stessa operazione può essere eseguita per qualunque servizio, in ascolto su qualsiasi porta. Per esempio, supponendo di aver installato, configurato e avviato un server SSH sul sistema guest, basterà creare in Virtualbox una regola di inoltro delle porte. Si può ad esempio indicare in entrambi i casi la porta 22 sia per l’host che per il guest (o specificarne una differente per il sistema host).
Nell’esempio usando un client SSH sull’host e tentando la connessione sulla porta 22 (IP di loopback 127.0.0.1
), verrà correttamente stabilita una connessione con il server SSH in esecuzione sulla macchina virtuale Virtualbox.
Non solo. I componenti server in esecuzione sulla macchina virtuale “nattata” risulteranno accessibili anche dagli altri sistemi connessi in rete locale: basterà digitare, in questo caso, non l’IP 127.0.0.1 (che si riferisce al sistema locale) bensì l’indirizzo privato della macchina ove sono in esecuzione Virtualbox ed è caricata la macchina virtuale.
Addirittura, effettuando un port forwarding sul router e indicando come IP di destinazione (insieme con la porta corretta) quello della macchina ove è in esecuzione Virtualbox, si potrà rendere accessibile da remoto il componente server installato nel sistema guest.
Suggeriamo anche la lettura degli articoli Virtualbox: come utilizzare le istantanee per creare un ambiente di test e Virtualbox, cos’è e come funziona. Le novità della sesta versione.