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.
networking
virtualbox
virtualization
Naftuli Kay
la source
la source
Réponses:
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 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:
Cela devrait évacuer quelque chose comme ceci:
Dans cet exemple, l'invité peut atteindre la machine hôte
10.0.2.2
.Sur les invités Unix / Linux, utilisez la commande:
Cela devrait évacuer quelque chose comme ceci:
Dans cet exemple, l'invité peut atteindre la machine hôte
192.168.1.1
.la source
10.0.2.2
et un nmap de cette adresse IP a échoué. 192.168.33.1 semble être la bonne adresse IP. (J'ai euconfig.vm.network :hostonly, "192.168.33.52"
dans ma config.)netstat -rn
sur CentOS 7.2, Docker 1.11 affichait une172.17
adresse comme passerelle, mais cette adresse IP ne correspondait pas à celle de mon hôte. Il s'avère que c'est ce qui10.0.2.2
s'est passé.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 est NAT , procédez comme suit
La passerelle par défaut lorsque vous configurez la boîte virtuelle est généralement la
10.0.2.2
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 utilisez est Windows, exécutez la commande suivante et trouvez la passerelle par défautipconfig /all
Si vous êtes sous Linux, Unix ou Mac OS, exécutez 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 IPla source
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érente du ou des sous-réseaux "extérieur" sur lequel votre ordinateur hôte est allumé. 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 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 ne ai pas besoin d'aller dans ma VMs, mais je suppose que ce serait possible via un changement symétrique au fichier hôte de l'hôte. J'ajoute
fichiers hôtes de l'OS invité, et ils peuvent (par exemple) voir le serveur Web de ma machine hôte à l'adresse
Vous pouvez bien entendu configurer des adaptateurs pontés et des adaptateurs hôtes uniquement.
la source
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:
la source
echo "GET /\r\n\r\n" | nc 192.168.100.100 80
(envoyer une demande HTTP GET à ma machine hôte depuis l'invité.)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 le router sur une interface supplémentaire.
la source