web-dev-qa-db-fra.com

Adressage de localhost à partir d'une machine virtuelle VirtualBox

J'ai un serveur de test/développement local (HTTP, bien sûr) qui écoute le port 8000.

Je travaille sur Linux, donc pour tester la page sur Internet Explorer 6, 7, 8, etc. J'exécute une machine virtuelle à l'aide de VirtualBox; J'ai également besoin de voir à quoi ça ressemble sur Firefox dans un environnement Windows (les polices, par exemple, sont différentes).

Sur ma vraie machine, j'ouvre le site en utilisant simplement l'URL http://localhost:8000, comment puis-je adresser cet hôte local à partir de la machine virtuelle?

À l'heure actuelle, ma solution consiste à utiliser l'adresse IP. De meilleures idées?

698
hasen

Googling a ajouté: http://data.agaric.com/localhost-from-virtualbox-xp-install-ubuntu

Il suggère d'utiliser IP: http://10.0.2.2, et cela a fonctionné pour moi.

Donc, j'ai édité le fichier hosts, C:\windows\system32\drivers\etc\hosts, et ajouté cette entrée:

10.0.2.2   outer

Si vous testez sur IE8, n'oubliez pas de mettre http:// dans la barre d'adresse. Le simple fait de mettre directement l'adresse IP ne fonctionnera pas.

Par exemple:

http://10.0.2.2:3000/
879
hasen

macOS

J'exécute Virtual Box sur macOS (auparavant OS X), et utilise Virtual Box pour tester IE sous Windows, etc.

Accédez à IE dans Virtual Box et accédez à localhost via http://10.0.2.2 pour localhost ou http://10.0.2.2:3000 pour localhost:3000

J'ai conservé les paramètres réseau en tant que NAT, pas besoin de passerelle comme suggéré ci-dessus dans mon cas. Il n'est pas nécessaire de modifier les fichiers de configuration.

375
Jonathan Lin

Pour l'activer sur OSX, je devais faire ce qui suit:

  1. Fermez votre machine virtuelle.
  2. Allez à VirtualBox Preferences -> Network -> Host-only Networks -> cliquez sur l'icône "+". Cliquez sur OK.
  3. Sélectionnez votre boîte et cliquez sur le "Settings" icon -> Network -> Adapter 2 ->. Dans la liste déroulante "Attaché à:", sélectionnez "Adaptateur pour hôte uniquement" et votre réseau (vboxnet0) devrait apparaître par défaut ci-dessous. Cliquez sur OK.
  4. Une fois que vous redémarrez votre boîte, vous devriez pouvoir accéder à localhost à http://10.0.2.2/

Vous pouvez y faire référence par localhost et accéder à d'autres sites hébergés en local en ajoutant leurs références au fichier hosts (C:\windows\system32\drivers\etc\hosts) comme suit:

10.0.2.2    localhost
10.0.2.2    subdomain.localhost
77
spsaucier

Vous avez probablement le réseau de votre machine virtuelle défini sur NAT. Si vous définissez votre réseau sur Bridged, vous devriez pouvoir accéder à votre ordinateur hôte par son nom d'hôte. Par exemple, si votre nom d’hôte est «jsmith-Precision-7510» et que vous souhaitez ouvrir http: // localhost: 3000/ , vous pourrez afficher cette page à l’adresse http: // jsmith-Precision. -7510: 3000/ .

Pour trouver votre nom d’hôte, ouvrez un terminal/une console, puis exécutez la commande hostname. Votre nom d'hôte sera affiché sur la ligne suivante.

Consultez la Documentation VirtualBox pour des instructions sur la manière de définir vos paramètres de réseau sur Ponté.

49
Nick Haddad

J'ai trouvé que 10.0.2.2:<port> fonctionne, mais uniquement si le mode Promiscuous est défini correctement. Après avoir installé ma machine virtuelle, je suis allé dans Paramètres> Réseau> Adaptateur 1.

NAT est défini par défaut et la liste déroulante Mode Promiscuous est désactivée. J'ai changé de NAT en adaptateur ponté, ce qui a activé le menu déroulant Mode Promiscuous, puis modifié la valeur de "Refuser" à "Autoriser les machines virtuelles". Je suis ensuite revenu au NAT, ce qui a à nouveau désactivé le mode Promiscuous, tout en conservant la nouvelle valeur.

Après seulement cette modification, j'ai pu lancer ma VM et voir mes machines hôtes localhost:<port> sur ma VM à 10.0.2.2:<port>.

27
bluehazetech

Si vous avez un adaptateur connecté à NAT, il est actuellement préférable et plus élégante de définir le transfert de port sur les ports locaux.

Settings> Network> Adapter> Advanced> Port forwarding

Il suffit d'insérer une nouvelle règle et de définir Host port et Guest port sur 80 (pour http) ou 22 (pour ssh), etc.

Ensuite, vous pouvez accéder à cette machine en entrant simplement http://localhost

Vous pouvez également vouloir basculer NAT en mode transparent.

24
Boris Brdarić

Vous devez modifier votre fichier hosts sur votre machine virtuelle Windows de la même manière que vous le faites pour votre machine hôte locale:

C:\WINDOWS\system32\drivers\etc\hosts

Et liez vos hôtes virtuels à 10.0.2.2. Si vous utilisez uniquement localhost, remplacez

127.0.0.1 localhost avec 10.0.2.2 localhost

Par exemple:

10.0.2.2 localhost
10.0.2.2 local.site1.com
10.0.2.2 local.site2.com

Cela indique à votre machine virtuelle de pointer sur votre machine locale pour ces noms de domaine.

20
William

MacOS

Si vous souhaitez configurer un environnement Windows avec Virtualbox sur un Mac, utilisez uniquement les paramètres NAT par défaut de l'adaptateur, .__ et de votre machine virtuelle Windows, accédez au fichier hosts et ajoutez les éléments suivants:

10.0.2.2       localhost
10.0.2.2       127.0.0.1

Contrairement aux réponses ci-dessus, il est important d'inclure les deux lignes, sinon cela ne fonctionnera pas.

19
Artipixel

Je devais accéder à la virtualbox et modifier mes paramètres réseau en «NAT». Après cela, j'ai pu appuyer sur localhost exécuté sur ma machine hôte depuis mon émulateur sur virtualbox via http://10.0.2.2:3000

17
Pytth

Vous n'avez pas besoin de modifier le fichier hosts ni aucune configuration de Virtual Box. Gardez les paramètres dans NAT. Accédez à votre instance Windows et exécutez "cmd" ou ouvrez cmd.exe. Exécutez la commande "ipconfig" et obtenez l'adresse IP Default Gateway. Parcourez http://10.0.2.2:8080 sous Windows IE, vous verrez qu’il est identique à votre Mac Safari http: // localhost: 8080/ ou http: // 127.0.0.1:8080

14
marlonjuc

Une combinaison de quelques choses a finalement fait que les choses fonctionnent de mon côté. Exécution d’un serveur de flacon sous macosx.

Dans mes fenêtres VM, j'ai édité le fichier hosts: 

  • Exécuter le bloc-notes en tant qu'administrateur
  • ouvrir C:\windows\system32\drivers\etc\hosts 
  • ajoutez cette entrée: 10.0.2.2 outer 

Arrêtez VM et sur mon Mac dans VirtualBox:

  • Allez à VirtualBox > preferences > Network > Host-only Networks > + pour ajouter un réseau vboxnet1 
  • Allez à My_VM > settings > Network > Adapter 1
  • Sélectionnez Enable Network Adapter et définissez Attached to: sur Bridged Adapter
  • Puis définissez Advanced > Promiscuous Mode: à Allow VMs
  • Cliquez sur OK
  • Allez à My_VM > settings > Network > Adapter 1
  • Remettez Attached to: sur NAT

Puis je suis allé à Adapter 2

  • Définissez Attached to: sur Host-only Adapter et sélectionnez le vboxnet1 réseau ajouté précédemment. 

J'ai démarré mon serveur sur mon Mac, fonctionnant sur 127.0.0.1:5000 et celui-ci était désormais accessible sur ma machine virtuelle à http://10.0.2.2:5000 

Homme quel cauchemar à tester sur IE sur mac. Comment n'y a-t-il pas un moyen plus simple?

7
Craicerjack

J'ai résolu le problème en ajoutant une redirection de port dans les paramètres de Virtualbox sous le réseau. depuis un accès invité http://10.0.2.5:8080 en utilisant IE

4
Praveen

Dans la boîte virtuelle, comme dit en haut, vous pouvez ajouter cette ligne au fichier hosts

10.0.2.2   outer

mais pour le sauvegarder, si les administrateurs ne se trouvent pas directement dans votre VM, il suffit de déplacer le fichier hosts vers le bureau, puis de le modifier pour ajouter la ligne 10.0 .... endroit.

3
Nico

Dans la boîte virtuelle

  1. Configurez votre réseau sur la mise en réseau Bridge
  2. Accédez à la définition avancée Mode Promiscuous: Autoriser tout

Le problème le plus difficile est votre hôte local. Si vous utilisez Node.js, définissez l'adresse IP sur 0.0.0.0, puis recherchez votre propre adresse IP, par exemple cmd: ipconfig -> 10.0.1.3 

Tapez cette adresse avec le numéro de port. Et ça va marcher. 

2
Joel Chu

vérifiez si vous pouvez frapper votre ordinateur parent avec: ipconfig (obtenez votre adresse IP)

ping <ip> ou telnet <ip> <port>

Si vous ne pouvez pas accéder au port, essayez d'ajouter une nouvelle règle entrante dans votre pare-feu parent autorisant les ports locaux.

J'ai ensuite pu accéder à http://<ip>:<port>

2
Jon

Étapes générales:

  • Un réseau commun (ajoutez une carte réseau hôte ou pont uniquement)
  • configurer le service préféré pour qu'il écoute sur l'interface appropriée (interface connectée à la carte réseau partagée)
  • Utilisez IP: Port pour atteindre le service ciblé, utilisez une IP appartenant au réseau partagé.
1
Anna

J'ai besoin de fonctionner sur localhost, pas une adresse IP étrange.

1) Depuis votre terminal Mac, faites iconfig -a pour trouver votre adresse IP locale. C'est probablement le dernier.

en7: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500 options=10b<RXCSUM,TXCSUM,VLAN_HWTAGGING,AV> ether 38:c9:86:32:0e:69 inet6 fe80::ea:393e:a54f:635%en7 prefixlen 64 secured scopeid 0xe inet 10.1.5.60 netmask 0xfffffe00 broadcast 10.1.5.255 nd6 options=201<PERFORMNUD,DAD> media: autoselect (1000baseT <full-duplex,flow-control>) status: active

par exemple. 10.1.5.60

2) démarrez votre image Windows. start> tapez cmd pour obtenir un terminal

3) notepad c:\windows\system32\drivers\etc\hosts

4) ajoutez la ligne suivante 10.1.5.60 localhost

5) ouvrez Internet Explorer et l’URL suivante devrait s’appliquer au serveur sous Mac: http://localhost:3000/

0
Jason Moore

Sous Windows avec un Windows 7 virtuel, la seule chose qui fonctionnait pour moi consistait à utiliser NAT et le transfert de port (impossible d'établir une connexion pontée). J'ai trouvé un tutoriel ici: http://www.howtogeek.com/122641/how-to-forward-ports-to-a-virtual-machine-and-use-it-as-a-server/ (faites défiler la liste avec "Transfert des ports vers une machine virtuelle} _").

Grâce à ces changements, je pouvais accéder au site Web xampp avec " http: //192.168.xx.x: 8888/mywebsite " dans Internet Explorer 10 sur ma machine virtuelle. 

J'ai trouvé l'adresse IP dans XAMPP Control Panel> Netstat ("System").

0
Henning Fischer

Si vous utilisez Virtual Box, vous pouvez connecter Mac OSX (et je pense Linux) à votre machine Windows virtuelle à l’aide d’une seule ligne de code -> Je suggère d’arrêter la boîte avant de l’exécuter dans le terminal.

VBoxManage modifyvm "YOUR VM NAME" --natdnshostresolver1 on

Je noterai que cela provient de la documentation Dinghy, que je suis en train d’exécuter, mais c’est une commande de boîte virtuelle;

0
Lux.Capacitor