Question Connectez-vous à la machine hôte à partir d'un OS invité VirtualBox?


Je voudrais essentiellement accéder à mon ordinateur hôte à partir de l'invité dans VirtualBox. Existe-t-il une adresse IP pour mon hôte que je peux utiliser de l’invité? Y a-t-il des étapes supplémentaires nécessaires pour configurer cela? Je souhaite accéder aux services Apache, FTP et SSH de mon hôte.


186
2017-07-14 22:53


origine


Difficile à résoudre sans aucun indice sur la configuration réseau de votre invité. Certains n'autorisent pas l'accès à l'hôte. Essayez l'adresse de passerelle par défaut de l'invité. - Turbo J
Il s'avère que je peux y accéder via ma passerelle par défaut à 10.0.2.2. - Naftuli Kay
En relation: stackoverflow.com/q/19933550/1157054  stackoverflow.com/q/16244601/1157054 - Ajedi32


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 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:

ipconfig

Il devrait sortir 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 la machine hôte 10.0.2.2.


Sur les invités basés sur Unix / Linux, utilisez la commande:

netstat -rn

Il devrait sortir 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 la machine hôte 192.168.1.1.


236
2017-07-15 01:49



Toute idée pourquoi la connectivité serait terriblement lente lors de la connexion en utilisant la passerelle par défaut selon votre réponse? - Ben Swinburne
Cela ne semblait pas fonctionner pour moi (Ubuntu 12.04, Vagrant 1.0). La passerelle par défaut dans l'invité a montré comme 10.0.2.2, et une nmap de cette adresse IP a échoué. 192.168.33.1 semble être la bonne adresse IP. (J'avais config.vm.network :hostonly, "192.168.33.52" dans ma config.) - Ajedi32
En fait, tant pis. Cela a fonctionné. nmap ne fonctionnait pas pour une raison quelconque; pas certain de pourquoi. Je pouvais toujours me connecter aux services exécutés sur l'hôte à partir de cette IP, même si nmap ne les montrait pas. - Ajedi32
netstat -rn sur CentOS 7.2, Docker 1.11 affichait un 172.17 adresse comme ma passerelle, mais cette adresse IP ne correspond pas à mon hôte. Il se trouve que 10.0.2.2 fait. - Spencer Williams


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. Commencez par faire ce qui suit

  • Aller à Dispositifs et sélectionnez Adaptateurs réseau... 
  • Dans les paramètres de l’adaptateur, recherchez Attaché à.
  • Si la valeur est NAT, faire suivre

  • La passerelle par défaut lorsque vous configurez Virtual box est généralement 10.0.2.2 comme valeur par défaut. Si vous n'avez rien changé, cela fonctionnera. Mais si vous l'avez changé et que la machine invité vous sont en cours d'exécution les fenêtres exécutez la commande suivante et trouvez la valeur par défaut passerelle

    ipconfig /all

    Si vous êtes sur Linux, Unix ou Mac OS, exécuter la commande suivante pour trouver

    netstat -rn | grep 'default' | awk '{print $2}'

  • Accédez au navigateur Web et tapez cette passerelle par défaut et appuyez sur Entrée. Le serveur Web est accessible.

  • Si la valeur est Adaptateur ponté, faire suivre
    • trouver l'adresse IP de l'hôte et de l'invité
      • si vous êtes sur Windows, exécutez ipconfig et obtenir l'adresse IP
      • si vous êtes sous Linux, Unix ou Mac OS, exécutez ifconfig | grep 'inet' et obtenir une adresse IP
      • l'adresse IP est comme 192.168.1.1
    • Si vous souhaitez accéder à l'hôte, exécutez le navigateur dans l'invité et entrez l'adresse IP de l'hôte
    • Si vous souhaitez accéder à l'invité, exécutez le navigateur dans l'hôte et entrez l'adresse IP de l'invité

29
2017-07-14 12:27





Une autre façon de faire consiste à utiliser un type de réseau virtuel «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 "monde extérieur" sur lequel se trouve votre ordinateur hôte. Pour que cela fonctionne, vous devez vous assurer de quelques choses:

  • Votre VM a un adaptateur "hôte uniquement" configuré;
  • Vos services hôtes doivent écouter tous les adaptateurs locaux, ou du moins ceux que vous souhaitez pouvoir contacter.
  • Votre hôte aura son propre adaptateur virtuel et vous souhaiterez déterminer son adresse IP et l’ajouter au fichier "hosts" de votre système d’exploitation invité (mais cela fonctionne pour le système d’exploitation invité; sur Windows XP, il ne s'agit que de la " hosts "fichier enterré dans C: / WINDOWS / system32 / drivers / etc). Donnez-lui un nom que vous souhaitez utiliser pour le nom d'hôte de l'hôte.

Une fois cela fait, vous devriez être capable de "voir" l’hôte depuis 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 dans les machines proposent quelque chose comme 192.168.56.101. Je n'ai pas besoin d'y 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

vers les fichiers hôte du SE hôte, et ils peuvent (par exemple) voir le serveur Web de mon ordinateur hôte à

http://mymachine/whatever

Vous pouvez bien entendu configurer des adaptateurs pontés et des adaptateurs hôte uniquement.


8
2017-07-17 18:37





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 OS hôte.

Voici un pas à pas décent dans un OS invité Windows XP:

http://www.giannistsakiris.com/index.php/2007/09/28/virtualbox-access-shared-folders-from-windows-xp-guest-os/


0
2017-07-14 23:08



Je peux donc accéder à mon hôte sur / vboxsvr / ShareName? - Naftuli Kay
Oui, vous devez définir un dossier comme C: \ STUFF à partager avec VirtualBox. Dans VirtualBox Guest OS, vous pouvez accéder à ce vboxserver et accéder aux dossiers partagés. - kobaltz
Je ne veux pas réellement le dossier partagé. Je veux une adresse IP pour ma machine hôte. Quand je l'obtiens, je voudrais l'utiliser pour utiliser des services sur ma machine hôte, à savoir: echo "GET /\r\n\r\n" | nc 192.168.100.100 80 (envoie une requête HTTP GET à mon ordinateur hôte à partir de l'invité.) - Naftuli Kay
Dans ce cas, vous devrez peut-être définir votre carte réseau de système d'exploitation invité sur un pont. Cela va extraire une adresse IP de votre DHCP ou routeur. Vous pourrez alors accéder en mode natif à votre ordinateur hôte via l'adresse IP au lieu du dossier partagé VBox. - kobaltz


Voici une autre solution à ce problème en utilisant une interface réseau supplémentaire et en définissant le trafic destiné à l'hôte pour acheminer via une interface supplémentaire.


0
2018-03-28 15:12



Bienvenue sur Super User! Ce serait bien pour inclure les parties essentielles de la réponse ici, et fournir le lien uniquement pour référence future. - slhck