Aquí hay al menos tres componentes separados en juego, cada uno de los cuales debe configurarse correctamente.
Dirección de enlace de rieles
Cuando Rails (u otra aplicación de servidor) se abre para recibir conexiones de red, se unirá tanto a una IP como a un puerto. Si una solicitud entrante no coincide con ambos, no aceptará la conexión. De rails server --help
:
Usage: rails server [mongrel, thin etc] [options]
-p, --port=port Runs Rails on the specified port.
Default: 3000
-b, --binding=IP Binds Rails to the specified IP.
Default: localhost
...
Entonces, por defecto, Rails solo aceptará solicitudes enviadas a su localhost
adaptador de red (loopback) (llamado lo
). Dado que solo se puede acceder a este adaptador desde la misma computadora, las únicas solicitudes que aceptará serán desde la propia máquina virtual de Debian: buenas y seguras para las pruebas, pero no útiles para la producción, o incluso pruebas desde una computadora diferente.
Si desea que sus Rails sean accesibles desde cualquier otra computadora (incluido su host de Windows 7), deberá decirle a Rails que se vincule a la dirección IP que Debian tenga que sea accesible desde el exterior (consulte a continuación).
Sin embargo, una manera más fácil es decirle a Rails que se una a la dirección IP especial 0.0.0.0
, lo que significa cualquier adaptador de red . Entonces, iniciando su servidor Rails así:
rails server -p 80 -b 0.0.0.0
hará que su sitio web sea accesible para cualquiera que pueda ver su VM en la red.
Esto es probablemente lo que aún lo ha confundido, incluso si tenía los otros dos componentes funcionando.
Dirección IP de VM
Debe apuntar su navegador a la máquina virtual Debian, que es su propia computadora discreta.
La regla general con localhost
es que siempre se refiere a la misma computadora. Sin embargo, para propósitos de red, su máquina virtual Debian es su propia computadora separada. Si está utilizando un navegador web en su host de Windows 7, localhost
siempre se referirá a su Windows 7 y nada más.
Tienes dos opciones aquí:
Configure el adaptador VirtualBox VM en modo Bridge (como mencionó en su pregunta). Esto colocará su Debian directamente en la misma red externa / doméstica / laboral que su host de Windows 7. Luego puede determinar la IP de su máquina virtual Debian ejecutando ifconfig
. Busque la IP de su eth0
o eth<something>
adaptador. Conéctalo a la barra de direcciones de tu navegador.
Use un adaptador NAT y el reenvío de puertos VirtualBox . OMI, esto es más complicado.
Cortafuegos Debian
Ha pasado un tiempo desde que trabajé en Debian, así que no sé cuáles son los valores predeterminados actuales, pero si las dos cosas anteriores no funcionan, vale la pena analizarlo. Si Debian está ejecutando un firewall, deberá abrir cualquier puerto al que desee acceder desde otra máquina.
Espero que esto ayude :)