No se pueden enrutar solicitudes http al invitado de Virtualbox desde clientes externos

No se pueden enrutar solicitudes http al invitado de Virtualbox desde clientes externos

Tengo un invitado de Virtualbox que ejecuta Ubuntu 14.04 y un servidor web node.js. El host de Virtualbox es un cliente de Windows 8.1. Después de configurar el servidor de nodo, tengo algunas dificultades para proporcionar acceso externo.

El servidor de nodo se ejecuta en el puerto 5005, por lo que normalmente simplemente crearía una regla de reenvío de puerto desde el firewall para enrutar todas las solicitudes de 5005 a la IP invitada (192.168.2.13) en el mismo puerto. Al hacer esto, veo que las solicitudes que hago desde una ubicación externa llegan al firewall y se permiten, pero el cliente externo nunca recibe una respuesta. Si accedo a la IP privada desde dentro de la red, responde tan correctamente como se esperaba (por lo que el servidor definitivamente está activo).

Si intento el mismo proceso, pero ejecuto un servidor en la máquina host (en lugar de una VM invitada), ¡funciona! Esto sugiere que la configuración del firewall no es un problema. Puedo hacer ping a la IP del invitado desde el firewall, por lo que la conectividad parece estar bien.

Entonces, parece que algo está sucediendo en la configuración de red de la VM que está causando un problema, pero ¿qué? El invitado VB está configurado con una IP estática, utilizando el modelo de red en puente de VirtualBox.

Ni IpTables ni UFW están configurados para bloquear nada en el invitado (eso lo digo)

¿Qué me he perdido?

Respuesta1

Resulta que el invitado no tenía la puerta de enlace predeterminada configurada correctamente. Pude decir esto ejecutando

route -N

en el invitado y mostró que no había una ruta predeterminada establecida. Para solucionar esto, corrí

route del default
route add default gw 192.168.2.100 eth1

y el huésped ahora puede comunicarse correctamente con el tráfico NAT de Internet.

información relacionada