VirtualBox et OS X fournissent plusieurs méthodes (non-NAT) pour connecter votre machine virtuelle :
1. L'adaptateur ponté de VirtualBox :
Tout d'abord, supprimez bridge1 dans Terminal et utilisez un "Adaptateur Ponté" au lieu de vboxnet0 dans votre machine virtuelle. Allez dans les paramètres Réseau de la machine virtuelle respective -> Adaptateur1 -> attaché à : et changez le type de celui-ci par "Adaptateur Ponté" puis choisissez votre interface Wi-Fi :
L'interface en0 de la machine virtuelle attachée à l'adaptateur ponté doit être configurée avec une IP unique dans le même réseau que l'IP de l'interface de l'hôte :
Exemple :
- Configuration de mon interface en1 de l'hôte : réseau : 192.168.1.0/24 IP : 192.168.1.2 passerelle : 192.168.1.1
- Configuration de l'interface eth0 de la machine virtuelle : réseau : 192.168.1.0/24 IP : une IP libre et unique dans la plage 192.168.1.3-192.168.1.254 passerelle : 192.168.1.1
Si vous souhaitez rendre la machine virtuelle accessible à d'autres ordinateurs sur le WAN (internet) (par exemple, un serveur web), vous devez rediriger les ports respectifs dans le routeur vers l'IP de la machine virtuelle. La machine virtuelle peut être accédée par tous les autres ordinateurs dans le même réseau (192.168.1.0/24) dans votre LAN directement.
En fin de compte, cela ressemble à ceci :
WAN <---> Routeur/Switch (& redirection de port vers la VM) <----> Mac <-------> VM
192.168.1.1 192.168.1.2 192.168.1.130
¦
¦
autres Mac(s)
192.168.1.3|4|5...
2. Le pont OS X
Je suppose que en1 est votre interface Wi-Fi et eth0 est le premier adaptateur dans votre machine virtuelle (Linux). Vérifiez cela avec ifconfig
sur votre hôte de machine virtuelle. Veuillez adapter les commandes et changer les interfaces ci-dessous si nécessaire.
Si vous ne souhaitez pas utiliser l'"Adaptateur Ponté" mais vboxnet0, faites ce qui suit après avoir démarré VirtualBox :
Attachez l'adaptateur 1 de la machine virtuelle à l'"Adaptateur en mode Host-only" et au "Nom" vboxnet0.
Sur l'hôte dans Terminal, entrez :
sudo sysctl -w net.inet.ip.forwarding=1
sudo ifconfig bridge1 destroy #si bridge1 existe toujours
sudo ifconfig en1 down
sudo ifconfig vboxnet0 down
sudo ifconfig bridge1 create
sudo ifconfig bridge1 addm vboxnet0 addm en1
sudo ifconfig bridge1 192.168.1.2 netmask 255.255.255.0 up
Dans la machine virtuelle (Linux), vous devez configurer une adresse IP et une route par défaut :
sudo ipconfig eth0 192.168.56.101 netmask 255.255.255.0 arp
sudo route add default gw 192.168.56.1
Un "Gestionnaire de Réseau" configuré pourrait interférer avec ces paramètres.
Sur les différents Macs de votre réseau, vous devez configurer une route statique supplémentaire :
sudo route -n add -net 192.168.56.0/24 192.168.1.2
Sur le routeur, vous devez rediriger les ports vers la VM et ajouter une route statique vers 192.168.56.0/24 pour rendre la VM accessible à d'autres ordinateurs sur le WAN (internet).
En fin de compte, cela ressemble à ceci :
WAN <---> Routeur/Switch (& redirection de port vers la VM & route statique vers 192.168.56.0/24) <-----> Mac <----------------------> VM
192.168.1.1 192.168.1.2|192.168.56.1 192.168.56.101 (& passerelle par défaut ou route statique vers 192.168.1.0/24)
¦
¦
autres Mac(s)
192.168.1.3|4|5... (& route statique vers 192.168.56.0/24)
Le pont et les différentes routes (à l'exception de celles sur le routeur et de la passerelle par défaut de la machine virtuelle) ne survivent pas à un redémarrage.
Pour annuler tous les changements :
Pour supprimer bridge1 sur l'hôte, faites ce qui suit :
sudo ifconfig bridge1 down
sudo ifconfig bridge1 deletem en1 deletem vboxnet0
sudo ifconfig bridge1 destroy
Pour désactiver le transfert sur l'hôte, faites ce qui suit :
sudo sysctl -w net.inet.ip.forwarding=0
Pour supprimer les routes statiques sur le Mac, entrez :
sudo route -n delete -net 192.168.56.0/24 192.168.1.2
Supprimez la route statique sur le routeur.
En fin de compte, on pourrait dire qu'il est beaucoup plus facile et plus confortable d'utiliser la méthode 1.