¿Cómo accedo a un servidor web en una caja virtual desde la máquina host [cerrado]

29

Tengo una máquina con Windows Vista en la que VirtualBox ejecuta ubuntu.

En ubuntu estoy ejecutando un servidor web en la dirección http://127.0.0.1:3000/

¿Cómo accedo a esta dirección desde mi máquina host (el cuadro de Windows)?

Argh
fuente
La opción más simple es utilizar el reenvío de puertos. Se puede configurar en Configuración-> Red. Verifique este enlace
espartano el
Si realmente configuró el servidor web de su invitado en 127.0.0.1, entonces no puede acceder desde el exterior del invitado. El localhost / 127.0.0.1 es un adaptador de bucle invertido (en memoria) y ni siquiera requiere que la tarjeta de red esté instalada para funcionar correctamente. Si cambia la dirección IP de su servidor web a otra que no sea el bucle invertido, las respuestas a continuación podrán ayudarlo.
Mladen B.

Respuestas:

28

Puede cambiar su modo de red invitado de NAT a Bridged. Simplemente cierre su invitado de Ubuntu, vaya a la página de Configuración en VirtualBox, seleccione la categoría Red y cambie el cuadro de lista Adjunto a de NAT a Modo Puente.

Editar:

Después de seguir los pasos anteriores, reinicie Ubuntu y la IP asignada se mostrará en la pantalla de bienvenida después de la carga. es decir, en el mensaje de bienvenida debería decir algo como:

Dirección IP para eth0: 192.168.1.3

Utilice esta dirección en la barra del navegador de la máquina host seguida del puerto que está utilizando. Si no es el puerto 80, es decir, si lo configura para usar el puerto 666, la dirección sería 192.168.1.3:666

Otra forma de encontrar la IP es conectarse al servidor HTTP integrado en su enrutador y buscar en la configuración de LAN. Cada máquina en la red debe estar listada por nombre de host e IP. En mi enrutador, la mayoría de los otros que he tenido, puede hacerlo escribiendo 192.168.1.1 en la barra de direcciones. si eso falla, intente la misma dirección en el puerto 81. Si eso falla, LEA EL MANUAL.

slm
fuente
Pero entonces, ¿cómo puede averiguar cuál es la dirección IP? Thx
SSH Este
Eso funcionará, pero la opción de solo host no expuso ese vm a la red corporativa
Carlos García
2
¿Soy el único aquí que piensa que el punto final del huésped de 127.0.0.1 solo se puede alcanzar desde el huésped (ese es el punto de localhost)? No debería haber forma de acceder a ese tipo de punto final desde cualquier cosa fuera de la máquina invitada (debido a que es un adaptador de bucle invertido, ni siquiera requiere una tarjeta de red instalada).
Mladen B.
si ingreso este 192.1681.3 como IP para un registro A en Godaddy no funciona, obviamente espera una dirección IP externa, si lo pongo, todavía no funciona por alguna razón, quiero probar un nombre de dominio localmente antes pasando EC2
PirateApp
10

Depende de cómo configure las redes en el sistema operativo invitado de Ubuntu. Si lo configura para usar NAT y tiene un servidor DHCP ejecutándose en su red, simplemente ejecute esto:

ifconfig | grep inet

en el cuadro de Ubuntu: verá la dirección IP asignada al invitado de Ubuntu.

Ejemplo:

#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

Luego simplemente presiona http://10.0.0.2:3000

fsckin
fuente
Bueno, en mi caso, la dirección debería ser 10.0.2.15:3000/public y, por defecto, Vista se ejecuta en modo DHCP ... (la máquina ubuntu también está configurada para usar NAT), sin embargo, no recibo una respuesta :(
Argh
Hmmm acabo de dar cuenta de que no tengo un servidor DHCP - Estoy corriendo Vista Home ...
Argh
VirtualBox tiene su propio servidor DHCP que maneja máquinas virtuales; de lo contrario, las máquinas virtuales no obtendrían automáticamente una dirección IP sin configurarlas estáticamente. Creo que su problema podría ser que no está haciendo que Apache escuche en todas las interfaces, solo localhost (127.0.0.1). Asegúrese de que en / etc / apache2 / sites-available / default la directiva Listen dice 80, no 127.0.0.1:80 por help.ubuntu.com/9.04/serverguide/C/httpd.html
Cory Plastek
Esta es probablemente la causa.
fsckin
4

Su caja de Windows y la caja de Ubuntu (ya sea física o virtual no importa realmente en este caso) ambas necesitan tener una dirección IP en la misma subred para que puedan comunicarse entre sí a través de TCP / IP. Puede asignar una dirección adicional a cada sistema operativo utilizando una de las subredes IP privadas (consulte RFC 1918 ). Una vez que ambos tengan una dirección en la misma subred, configure el servidor web para escuchar el que le dio a Ubuntu y luego use esa IP en el navegador dentro de Windows para cargarla.

La IP que ha configurado ahora, 127.0.0.1, es la dirección de bucle de retorno para la interfaz de red local. Nunca usaría esa dirección para acceder a algo en un sistema diferente, solo para referirse al mismo sistema en el que se encuentra. Cuando use un sistema virtual, trátelo como si fuera una computadora separada desde el punto de vista de la red.

Justin Scott
fuente
2

Para resolver su problema, le sugiero que agregue un nuevo adaptador de red y lo configure como adaptador de solo host .

Ahora ejecuta la instancia de caja virtual y luego lo que sugirió fsckin para ver cuál es la ip de la nueva red .

De esta manera, tiene una subred con su computadora y su máquina virtual.

fampinheiro
fuente
Entonces ... hice lo que dijiste, agarré mi dirección IP. Luego intenté acceder al servidor web (al que puedo acceder dentro del invitado como 127.0.0.1:3000 ) usandoIPIP: 3000 y no obtuve una respuesta. Sin embargo, podría hacer ping a la ip desde el host
Argh
Debe
Solo host no funcionará de inmediato
givanse
0

En primer lugar, debe hacer lo que dice la Respuesta 1:

"Puede cambiar su modo de red de invitado de NAT a Bridged. Simplemente cierre su invitado de Ubuntu, vaya a la página Configuración en VirtualBox, seleccione la categoría Red y cambie el cuadro de lista Adjunto a NAT de Bridged a NAT".

Luego, para obtener su dirección IP:

En su máquina virtual, abra un símbolo del sistema y haga:

ip addr show

Probablemente verá una línea que se parece a esto:

inet 192.168.43.96/24 ....

También hay una línea antes de eso con

inet 127.0.0.1

¡Pero no quieres esa! Quieres la dirección 192. Esa es la dirección de su máquina virtual en su red local. Debe ser accesible desde cualquier dispositivo conectado a la misma red local.

Ahora en su máquina host, edite el archivo / etc / hosts (No ~ / etc) El nombre del archivo es hosts (no es un nombre de carpeta)

agregue una línea que se vea así:

192.168.43.96 myvm.nameofmywebsite.com

Ahora vaya al navegador de su máquina host y escriba myvm.nameofmywebsite.com

¡Ojalá eso lo haga!

Sin embargo, es posible que tenga un enrutador que tenga características de seguridad que le impidan ver su dirección local. Lo que puede intentar hacer es utilizar el punto de acceso de su teléfono celular como su red. Funciona para mi. Solo recuerde cuando cambie la red en su máquina host que necesita reiniciar su virtualbox.

Andy Weinstein
fuente