Adressage localhost à partir d'une machine virtuelle VirtualBox
-
12-09-2019 - |
Question
J'ai un test local / serveur de développement (HTTP, bien sûr), à l'écoute sur le port 8000.
Je travaille sur Linux, afin de tester la page sur Internet Explorer 6, 7, 8, etc. Je dirige une machine virtuelle en utilisant VirtualBox; Je dois aussi voir comment il regardera sur Firefox dans un environnement Windows (par exemple les polices sont différentes).
Dans ma vraie machine, j'ouvre le site Web simplement en utilisant l'URL http://localhost:8000
, comment dois-je adresser cette localhost de la machine virtuelle?
En ce moment, ma solution consiste à utiliser l'adresse IP. Toutes les meilleures idées?
La solution
recherche sur Google a transformé ce haut: http://data.agaric.com / localhost-de-virtualbox-xp-install-ubuntu
Il suggère d'utiliser IP: http://10.0.2.2
, et cela a fonctionné pour moi
Alors, je modifié le fichier hosts, C:\windows\system32\drivers\etc\hosts
, et a ajouté cette entrée:
10.0.2.2 outer
Si vous testez sur IE8, souvenez-vous de mettre http://
dans la barre d'adresse. Il suffit de mettre l'adresse IP ne fonctionnera pas directement.
Par exemple:
http://10.0.2.2:3000/
Autres conseils
macOS
Je suis en cours d'exécution Virtual Box sous Mac OS (anciennement OS X), en utilisant Virtual Box pour tester IE sous Windows, etc.
Aller à IE dans Virtual Box et localhost
d'accès via http://10.0.2.2
pour localhost
ou http://10.0.2.2:3000
pour localhost:3000
.
Je gardais les paramètres réseau comme NAT, pas besoin de pont comme suggéré ci-dessus dans mon cas. Il n'y a pas besoin de modifier les fichiers de configuration.
Pour activer cette OSX je devais faire ce qui suit:
- Arrêter votre machine virtuelle vers le bas.
- Aller à
VirtualBox Preferences -> Network -> Host-only Networks ->
cliquez sur l'icône "+". Cliquez sur OK. - Sélectionnez votre boîte et cliquez sur le
"Settings" icon -> Network -> Adapter 2 ->
Sur le « joint: » menu déroulant, sélectionnez « Host-only Adapter » et votre réseau (vboxnet0
) devrait apparaître ci-dessous par défaut. Cliquez sur OK. - Une fois que vous démarrez votre boîte à nouveau, vous devriez être en mesure d'accéder à localhost
http://10.0.2.2/
Vous pouvez consulter par localhost
et accéder à d'autres sites de localhosted en ajoutant leurs références dans le fichier hosts (de 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 réglée sur NAT. Si vous configurez votre réseau pour ponté vous devriez être en mesure d'accéder à votre machine hôte par son nom d'hôte. Par exemple, si votre nom d'hôte est « dupont-Precision-7510 » et que vous voulez ouvrir http: // localhost: 3000 / , vous pourrez voir cette page http: // dupont-précision-7510: 3000 / .
Pour trouver votre nom d'hôte, ouvrez un terminal / console et puis exécutez la commande hostname
. Votre nom d'hôte sera émis sur la ligne suivante.
Voir la documentation VirtualBox pour obtenir des instructions sur la façon de configurer votre réseau setttings à ponté.
Je devais aller dans VirtualBox et modifier mes paramètres réseau « NAT ». Après cela, je suis en mesure de frapper localhost
courir sur ma machine hôte de mon émulateur sur VirtualBox par http://10.0.2.2:3000
J'ai trouvé que des travaux de 10.0.2.2:<port>
, mais seulement si le mode Promiscuous est correctement réglé. Après avoir installé mon VM, je suis allé à Paramètres> Réseau> Adaptateur 1.
NAT est défini par défaut, et le menu déroulant mode Promiscuous est désactivé. Je suis passé de NAT à ponté adaptateur, ce qui a permis le menu déroulant Promiscuous Mode, puis changé la valeur de « Refuser » à « Autoriser les machines virtuelles ». Je puis retour commuté NAT, qui Promiscuous mode désactivé à nouveau, mais a conservé la nouvelle valeur.
Après que ce changement, j'ai pu lancer ma machine virtuelle et de voir mes machines d'accueil
localhost:<port>
sur ma machine virtuelle à 10.0.2.2:<port>
.
Si vous avez un adaptateur attaché à NAT , de nos jours, il est préférable et plus élégante solution pour régler la redirection de port vers les ports locaux.
Settings
> Network
> Adapter
> Advanced
> Port forwarding
Il suffit d'insérer une nouvelle règle et définissez Host port
et Guest port
à 80
(pour http) ou 22
(pour ssh), et ainsi de suite.
Ensuite, vous pouvez accéder à cette machine en entrant simplement http://localhost
MacOS
Si vous souhaitez configurer un environnement Windows avec VirtualBox sur un mac, il suffit d'utiliser les paramètres de NAT par défaut sur l'adaptateur, et dans vos fenêtres VM, allez dans le fichier hosts et ajouter ce qui suit:
10.0.2.2 localhost
10.0.2.2 127.0.0.1
A la différence des réponses ci-dessus, il est important d'inclure les deux lignes, sinon cela ne fonctionnera pas.
Vous devez modifier votre fichier hosts sur votre machine virtuelle Windows de la même façon que vous faites pour votre machine hôte local:
C: \ WINDOWS \ system32 \ drivers \ etc \ hosts
Et lier vos hôtes virtuels à 10.0.2.2, Si vous utilisez juste 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
Ceci indique votre machine virtuelle pour pointer vers votre machine locale pour les noms de domaine.
Vous n'avez pas besoin de changer le fichier hosts ou toute configuration de Virtual Box. Conserver les paramètres NAT. Allez à votre instance Windows et exécutez « cmd » ou cmd.exe ouvert. Exécuter la commande "ipconfig" et obtenir le Passerelle par défaut Adresse IP. Parcourir http://10.0.2.2:8080 sur Windows IE vous verrez est le même que votre Mac Safari http: // localhost: 8080 / ou
Une combinaison de quelques choses a finalement obtenu les choses qui travaillent sur ma fin.
Exécution d'un serveur flacon sur MacOSX. Dans mes fenêtres VM j'édité le fichier hosts: Arrêt VM et sur mon Mac dans VirtualBox: Alors je suis allé à J'ai commencé mon serveur sur mon mac, en cours d'exécution sur L'homme quel cauchemar pour tester sur IE sur Mac. Comment est-il pas un moyen plus simple?
C:\windows\system32\drivers\etc\hosts
ouvert 10.0.2.2 outer
VirtualBox > preferences > Network > Host-only Networks > +
ajouter un vboxnet1
réseau My_VM > settings > Network > Adapter 1
. Enable Network Adapter
et définir Attached to:
à Bridged Adapter
. Advanced > Promiscuous Mode:
à Allow VMs
. OK
My_VM > settings > Network > Adapter 1
. Attached to:
retour à NAT
. Adapter 2
Attached to:
à Host-only Adapter
et sélectionnez le réseau ajouté précédent vboxnet1
. 127.0.0.1:5000
et c'était maintenant accessible sur mon vm à http://10.0.2.2:5000
I résolu en ajoutant une redirection de port dans les paramètres Virtualbox sous réseau. Port hôte 127.0.0.1 set IP: 8080 Invité ip: Donnez tout IP pour le site (par exemple 10.0.2.5) Port: 8080 Maintenant, d'un accès ordinateur invité http://10.0.2.5:8080 utilisant IE
Dans VirtualBox comme l'a dit haut, vous pouvez ajouter cette ligne fichier hosts
10.0.2.2 outer
mais pour le sauver, si vous ne disposez pas d'administrateurs directement dans votre VM il suffit de déplacer fichier hosts sur le bureau, puis le modifier pour ajouter la ligne 10.0 .... externe, enregistrez le fichier, et passer à sa place d'origine .
vérifier si vous pouvez frapper votre machine mère avec:
ipconfig
(obtenir votre adresse ip)
ping <ip>
ou telnet <ip> <port>
Si vous ne pouvez pas arriver au port, essayez d'ajouter une nouvelle règle de trafic entrant dans votre pare-feu permettant parent les ports locaux.
J'étais alors en mesure d'accéder http://<ip>:<port>
Dans Virtual Box
- Définissez votre réseau à Pont réseau
- Accédez à Configuration avancée Promiscuous Mode: Autoriser tout
Maintenant, le plus délicat est votre localhost, si vous utilisez de Node.js définir l'adresse IP à 0.0.0.0, puis lookup votre propre adresse IP, par exemple cmd: ipconfig -> 10.0.1.3
Tapez cette adresse avec le numéro de port. Et cela fonctionnera.
étapes générales:
- un réseau commun, (ajouter hôte uniquement ou pont NIC)
- configurer le service préféré écouter sur l'interface appropriée (interface connectée à la carte réseau partagée)
- Utiliser IP. Port pour atteindre un service ciblé, utilisez une adresse IP qui appartiennent à un réseau partagé
Sous Windows avec un virtuel Windows 7 la seule chose qui a fonctionné pour moi utilisait NAT et port-forwarding (n'a pas pu obtenir pont en marche de connexion). 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 jusqu'à la partie avec " Ports d'expédition à une machine virtuelle ").
Avec ce changement je pourrais atteindre le site xampp avec « http: //192.168.xx.x: 8888 / monsiteweb » dans Internet explorer 10 sur ma machine virtuelle.
J'ai trouvé l'IP dans XAMPP Panneau de configuration> netstat ( "Système").
Si vous utilisez VirtualBox vous pouvez connecter Mac OSX (et je pense que Linux) sur votre machine Windows virtuel en utilisant une ligne de code -.> Je suggère arrêter la boîte avant d'exécuter ce dans le terminal
VBoxManage modifyvm "YOUR VM NAME" --natdnshostresolver1 on
Je note que ceci est de la documentation de Dinghy, que je courais, mais sa commande une boîte virtuelle de sorte qu'il ne devrait pas prendre soin en fait ce que vous utilisez aussi longtemps que son Virtual Box
Je dois courir sur localhost, pas une IP bizarre.
1) A partir de votre terminal Mac, faire iconfig -a
pour trouver votre adresse IP locale. Il 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émarrer votre image Windows. Démarrer> 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) ouvert IE et l'adresse suivante devrait frapper le serveur en cours d'exécution sur votre Mac: http://localhost:3000/
Obtenir l'adresse IP de la machine exécutant Apache (INET addr: dans ifconfig
). Et entrez que dans la barre d'adresse du navigateur VirtualBox
En fait, la réponse de user477494 est en principe correct.
J'ai appliqué la même logique dans d'autres environnements (OS hôte X - virtuel Windows XP) et que le tour est joué. J'ai eu pour faire défiler l'hôte LAMP pile pour obtenir l'adresse IP et Apache port à résoudre, mais une fois que je compris cela, je riais.