VirtualBox : réseau
Chaque machine dispose de plusieurs cartes réseau (--nic1 à --nic8), chacune dans un mode.
| Mode | Option | Invité vers Internet | Hôte vers invité | Autres machines du réseau vers l’invité |
|---|---|---|---|---|
| NAT | --nic1 nat |
Oui | Seulement avec redirection de port | Non |
| Réseau par pont | --nic1 bridged |
Oui | Oui | Oui (adresse du réseau local) |
| Hôte uniquement | --nic1 hostonly |
Non | Oui | Non |
| Réseau interne | --nic1 intnet |
Non | Non | Entre machines du même réseau interne |
| NAT Network | --nic1 natnetwork |
Oui | Avec redirection | Entre machines du même réseau NAT |
NAT et redirection de ports
Section intitulée « NAT et redirection de ports »Le NAT est le défaut. Pour joindre l’invité depuis l’hôte, rediriger des ports :
VBoxManage modifyvm srv1 --natpf1 "ssh,tcp,127.0.0.1,2222,,22"VBoxManage modifyvm srv1 --natpf1 "web,tcp,127.0.0.1,8080,,80"VBoxManage showvminfo srv1 | grep -i "NIC 1 Rule"VBoxManage modifyvm srv1 --natpf1 delete webFormat : nom,protocole,adresse-hôte,port-hôte,adresse-invité,port-invité.
ssh -p 2222 admin@127.0.0.1Avec 127.0.0.1 comme adresse de l’hôte, le port n’est joignable que depuis l’hôte lui-même. Sans adresse (champ vide), il écoute sur toutes les interfaces : n’ouvrir ainsi un service que volontairement et le filtrer avec UFW.
Si la machine tourne déjà, utiliser VBoxManage controlvm srv1 natpf1 "ssh,tcp,127.0.0.1,2222,,22" pour modifier la redirection à chaud.
Réseau par pont
Section intitulée « Réseau par pont »L’invité obtient une adresse du réseau local, comme une machine physique.
VBoxManage list bridgedifs | grep -E "^(Name|Status)"VBoxManage modifyvm srv1 --nic1 bridged --bridgeadapter1 enp3s0Le pont fonctionne avec une interface filaire ; la plupart des interfaces Wi-Fi et de nombreux réseaux de fournisseurs (VPS) refusent plusieurs adresses MAC sur un même port : dans ce cas, utiliser NAT ou hôte uniquement.
Réseau hôte uniquement
Section intitulée « Réseau hôte uniquement »Réseau privé entre l’hôte et les machines, sans accès extérieur :
VBoxManage hostonlyif createVBoxManage list hostonlyifsVBoxManage hostonlyif ipconfig vboxnet0 --ip 192.168.56.1 --netmask 255.255.255.0VBoxManage modifyvm srv1 --nic2 hostonly --hostonlyadapter2 vboxnet0Une machine peut avoir deux cartes : nic1 en NAT pour sortir sur Internet, nic2 en hôte uniquement pour s’y connecter depuis l’hôte.
Depuis VirtualBox 6.1.28, les plages d’adresses utilisables sont limitées par /etc/vbox/networks.conf :
sudo mkdir -p /etc/vboxecho '* 192.168.56.0/21' | sudo tee /etc/vbox/networks.confSans cette autorisation, la création de l’interface échoue (VBoxNetAdpCtl: Error while adding new interface: failed to open /dev/vboxnetctl ou erreur de plage). La plage 192.168.56.0/21 correspond à la valeur par défaut.
Configuration d’une adresse fixe dans l’invité Ubuntu (Netplan, /etc/netplan/60-hostonly.yaml) :
network: version: 2 ethernets: enp0s8: addresses: [192.168.56.10/24]sudo chmod 600 /etc/netplan/60-hostonly.yamlsudo netplan applyRéseau interne
Section intitulée « Réseau interne »Réseau fermé entre machines, sans l’hôte :
VBoxManage modifyvm srv1 --nic2 intnet --intnet2 reseau-priveVBoxManage modifyvm srv2 --nic2 intnet --intnet2 reseau-priveAucun serveur DHCP : configurer des adresses fixes dans les invités, ou ajouter un serveur DHCP (VBoxManage dhcpserver add --network=reseau-prive …).
NAT Network
Section intitulée « NAT Network »Plusieurs machines dans un même réseau NAT, avec accès à Internet :
VBoxManage natnetwork add --netname reseau-nat --network "10.0.2.0/24" --enable --dhcp onVBoxManage modifyvm srv1 --nic1 natnetwork --nat-network1 reseau-natVBoxManage natnetwork modify --netname reseau-nat --port-forward-4 "ssh:tcp:[]:2223:[10.0.2.15]:22"Cartes et adresses MAC
Section intitulée « Cartes et adresses MAC »VBoxManage modifyvm srv1 --nic1 nat --nic-type1 virtioVBoxManage modifyvm srv1 --macaddress1 080027AABBCCVBoxManage modifyvm srv1 --cable-connected1 on--nic-type1 virtio offre de meilleures performances pour un invité Linux (Ubuntu reconnaît le pilote).
Pare-feu de l’hôte
Section intitulée « Pare-feu de l’hôte »Les ports redirigés en NAT sont servis par le processus de VirtualBox sur l’hôte : UFW les filtre comme tout port en écoute.
sudo ufw allow from 203.0.113.10 to any port 2222 proto tcp comment 'SSH vers srv1'Voir UFW : écrire des règles. Un redirection sur 127.0.0.1 n’a pas besoin de règle : elle n’est pas joignable de l’extérieur.
Dépannage
Section intitulée « Dépannage »| Symptôme | Piste |
|---|---|
| L’invité n’a pas d’adresse | DHCP du NAT non joignable : vérifier --nic1 nat et --cable-connected1 on ; relancer l’interface dans l’invité |
Connexion à 127.0.0.1:2222 refusée |
Redirection absente (showvminfo), SSH non installé dans l’invité, pare-feu de l’invité |
VERR_INTNET_FLT_IF_NOT_FOUND / bridged ne marche pas |
Interface physique incorrecte, ou module vboxnetflt absent |
Création de vboxnet0 refusée |
/etc/vbox/networks.conf : autoriser la plage |
| L’invité est joignable en pont mais sans Internet | Passerelle ou DNS de l’invité (Netplan) |
| Deux machines avec la même adresse | Adresses MAC identiques après un clonage : --macaddress1 auto ou clonevm sans keepallmacs |
Ubuntu 24.04 et 26.04 : différences à connaître
Section intitulée « Ubuntu 24.04 et 26.04 : différences à connaître »Les modes réseau sont les mêmes ; les options hôte uniquement et NAT Network ont changé de forme en VirtualBox 7.0 (--nic1 hostonlynet est une alternative à hostonly depuis 7.0). La configuration réseau de l’invité Ubuntu utilise Netplan sur les deux versions.