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

107

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 s'exécutant sur mon hôte Ubuntu (par exemple, je viens de taper http://localhost:8080/dans le navigateur sous Debian).

Comment cela peut-il être fait?

Maxime
la source

Réponses:

177

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 la machine invitée, tapez http://10.0.2.2 pour afficher 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 les connexions NAT 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.

Melvyn
la source
1
"Activer UNE seule carte réseau". Où est-ce fait?
jshen
1
Remarque: Si des hôtes virtuels nommés sont configurés sous Apache sur votre ordinateur hôte, vous pouvez y accéder en créant simplement un mappage dans le fichier hosts de l'ordinateur de l'invité pour10.0.2.2 yourvirtualhostname.local (or whatever)
Utilisateur
@ L'utilisateur êtes-vous sûr que votre dernier commentaire fonctionnera? J'ai un hôte virtuel sur mon hôte VB configuré sur http://example.dev, et le mappage 10.0.2.2sur tout ce qui se trouve sur mon invité VB n'aide pas à y accéder.
Photo de vendredi
1
@ ТомицаКораћ ça marche. Par exemple, consultez: askubuntu.com/questions/36183/… cependant, vous devriez probablement ouvrir une question distincte pour résoudre ce problème.
Utilisateur
1
"Activer UN adaptateur réseau" signifie que, dans les paramètres réseau de votre machine virtuelle (dans VirtualBox), vous ne pouvez activer qu'un seul des adaptateurs. M'a un peu confus quand je l'ai lu la première fois.
Marquez
5

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

Paul
la source
3

Le moyen le plus simple d’autoriser un accès ininterrompu à votre ordinateur VirtualBox Guest consiste à configurer le périphérique réseau comme un «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.

Ash Palmer
la source
Pour clarifier: il s'agit d'un paramètre dans l'application client. Cela a fonctionné pour moi - cela m'a pris juste un certain temps pour le réaliser, car IE était trop stupide pour supposer que je voulais une connexion HTTP lorsque je tapais une adresse IP et un port dans la barre d'adresse.
Michael Scheper
2

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 de boîte virtuelle uniquement était 192.168.58.20 mais que l'adresse IP de l'adaptateur Windows était 192.168. 58,1

Jason Hardin
la source
2

Si la solution de @Melvyn ne fonctionne pas, vous pouvez également configurer votre adaptateur réseau en pont.
Allez à Settings-> Network-> puis Attached topassez à l’adaptateur ponté.

entrez la description de l'image ici

Vous devriez pouvoir appeler le parent par son nom d’hôte ou son adresse IP externe. Vous pouvez l’obtenir en allant sur Invite de commande et en tapant ipconfig /all entrez la description de l'image ici

entrez la description de l'image ici

Mise à jour 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' physicalPathattribut)

puis ajouter dans la <bindings>section nouvelle liaison

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

Matas Vaitkevicius
la source
-1

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 tapez-le ifconfig. Devrait ressembler à quelque chose 192.168.0.2.

Jivings
la source
Salut! Désolé pour la réponse trop tardive. ifconfig sur mon hôte affiche 192.168.0.102 pour eth0. Lorsque j'entre cette adresse IP dans firefox dans guest, il essaie de se connecter pendant un moment, puis la connexion est interrompue: "Le serveur de 192.168.0.102 prend trop de temps pour répondre" ... Alors, que dois-je essayer ensuite? Merci d'avance.
Maxim