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?
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/
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.
Pour l'activer sur OSX, je devais faire ce qui suit:
VirtualBox Preferences -> Network -> Host-only Networks ->
cliquez sur l'icône "+". Cliquez sur OK."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.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
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é.
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>
.
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.
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.
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.
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
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
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:
C:\windows\system32\drivers\etc\hosts
10.0.2.2 outer
Arrêtez VM et sur mon Mac dans VirtualBox:
VirtualBox > preferences > Network > Host-only Networks > +
pour ajouter un réseau vboxnet1
My_VM > settings > Network > Adapter 1
. Enable Network Adapter
et définissez Attached to:
sur Bridged Adapter
. Advanced > Promiscuous Mode:
à Allow VMs
. OK
My_VM > settings > Network > Adapter 1
. Attached to:
sur NAT
. Puis je suis allé à Adapter 2
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?
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
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.
Dans la boîte virtuelle
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.
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>
Étapes générales:
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/
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").
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;