40 votos

¿Cómo puedo acceder a un servidor web en un virtualbox desde la máquina anfitriona?

Tengo una máquina Windows Vista sobre la que VirtualBox está ejecutando ubuntu.

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

¿Cómo puedo acceder a esta dirección desde mi máquina anfitriona (la caja de Windows)?

1 votos

La opción más sencilla es utilizar el reenvío de puertos. Se puede configurar en Configuración->Red. Compruebe esto enlace

0 votos

Si realmente configuraste el servidor web de tu huésped en 127.0.0.1 entonces no puedes acceder a él desde el exterior del huésped. El localhost/127.0.0.1 es un adaptador loopback (en memoria) y ni siquiera requiere que la tarjeta de red esté instalada para funcionar correctamente. Si cambias la ip de tu servidor web a otra que no sea la loopback, entonces las respuestas de abajo podrán ayudarte.

0 votos

El reenvío de puertos mediante NAT me ha funcionado.

38voto

Puedes cambiar el modo de red de invitados de NAT a Bridged. Sólo tienes que cerrar tu invitado de Ubuntu, ir a la página de Configuración en VirtualBox, seleccionar la categoría de Red y cambiar el cuadro de lista Adjunto a de NAT a Modo Bridged.

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 debe 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 anfitriona, seguida del puerto que está utilizando. Si se trata de un puerto distinto del 80, por ejemplo, si se configura para utilizar el puerto 666, la dirección será 192.168.1.3:666.

Otra forma de encontrar la IP es conectarse al servidor HTTP integrado en el router y buscar en la configuración de la LAN. Todos los equipos de la red deberían aparecer en la lista por nombre de host e IP. En mi router, la mayoría de los que he tenido, puedes hacerlo escribiendo 192.168.1.1 en la barra de direcciones. Si eso falla LEA EL MANUAL.

15voto

fsckin Puntos 365

Depende de cómo configures la red en el SO invitado Ubuntu. Si lo configuraste para usar NAT y tienes un servidor DHCP corriendo en tu red, entonces sólo ejecuta esto:

ifconfig | grep inet

en la caja de Ubuntu -- verás 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

Entonces, sólo tienes que ir a http://10.0.0.2:3000

0 votos

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á configurado para utilizar NAT) sin embargo no estoy recibiendo una respuesta :(

0 votos

Hmmm acabo de darme cuenta de que no tengo un servidor DHCP - Estoy ejecutando vista home...

0 votos

VirtualBox tiene su propio servidor DHCP que maneja las máquinas virtuales - de otra manera las máquinas virtuales no obtendrían automáticamente una dirección IP sin establecerlas estáticamente. Creo que tu problema puede ser que no tienes Apache escuchando en todas las interfaces - sólo en 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

6voto

Justin Scott Puntos 7630

Tu equipo Windows y el equipo Ubuntu (si son físicos o virtuales no importa realmente en este caso) necesitan tener una dirección IP en la misma subred para que puedan comunicarse entre sí a través de TCP/IP. Puedes asignar una dirección adicional a cada sistema operativo utilizando una de las subredes IP privadas (ver RFC 1918 ). Una vez que ambos tengan una dirección en la misma subred, configura el servidor web para que escuche en la que le diste a Ubuntu, y luego usa esa IP en el navegador dentro de Windows para cargarlo.

La IP que has configurado ahora, 127.0.0.1, es la dirección de bucle para la interfaz de red local. Nunca usarías esa dirección para acceder a algo en un sistema diferente, sólo para referirte al mismo sistema en el que estás. Cuando uses un sistema virtual, trátalo como si fuera un ordenador independiente desde el punto de vista de la red.

4voto

Andy Weinstein Puntos 131

En primer lugar, hay que hacer lo que dice la respuesta 1:

"Puedes cambiar el modo de red de tu huésped de NAT a Bridged. Sólo tienes que cerrar tu invitado de Ubuntu, ir a la página de Configuración en VirtualBox, seleccionar la categoría de Red y cambiar el cuadro de lista Adjunto a de NAT a Modo Bridged".

Entonces, para obtener su dirección IP:

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

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 anterior con

inet 127.0.0.1

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

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

añada una línea como la siguiente:

192.168.43.96 myvm.nameofmywebsite.com

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

Esperemos que eso sirva.

Sin embargo, es posible que tengas un router con características de seguridad que se interpongan en la visión de tu dirección local. Lo que puedes intentar es usar el hotspot de tu móvil como tu red. A mí me funciona. Solo recuerda que cuando cambies de red en tu máquina anfitriona debes reiniciar tu virtualbox.

2voto

fampinheiro Puntos 117

Para resolver tu problema te sugiero que añadas un nuevo adaptador de red y configurarlo como Adaptador sólo para host .

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

De esta manera tienes una subred con tu ordenador y tu máquina virtual.

0 votos

Así que... hice lo que me dijiste agarrando mi dirección IP. Luego traté de acceder al servidor web (que puedo acceder dentro del huésped como 127.0.0.1:3000 ) utilizando asignadoIP:3000 y no obtuve respuesta. Sin embargo, pude hacer ping a la ip del host

0 votos

Tienes que abrir el firewall en el puerto 3000.

0 votos

El sistema de host-only no funcionará desde el principio: serverfault.com/questions/205477/

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X