VirtualBox è una piattaforma di virtualizzazione ampiamente utilizzata per la creazione e la gestione delle macchine virtuali. Sebbene si tratti di una piattaforma open source, alcuni componenti a source a chiusura sono anche inclusi in un diverso pacchetto di estensione. È gratuito per l'uso, ma è possibile acquistare una licenza Enterprise ORACLE VM VirtualBox Extension Pack se si desidera utilizzarla per scopi commerciali e richiedere supporto ufficiale standard.
Quando viene creata una nuova macchina virtuale in VirtualBox, la modalità di rete predefinita è impostata su NAT o traduzione dell'indirizzo di rete. La modalità NAT ha i suoi vantaggi e limitazioni su altre modalità di networking. In sostanza, NAT è più sicuro ma allo stesso tempo più complicato quando si tratta di impostare la comunicazione incrociata con altre macchine virtuali e il mondo esterno. Se si desidera che la macchina virtuale ottenga sia la sicurezza che l'accesso a servizi specifici con la modalità NAT, richiederebbe l'aiuto di Port Forwarding. In questo modo, la VM rimarrà isolata dagli altri ma accede comunque ai servizi specifici.
Cosa copriremo?
Questa guida vedrà come possiamo impostare il port forwarding in VirtualBox utilizzando metodi grafici e di riga di comando. Useremo un Ubuntu 20.04 Virtual Machine per questo scopo. Per verificare se la configurazione funziona, imposteremo la porta in avanti sulla nostra VM per l'accesso SSH dalla porta 22 alla porta 9099 nel metodo grafico e dalla porta 22 alla porta 2222 nel metodo della riga di comando. Andiamo avanti con questa configurazione senza ulteriori ADO.
Prerequisito
Iniziare con il port forwarding
Metodo 1. Port Forwarding utilizzando VirtualBox Graphical Interface
Passo 1. Dal riquadro sinistro della finestra principale VirtualBox, selezionare la macchina virtuale dall'elenco. Ora fai clic con il pulsante destro del mouse sul nome della macchina virtuale e scegli l'opzione "Impostazioni" o seleziona l'icona "Impostazioni" dal riquadro destro.
Passo 2. Nella nuova finestra pop-up, selezionare l'etichetta corrispondente a 'Network.'Ora fai clic sull'icona della freccia allegata con l'etichetta corrispondente all'opzione' avanzata '.
Passaggio 3. Fai clic sul pulsante "Port Forwarding". Apparirà una nuova finestra pop-up. Qui usa l'icona "+" per aggiungere una nuova regola.
Passaggio 4. Nelle caselle di testo corrispondenti a diverse etichette, riempire i vari dettagli per la nuova regola. Abbiamo usato il seguente:
Nome (nome del servizio): Ssh
Protocollo: TCP
IP host: Indirizzo IP della macchina host
Porta ospite: Porta sulla macchina host a cui verrà inoltrata la richiesta dell'ospite.
IP ospite: Indirizzo IP della macchina per gli ospiti
Porta degli ospiti: Porta predefinita di un servizio in esecuzione sulla macchina per gli ospiti.
In questa guida, dal momento che utilizziamo il servizio "SSH" sul protocollo "TCP", la porta degli ospiti avrà 22 anni. Il nostro porto host, come già detto, è 9099. Stiamo lasciando l'IP ospite per ottenere automaticamente l'IP da VirtualBox. Allo stesso modo, la colonna IP host viene lasciata vuota in quanto ciò sarà equivalente a 0.0.0.0; Ciò significa che qualsiasi macchina che abbia accesso al tuo host sulla porta 9099 può anche accedere a SSH alla VM ospite.
Una volta terminati i passaggi sopra, salva queste impostazioni premendo il pulsante OK.
Testare l'installazione
Prima di provare a SSH nella VM ospite, assicurarsi che il server OpenSSH sia installato su di esso. In caso contrario, puoi installarlo usando il comando:
$ sudo apt install OpenSsh-server
Passo 1. Prova a ssh la VM ospite dall'host sulla porta 9099. Per questo, usa il comando:
$ sudo ssh -l 'nome utente' 0.0.0.0 -P 9099
'nome utente'è il nome dell'utente sulla VM ospite.
Metodo 2. Port Forwarding utilizzando l'interfaccia della riga di comando
Un altro modo per configurare l'inoltro della porta è l'utilizzo VBoxManage di VirtualBox Strumento di comando. Qui mostreremo come funziona:
Passo 1. Elenca tutte le macchine virtuali sulla macchina host con il comando:
VmsManage List VMS
Dalla figura sopra, possiamo vedere che sta mostrando due VM: i) Fedora 34 ii) Ubuntu 20.04.
Passo 2. Ora usa il formato seguente per eseguire il port forwarding Se la macchina virtuale è accesa :
VBoxManage ControlVM "VM Nome" Natpf1 "Guestssh, TCP ,, 2222 ,, 22"
Se la VM è arrestata, usa:
VBoxManage ModifyVM "VM Nome" -NATPF1 "Guestssh, TCP ,, 2222 ,, 22"
Ora di nuovo, prova ad accedere con il tuo comando:
sudo ssh -l 'username'0.0.0.0 -P 2222
Qui "Nome VM" è il nome della macchina virtuale che abbiamo ottenuto nel passaggio sopra. "Nome utente" è il nome dell'utente sulla VM ospite.
Conclusione
VirtualBox è una buona scelta per lo sviluppo e il test in quanto può aiutarti a risparmiare tempo e denaro. Il comando VBoxManage è conveniente in quanto possiamo controllare (avvia, arrestare, sospendere) le VM dalla riga di comando. Ciò è particolarmente utile quando l'accesso grafico al server VM non è disponibile presso il data center. Questa guida è testata su Ubuntu 20.04, ma dovrebbe funzionare su qualsiasi macchina che supporti l'accesso SSH.