Port forwarding sous VirtualBox (SSH, HTTP, FTP)

Salut Internaute,

La virtualisation c'est le bien, ça permet de tester plein de choses, pour un coût vraiment minime. Par contre, tout le monde n'a pas les moyens de se payer un bon serveur de virtualisation dédié à cela et c'est bien pratique de tester ça en local sur sa machine. VirtualBox est une des solutions sur le marché pour faire de la virtualisation facilement.

Mais une fois le setup de la machine virtuelle (VM) effectué cela devient assez fatiguant de passer par le mapping clavier ( + souris) dans la fenêtre de la VM pour taper plein de jolies choses dans le terminal.

Aussi, malheureusement, VirtualBox fonctionne en mode NAT nativement, c'est très pratique parce que ça fonctionne immédiatement, mais cela rend la VM invisible depuis la boucle locale! En effet, impossible d'initier une connexion en direct avec la machine virtuelle sur un port X ou Y, c'est toujours la machine hôte qui répond!

La solution est de créer via VirtualBox des ports qui vont être spécifiques à la machine et qui vont écouter sur la boucle locale.

Pour cela, lance ton Terminal préféré et tape les lignes suivantes (guestname est le nom de ta machine virtuelle):

VBoxManage setextradata <guestname> "VBoxInternal/Devices/e1000/0/LUN#0/Config/ssh/HostPort" 2222
VBoxManage setextradata <guestname>;    "VBoxInternal/Devices/e1000/0/LUN#0/Config/ssh/GuestPort" 22
VBoxManage setextradata <guestname> "VBoxInternal/Devices/e1000/0/LUN#0/Config/ssh/Protocol" TCP

Le type de carte réseau virtuelle par défaut sous VirtualBox est Intel Pro / 1000 c'est pourquoi nous avons e1000 en Internal Device. Par contre, si tu as séléctionné une carte de type PCnet, alors il faut remplacer "e1000" par "pcnet"

Ensuite, tu peux te connecter en ssh sur ta machine via ssh [email protected] -p 2222

La manip est donc valable pour HTTP (apache ou autre), FTP, etc. Il suffit de se faire son petit mapping personnel (8080 vers 80, 2121 vers 21, etc)

Allez, salut!