web-dev-qa-db-fra.com

Système d'exploitation invité de VirtualBox accédant au serveur local sur le système d'exploitation hôte

Sur mon hôte Ubuntu, j'ai mon serveur Web local. J'ai installé VirtualBox et Debian en tant qu'invité.

J'aimerais que l'invité Debian puisse accéder à mon serveur Web exécuté sur mon hôte Ubuntu (par exemple, je tape simplement http://localhost:8080/ dans le navigateur sous Debian).

Comment cela peut-il être fait?

101
Maxim

Activer UNE carte réseau. Réglez-le sur NAT et démarrez votre machine. Pas besoin de configurer quoi que ce soit.

Sur le navigateur de l'ordinateur invité, tapez http://10.0.2.2 qui affichera le même contenu que "localhost" dans le système d'exploitation hôte.

10.0.2.2 est la "passerelle par défaut" pour NAT connexions et l'adresse IP de votre système d'exploitation invité est 10.0.2.15.

Bien sûr, vous pouvez définir un "Host-ONLY" ou un "réseau interne" qui vous permettra une autre configuration avancée. Je recommande de rester avec NAT.

Prendre plaisir

M.

170
Melvyn

Si vous utilisez MAMP, par exemple, ajoutez un numéro de port: 8888 pour que l'adresse complète se lit http://10.0.2.2:8888 lorsque vous utilisez l'adresse IP de 10.0.2.2.

5
Paul

Le moyen le plus simple d’autoriser un accès ininterrompu à votre ordinateur VirtualBox Guest consiste à configurer le périphérique réseau en tant que «pont» entre votre eth0 et votre réseau local.

La machine invité récupérera une adresse IP de réseau local via DHCP de votre routeur.

3
Ash Palmer

Ce que j’ai trouvé a résolu le problème pour moi, c’était de vérifier que l’adaptateur Windows VirtualHost-Only était défini sur l’adresse .1 de la plage d'adresses IP, de sorte que mon adaptateur d'hôte virtuel uniquement était 192.168.58.20 mais que l'adresse IP de l'adaptateur Windows était 192.168. 58,1

2
Jason Hardin

Si la solution de @Melvyn ne fonctionne pas, vous pouvez également configurer votre adaptateur réseau en pont.
Accédez à Settings -> Network -> puis remplacez Attached to par Bridged Adapter.

enter image description here

Vous devriez pouvoir appeler le parent par son nom d’hôte ou son adresse IP externe. Vous pouvez l’obtenir en accédant à l’Invite de commande et en tapant ipconfig /allenter image description here

enter image description here

Update Si vous déboguez avec Visual Studio et utilisez IIS Express.

aller à C:\Users\[uesername]\Documents\IISExpress\config\applicationhost.config

trouvez votre site Web dans <configuration>/<system.applicationHost>/<sites>/<site> (le nom peut être trompeur; essayez de vérifier l'emplacement sur le disque dans l'attribut physicalPath)

puis ajouter dans la nouvelle section <bindings>

<bindings>
    <binding protocol="http" bindingInformation="*:50766:localhost" />
    <binding protocol="http" bindingInformation="*:50766:48qzr12" />
</bindings>

où bindingInformation est *:[port]:[machineName]

J'espère que cela vous fait gagner du temps.

2
Matas Vaitkevicius

Eh bien, vous pouvez faire en sorte que Debian s’appuie sur votre serveur web, mais pas avec localhost. Vous devrez utiliser l'adresse IP de l'hôte Ubuntu.

En supposant que le système d'exploitation invité est connecté au réseau, pour saisir l'adresse IP, ouvrez un terminal et saisissez ifconfig. Devrait ressembler à 192.168.0.2.

0
Jivings