Comment accéder à un serveur Web sur une boîte virtuelle à partir de la machine hôte [fermé]

29

J'ai une machine Windows Vista sur laquelle VirtualBox exécute Ubuntu.

Dans Ubuntu, j'exécute un serveur Web à l'adresse http://127.0.0.1:3000/

Comment accéder à cette adresse depuis ma machine hôte (la boîte Windows)?

Argh
la source
L'option la plus simple consiste à utiliser la redirection de port. Il peut être configuré sous Paramètres-> Réseau. Vérifiez ce lien
spartiate
Si vous avez vraiment configuré le serveur Web de votre invité à 127.0.0.1, vous ne pouvez pas y accéder depuis l'extérieur de l'invité. Le localhost / 127.0.0.1 est un adaptateur de bouclage (en mémoire) et ne nécessite même pas que la carte réseau soit installée pour fonctionner correctement. Si vous changez l'IP de votre serveur Web en autre chose que le bouclage, les réponses ci-dessous pourront vous aider.
Mladen B.20

Réponses:

28

Vous pouvez changer votre mode de mise en réseau invité de NAT à Bridged. Fermez simplement votre invité Ubuntu, accédez à la page Paramètres dans VirtualBox, sélectionnez la catégorie Réseau et modifiez la zone de liste Attaché à de NAT en mode ponté.

Modifier:

Après avoir suivi les étapes ci-dessus, redémarrez Ubuntu et l'IP allouée apparaîtra sur l'écran de bienvenue après le chargement. c'est-à-dire que dans le message de bienvenue, il devrait dire quelque chose comme:

Adresse IP pour eth0: 192.168.1.3

Utilisez cette adresse dans la barre du navigateur de la machine hôte suivie du port que vous utilisez. Si son autre chose que le port 80. c'est-à-dire si vous le configurez pour utiliser le port 666, l'adresse serait 192.168.1.3:666

Une autre façon de trouver l'IP est de se connecter au serveur HTTP intégré à votre routeur et de regarder dans les paramètres LAN. Chaque machine du réseau doit être répertoriée par nom d'hôte et IP. Sur mon routeur, la plupart des autres que j'ai eu, vous pouvez le faire en tapant 192.168.1.1 dans la barre d'adresse. si cela échoue, essayez la même adresse au port 81. Si cela échoue, LISEZ LE MANUEL.

slm
la source
Mais alors comment savoir quelle est l'adresse IP? Thx
SSH Ce
Cela fonctionnera, mais l'option de l'hôte uniquement n'a pas exposé cette VM au réseau d'entreprise
Carlos Garcia
2
Suis-je le seul ici qui pense que le point de terminaison de l'invité de 127.0.0.1 ne peut être atteint qu'à partir de l'invité (c'est le point de localhost)? Il ne devrait y avoir aucun moyen d'accéder à ce type de point de terminaison à partir de quoi que ce soit en dehors de la machine invitée (car il s'agit d'un adaptateur de bouclage, il ne nécessite même pas de carte réseau installée).
Mladen B.20
si j'entre ce 192.1681.3 comme IP pour un enregistrement A sur Godaddy, cela ne fonctionne pas, évidemment, il attend une adresse IP externe, si je mets cela, ne fonctionne toujours pas pour une certaine réactivation, je veux tester un nom de domaine localement avant passe EC2
PirateApp
10

Dépend de la façon dont vous configurez la mise en réseau sur le système d'exploitation invité Ubuntu. Si vous le configurez pour utiliser NAT et que vous avez un serveur DHCP en cours d'exécution sur votre réseau, exécutez simplement ceci:

ifconfig | grep inet

sur la boîte Ubuntu - vous verrez l'adresse IP attribuée à l'invité Ubuntu.

Exemple:

#ifconfig | grep inet
  inet addr:10.0.0.2  Bcast:10.255.255.255  Mask:255.255.255.0
  inet addr:127.0.0.1  Mask:255.0.0.0

Ensuite, appuyez simplement sur http://10.0.0.2:3000

fsckin
la source
Eh bien dans mon cas, l'adresse devrait être 10.0.2.15:3000/public et par défaut, vista fonctionne en mode DHCP .. (la machine ubuntu est également configurée pour utiliser NAT) mais je n'obtiens pas de réponse :(
Argh
Hmmm vient de me rendre compte que je n'ai pas de serveur DHCP - J'utilise vista home ...
Argh
VirtualBox possède son propre serveur DHCP qui gère les machines virtuelles - sinon les machines virtuelles n'obtiendraient pas automatiquement une adresse IP sans les définir statiquement. Je pense que votre problème pourrait être que vous n'écoutez pas Apache sur toutes les interfaces - juste localhost (127.0.0.1). Assurez-vous que dans / etc / apache2 / sites-available / default la directive Listen indique 80, pas 127.0.0.1:80 par help.ubuntu.com/9.04/serverguide/C/httpd.html
Cory Plastek
C'est probablement la cause.
fsckin
4

Votre boîtier Windows et le boîtier Ubuntu (qu'ils soient physiques ou virtuels n'a pas vraiment d'importance dans ce cas) doivent tous deux avoir une adresse IP sur le même sous-réseau pour pouvoir communiquer entre eux via TCP / IP. Vous pouvez attribuer une adresse supplémentaire à chaque système d'exploitation à l'aide de l'un des sous-réseaux IP privés (voir RFC 1918 ). Une fois qu'ils ont tous les deux une adresse sur le même sous-réseau, configurez le serveur Web pour écouter celui que vous avez donné à Ubuntu, puis utilisez cette IP dans le navigateur dans Windows pour le charger.

L'IP que vous avez configuré maintenant, 127.0.0.1, est l'adresse de bouclage de l'interface réseau locale. Vous n'utiliseriez jamais cette adresse pour accéder à quelque chose sur un autre système, seulement pour vous référer au même système que vous utilisez. Lorsque vous utilisez un système virtuel, traitez-le comme vous le feriez avec un ordinateur distinct du point de vue du réseau.

Justin Scott
la source
2

Pour résoudre votre problème, je vous suggère d'ajouter une nouvelle carte réseau et de la configurer en tant qu'adaptateur hôte uniquement .

Maintenant, vous exécutez l'instance de boîte virtuelle, puis ce que fsckin a suggéré pour voir quelle est l' IP du nouveau réseau .

De cette façon, vous disposez d'un sous-réseau avec votre ordinateur et votre machine virtuelle.

fampinheiro
la source
Alors ... j'ai fait ce que vous avez dit en saisissant mon adresse IP. J'ai ensuite essayé d'accéder au serveur Web (auquel je peux accéder au sein de l'invité en tant que 127.0.0.1:3000 ) en utilisant allocedIP: 3000 et je n'ai pas obtenu de réponse. Je pourrais cependant cingler l'ip de l'hôte
Argh
Vous devez ouvrir le pare-feu sur le port 3000.
fampinheiro
L'hôte uniquement ne fonctionnera pas immédiatement
givanse
0

Tout d'abord, vous devez faire ce que dit la réponse 1:

"Vous pouvez changer votre mode de mise en réseau invité de NAT à ponté. Fermez simplement votre invité Ubuntu, accédez à la page Paramètres dans VirtualBox, sélectionnez la catégorie Réseau et modifiez la zone de liste Attaché à de NAT en mode ponté."

Ensuite, pour obtenir votre adresse IP:

Sur votre machine virtuelle, ouvrez une invite de commande et procédez comme suit:

ip addr show

Vous verrez probablement une ligne qui ressemble à ceci:

inet 192.168.43.96/24 ....

Il y a aussi une ligne avant cela avec

inet 127.0.0.1

Mais vous n'en voulez pas! Vous voulez l'adresse 192. C'est l'adresse de votre machine virtuelle sur votre réseau local. Il doit être accessible par tout appareil connecté au même réseau local.

Maintenant sur votre machine hôte, éditez le fichier / etc / hosts (pas ~ / etc) Le nom du fichier est hôtes (ce n'est pas un nom de dossier)

ajoutez une ligne qui ressemble à ceci:

192.168.43.96 myvm.nameofmywebsite.com

Maintenant, allez dans le navigateur de votre machine hôte et tapez myvm.nameofmywebsite.com

J'espère que ça le fera!

Cependant, vous pouvez avoir un routeur doté de fonctions de sécurité qui vous empêcheront de voir votre adresse locale. Ce que vous pouvez essayer de faire est d'utiliser le hotspot de votre téléphone portable comme réseau. Ça marche pour moi. N'oubliez pas que lorsque vous changez de réseau sur votre machine hôte, vous devez redémarrer votre virtualbox.

Andy Weinstein
la source