Introduction
Gnome-boxes permet de virtualiser très simplement des systèmes.C'est donc un outils pratique pour qui veut tester une distribution avant de l'installer sur un serveur ou remplacer sa distribution courante (voire même lancer windows).
Le problème c'est que NetworkManager ne gère pas vraiment l'interface réseau virtuelle créer par ces machine virtuelles (enfin par libvirt exactement, mais bon ...).
Contourner le problème
Rien de plus simple (après plusieurs heures de recherche et de tentatives).
On arrête le service "NetworkManager" pour le "remplacer" par le service "network"
$ sudo systemctl stop NetworkManager.service
$ sudo systemctl start network.service
Si tout ce passe bien vous devriez toujours avoir votre connexion internet active et fonctionnelle (la preuve la rédaction de ce charabia).
Configurer Gnome-Boxes
Une petite modification de la configuration de gnome-boxes s'impose. Contrairement à ses concurrents (virt-manager, VirtualBox, ...), on ne peut tout simplement
rien presque rien configurer ... graphiquement.
Il existe un outils obscur qui permet de manipuler ces machines virtuelles "virsh".
Par défaut qemu utilise le mode "user" pour générer une interface réseau, qui permet d'accéder à internet, mais ne permet pas d'échange entre l'hôte et l'invité. Il faut passer la configuration au mode "bridge".
On liste toutes nos machines :
$ virsh -c qemu:///session list --all
ID Nom État
----------------------------------------------------
- boxes-unknown fermé
- OpenMediaVault fermé
On édite celle que l'ont veux éditer
$ virsh edit OpenMediaVault
Si vous n'êtes pas familier avec vi, je vous conseille d'ajouter ces lignes dans votre ~/.bashrc (ou ~/.bash_rc selon les distros)
export VISUAL=gedit
export EDITOR=vim # ou nano
dans le fichier de configuration XML rechercher la balise "interface". Vous deviez avoir ces lignes (ou quelque chose d'approchant):
<interface type='user'>
<mac address='52:54:00:bf:c5:97'/>
<model type='rtl8139'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
</interface>
Il faut les modifier pour obtenir ceci
<interface type='bridge'>
<mac address='52:54:00:bf:c5:97'/>
<model type='virtio'/>
<source bridge='virbr0'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
</interface
Maintenant, en relançant votre machine virtuelle vous deviez pouvoir y accéder comme si c'était un ordinateur de votre réseau (enfin seulement à partir de votre PC).
Attention : l'adresse IP de l'invité n'est pas sur le même réseau que votre réseau local. Par exemple mon réseau est configuré sur 192.168.0.0/24, or celui de la machine virtuelle sur 192.168.122.0/24.
Sources :