J'aimerais essentiellement accéder à mon ordinateur hôte à partir de l'invité de VirtualBox. Existe-t-il une adresse IP pour mon hôte que je peux utiliser à partir de l'invité? Y at-il des étapes supplémentaires nécessaires pour configurer cela? J'aimerais accéder aux services Apache, FTP et SSH de mon hôte.
Cette réponse concerne à peu près une configuration d’OS invité dans VirtualBox; il vous suffit d'utiliser l'adresse de la passerelle réseau sur le système d'exploitation invité pour vous connecter au système d'exploitation hôte à partir d'un système d'exploitation invité.
Dans la configuration par défaut de Vagrant, vous devriez pouvoir atteindre votre hôte via la passerelle par défaut.
Sur les invités Windows, vous pouvez facilement déterminer cette adresse IP en exécutant la commande suivante:
ipconfig
Cela devrait évacuer quelque chose comme ceci:
Windows IP Configuration
Ethernet adapter Local Area Connection:
Connection-specific DNS Suffix . :
IP Address. . . . . . . . . . . . : 10.0.2.15
Subnet Mask . . . . . . . . . . . : 255.255.255.0
Default Gateway . . . . . . . . . : 10.0.2.2
Dans cet exemple, l'invité peut atteindre l'ordinateur hôte 10.0.2.2
.
Sur les invités Unix/Linux, utilisez la commande:
netstat -rn
Cela devrait évacuer quelque chose comme ceci:
Kernel IP routing table
Destination Gateway Genmask Flags MSS Window irtt Iface
192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 wlan0
169.254.0.0 0.0.0.0 255.255.0.0 U 0 0 0 wlan0
0.0.0.0 192.168.1.1 0.0.0.0 UG 0 0 0 wlan0
Dans cet exemple, l'invité peut atteindre l'ordinateur hôte 192.168.1.1
.
L'accès au serveur Web de l'ordinateur hôte à partir de l'invité est facile. Cela peut être fait facilement en utilisant deux méthodes. D'abord faire ce qui suit
Si la valeur estNAT, suivez les instructions
La passerelle par défaut lorsque vous configurez la boîte virtuelle est généralement10.0.2.2
comme valeur par défaut. Si vous n'avez rien changé, cela fonctionnera. Mais si vous l'avez changé et que l'ordinateur invité que vous exécutez est windows exécutez la commande suivante et recherchez la passerelle par défaut.
ipconfig /all
Si vous êtes sur Linux, Unix ou Mac OS, lancez la commande suivante pour l'obtenir
netstat -rn | grep 'default' | awk '{print $2}'
Accédez au navigateur Web, tapez cette passerelle par défaut et appuyez sur Entrée. Le serveur Web est accessible.
ipconfig
et obtenez l'adresse IPifconfig | grep 'inet'
et obtenez l'adresse IP.Une autre façon de faire consiste à utiliser un réseau virtuel de type "hôte". Cela vous donne une interface dans l'OS invité avec une adresse sur un sous-réseau local différent du sous-réseau "externe" sur lequel votre ordinateur hôte se trouve. Pour que cela fonctionne, vous devez vous assurer de quelques choses:
Une fois que cela est fait, vous devriez pouvoir "voir" l'hôte à partir de la VM via le nom que vous avez codé dans le fichier de l'hôte.
Par exemple, sur mon hôte Ubuntu 11.04, je reçois une interface virtuelle "vboxnet0" sur 192.168.56.1. Les adaptateurs des machines proposent quelque chose comme 192.168.56.101. Je n'ai pas besoin d'aller dans à mes machines virtuelles, mais je suppose que cela serait possible via une modification symétrique du fichier hôte de l'hôte. J'ajoute
192.168.56.1 mymachine
sur les fichiers hôtes du système d'exploitation invité, et ils peuvent (par exemple) voir le serveur Web de mon ordinateur hôte à l'adresse
http://mymachine/whatever
Vous pouvez bien entendu configurer des adaptateurs pontés et des adaptateurs hôtes uniquement.
Voici une autre solution à ce problème en utilisant une interface réseau supplémentaire et en configurant le trafic destiné à l'hôte pour l'acheminer sur une interface supplémentaire.
Vous pouvez créer des dossiers partagés dans VirtualBox. Cela créera automatiquement un «partage réseau» dans Virtual Box pour accéder aux dossiers de votre système d'exploitation hôte.
Voici une étape décente dans un OS invité Windows XP: