Há pelo menos três componentes separados em jogo aqui, cada um dos quais precisa ser configurado corretamente.
Endereço de ligação do Rails
Quando o Rails (ou outro aplicativo de servidor) é aberto para receber conexões de rede, ele se ligará a um IP e a uma porta. Se uma solicitação recebida não corresponder a ambas, ela não aceitará a conexão. 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 ...
Portanto, por padrão, o Rails aceitará apenas solicitações enviadas para seu adaptador de rede localhost
(loopback) (chamado lo
). Como este adaptador só é acessível a partir do mesmo computador, os únicos pedidos que ele aceitará serão da própria VM do Debian: bons e seguros para testes, mas não úteis para produção, ou mesmo testes de um computador diferente.
Se você quer que seu Rails seja acessível de qualquer outro computador (incluindo seu host Windows 7), você precisará dizer ao Rails para ligar qualquer endereço IP que o Debian tenha que seja acessível externamente (veja abaixo).
No entanto, uma maneira mais fácil é dizer ao Rails para ligar ao endereço IP especial 0.0.0.0
, o que significa qualquer adaptador de rede . Então, iniciando o seu servidor Rails assim:
rails server -p 80 -b 0.0.0.0
tornará seu website acessível para qualquer pessoa que possa ver sua VM na rede.
É provável que isso ainda tenha atrapalhado você mesmo se você tivesse os outros dois componentes funcionando.
endereço IP da VM
Você precisa apontar seu navegador para a máquina virtual Debian, que é seu próprio computador.
A regra geral com localhost
é que sempre se refere ao mesmo computador. No entanto, para fins de rede, sua máquina virtual Debian é seu próprio computador separado. Se você estiver usando um navegador da Web no seu host do Windows 7, localhost
sempre se referirá ao seu Windows 7 e nada mais.
Você tem duas opções aqui:
-
Defina o adaptador VirtualBox VM para o modo Bridge (como você mencionou na sua pergunta). Isto irá colocar o seu Debian diretamente na mesma rede externa / doméstica / trabalhista que o seu host do Windows 7. Você pode então determinar o IP da sua máquina virtual Debian executando
ifconfig
. Procure o IP do seu adaptadoreth0
oueth<something>
. Ligue-o à barra de endereços do seu navegador. -
Use um adaptador NAT e encaminhamento de porta VirtualBox . OMI isto é mais complicado.
Firewall do Debian
Já faz um tempo desde que eu trabalhei no Debian, então eu não sei quais são os padrões atuais, mas se as duas coisas acima não funcionarem, isso pode valer a pena investigar. Se o Debian estiver executando um firewall, você precisará abrir todas as portas que desejar acessar de outra máquina.
Espero que isso ajude:)