puente - Direccionamiento localhost desde una máquina virtual VirtualBox
localhost virtualbox ubuntu (21)
Mac OS
Estoy ejecutando Virtual Box en macOS (anteriormente OS X), usando Virtual Box para probar IE en Windows, etc.
Vaya a IE en Virtual Box y acceda a localhost
través de http://10.0.2.2
para localhost
, o http://10.0.2.2:3000
para localhost:3000
.
Mantuve la configuración de red como NAT, sin necesidad de puente como se sugirió anteriormente en mi caso. No hay necesidad de editar ningún archivo de configuración.
Tengo un servidor de prueba / desarrollo local (HTTP, por supuesto), escuchando el puerto 8000.
Estoy trabajando en Linux, así que para probar la página en Internet Explorer 6, 7, 8, etc., ejecuto una máquina virtual usando VirtualBox; También necesito ver cómo se ve en Firefox en un entorno de Windows (por ejemplo, las fuentes son diferentes).
En mi máquina real, abro el sitio web simplemente usando la URL http://localhost:8000
, ¿cómo dirijo este localhost desde la máquina virtual?
En este momento mi solución es usar la dirección IP. ¿Alguna idea mejor?
Debe editar su archivo de hosts en su máquina virtual de Windows de la misma manera que lo hace para su máquina de host local:
C: / WINDOWS / system32 / drivers / etc / hosts
Y vincule sus hosts virtuales a 10.0.2.2, si solo está usando localhost, reemplace
127.0.0.1 localhost con 10.0.2.2 localhost
Por ejemplo:
10.0.2.2 localhost
10.0.2.2 local.site1.com
10.0.2.2 local.site2.com
Esto le indica a su máquina virtual que apunte a su máquina local para esos nombres de dominio.
En Windows con un Windows 7 virtual, lo único que funcionó para mí fue usar NAT y reenvío de puertos (no se pudo ejecutar la conexión puenteada). Encontré un tutorial aquí: http://www.howtogeek.com/122641/how-to-forward-ports-to-a-virtual-machine-and-use-it-as-a-server/ (desplácese hacia abajo hasta la parte con " Reenvío de puertos a una máquina virtual ").
Con estos cambios, podría alcanzar el sitio web de xampp con " http://192.168.xx.x:8888/mywebsite " en internet explorer 10 en mi máquina virtual.
Encontré la IP en el Panel de control de XAMPP> Netstat ("Sistema").
En caja virtual
- Configura tu red a redes de puente
- Ir al modo avanzado Promiscuous set: permitir todo
Ahora, el bit difícil es su host local, si está ejecutando desde Node.js configure la dirección IP a 0.0.0.0, luego busque su propia dirección IP, por ejemplo, cmd: ipconfig -> 10.0.1.3
Escriba esa dirección con el número de puerto. Y funcionará.
En la caja virtual como se dijo arriba, puede agregar este archivo de hosts de línea
10.0.2.2 outer
pero para guardarlo, si no tiene administradores en su VM, simplemente mueva el archivo de hosts al escritorio, luego edítelo para agregar la línea 10.0 ... exterior, guarde el archivo y muévalo a su lugar original.
En realidad, la respuesta del usuario 477494 es en principio correcta.
He aplicado la misma lógica en otros entornos (OS X host - virtual Windows XP) y eso funciona. Tuve que hacer un ciclo en la pila de LAMP del host para que la dirección IP y el puerto de Apache se resolvieran, pero una vez que lo descubrí, me estaba riendo.
Encontré que 10.0.2.2:<port>
funciona, pero solo si el modo promiscuo está configurado correctamente. Después de instalar mi VM, fui a Configuración> Red> Adaptador 1.
NAT se establece de forma predeterminada y el menú desplegable Modo promiscuo está deshabilitado. Cambié de NAT a Bridged Adapter, que habilitó el menú desplegable de modo promiscuo, y luego cambié el valor de "Denegar" a "Permitir máquinas virtuales". Luego volví a NAT, que deshabilitó nuevamente el modo promiscuo, pero retuve el nuevo valor.
Después de solo este cambio, pude iniciar mi VM y ver mi máquina host localhost:<port>
en mi VM en 10.0.2.2:<port>
.
Google buscó esto: http://data.agaric.com/localhost-from-virtualbox-xp-install-ubuntu
Sugiere usar IP: http://10.0.2.2
, y funcionó para mí.
Entonces, edité el archivo hosts, C:/windows/system32/drivers/etc/hosts
, y agregué esta entrada:
10.0.2.2 outer
Si está probando en IE8, recuerde poner http://
en la barra de direcciones. Simplemente poner la ip directamente no funcionará.
Por ejemplo:
http://10.0.2.2:3000/
Lo más probable es que tenga la red de su máquina virtual configurada para NAT. Si configura su red en Bridged, debería poder acceder a su máquina host por su nombre de host. Por ejemplo, si su nombre de host es "jsmith-Precision-7510" y desea abrir http://localhost:3000/ , podrá ver esa página en http: // jsmith-Precision-7510: 3000 / .
Para encontrar su nombre de host, abra un terminal / consola y luego ejecute el comando hostname
. Su nombre de host se mostrará en la siguiente línea.
Consulte la documentación de VirtualBox para obtener instrucciones sobre cómo configurar sus ajustes de red en Bridged.
Necesito ejecutarme en localhost, no en alguna IP extraña.
1) Desde su terminal Mac, haga iconfig -a
para encontrar su dirección IP local. Probablemente sea el último.
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
ej. 10.1.5.60
2) arranca tu imagen de windows. Inicio> escribe cmd
para obtener un terminal
3) notepad c:/windows/system32/drivers/etc/hosts
4) agregar la siguiente línea 10.1.5.60 localhost
5) abra IE, y la siguiente url debería llegar al servidor que se ejecuta en su mac: http://localhost:3000/
No es necesario cambiar el archivo de hosts ni la configuración de Virtual Box. Mantener la configuración en NAT. Vaya a su instancia de Windows y ejecute "cmd" o abra cmd.exe. Ejecute el comando "ipconfig" y obtenga la dirección IP de la puerta de enlace predeterminada . Busque http://10.0.2.28080 en Windows IE que verá que es el mismo que su Mac Safari http://localhost:8080/ o http://127.0.0.1:8080
Obtenga la IP de la máquina que ejecuta Apache (inet addr: in ifconfig
) e ingrésela en la barra de direcciones del navegador de la caja virtual.
Para habilitar esto en OSX tuve que hacer lo siguiente:
- Apague su máquina virtual.
- Vaya a
VirtualBox Preferences -> Network -> Host-only Networks ->
haga clic en el icono "+". Haga clic en Aceptar. - Seleccione su casilla y haga clic en el
"Settings" icon -> Network -> Adapter 2 ->
En el menú desplegable "Adjunto a:", seleccione "Adaptador solo de host" y su red (vboxnet0
) debería aparecer a continuación de manera predeterminada. Haga clic en Aceptar. - Una vez que vuelva a iniciar su buzón, debería poder acceder a localhost en
http://10.0.2.2/
Puede consultarlo a través de localhost
y acceder a otros sitios con alojamiento local agregando sus referencias al archivo de hosts ( C:/windows/system32/drivers/etc/hosts
) como se muestra a continuación:
10.0.2.2 localhost
10.0.2.2 subdomain.localhost
Pasos generales:
- Una red común (agregar solo NIC de host o puente)
- configure el servicio preferido para escuchar en la interfaz apropiada (interfaz conectada a la NIC compartida)
- Usar IP: Puerto para alcanzar un servicio específico, usar una IP que pertenezca a una red compartida.
Resolví agregando un reenvío de puerto en la configuración de Virtualbox en la red. Host IP set 127.0.0.1 puerto: 8080 IP invitado: Proporcione cualquier IP para el sitio web (por ejemplo, 10.0.2.5) puerto: 8080 Ahora desde el acceso de la máquina huésped http://10.0.2.5:8080 mediante IE
Si tiene un adaptador conectado a NAT , hoy en día es una solución mejor y más elegante para configurar el reenvío de puertos a puertos locales.
Settings
> Network
> Adapter
> Advanced
> Port forwarding
Simplemente inserte la nueva regla y configure el Host port
y el Host port
Guest port
en 80
(para http) o 22
(para ssh), y así sucesivamente.
Luego puede acceder a esa máquina ingresando solo http://localhost
También es posible que desee cambiar NAT a modo transparente.
Si usa Virtual Box, puede conectar Mac OSX (y creo que Linux) a su máquina de Windows virtual usando una línea de código -> Sugiero detener la caja antes de ejecutar esto en el terminal.
VBoxManage modifyvm "YOUR VM NAME" --natdnshostresolver1 on
Observaré que esto es de los documentos de Dinghy, que estoy ejecutando, pero es un comando de cuadro virtual, por lo que no debería preocuparse por lo que use mientras esté en su cuadro virtual.
Tuve que ir a virtualbox y cambiar la configuración de mi red a ''NAT''. Después de eso, pude acceder a localhost
ejecuta en mi máquina host desde mi emulador en virtualbox a través de http://10.0.2.2:3000
Una combinación de algunas cosas finalmente hizo que las cosas funcionaran en mi parte. Ejecutando un servidor matraz en macosx.
En mi Windows VM edité el archivo hosts:
- Ejecutar el bloc de notas como administrador
- abra
C:/windows/system32/drivers/etc/hosts
- añadir esta entrada:
10.0.2.2 outer
Apague la VM y en mi Mac en VirtualBox:
- Vaya a
VirtualBox > preferences > Network > Host-only Networks > +
para agregar una redvboxnet1
- Vaya a
My_VM > settings > Network > Adapter 1
. - Seleccione
Enable Network Adapter
y configureAttached to:
aBridged Adapter
. - A continuación, configure
Advanced > Promiscuous Mode:
paraAllow VMs
. - Haga clic en
OK
- Vaya a
My_VM > settings > Network > Adapter 1
. - Establecer
Attached to:
volver aNAT
.
Entonces fui al Adapter 2
- Establezca
Attached to:
Host-only Adapter
y seleccione la redvboxnet1
agregada anterior.
Comencé mi servidor en mi mac, ejecutando 127.0.0.1:5000
y ahora estaba accesible en mi vm en http://10.0.2.2:5000
Hombre, qué pesadilla probar en IE en mac. ¿Cómo no hay una manera más simple?
verifique si puede golpear su máquina principal con: ipconfig
(obtenga su dirección IP)
ping <ip>
o telnet <ip> <port>
Si no puede llegar al puerto, intente agregar una nueva regla de entrada en su servidor de seguridad principal que permita los puertos locales.
Entonces pude acceder a http://<ip>:<port>
Mac OS
Si desea configurar un entorno de Windows con Virtualbox en un mac, solo use la configuración de NAT predeterminada en el adaptador y en su VM de Windows, vaya al archivo de hosts y agregue lo siguiente:
10.0.2.2 localhost
10.0.2.2 127.0.0.1
A diferencia de las respuestas anteriores, es importante incluir ambas líneas, de lo contrario no funcionará.