
Eu tenho um convidado do Virtualbox executando o Ubuntu 14.04 e um servidor web node.js. O host do Virtualbox é um cliente Windows 8.1. Após configurar o servidor do nó, estou tendo alguma dificuldade em fornecer acesso externamente.
O servidor do nó está sendo executado na porta 5005, então normalmente eu simplesmente criaria uma regra de encaminhamento de porta no firewall para rotear todas as solicitações de 5005 para o IP convidado (192.168.2.13) na mesma porta. Fazendo isso, vejo as solicitações que faço de um local externo chegarem ao firewall e serem permitidas, mas o cliente externo nunca recebe resposta. Se eu acessar o IP privado de dentro da rede, ele responderá corretamente e conforme o esperado (portanto, o servidor está definitivamente ativo).
Se eu tentar o mesmo processo, mas executar um servidor na máquina host (em vez de uma VM convidada), ele funcionará! Isso sugere que a configuração do firewall não é um problema. Posso executar ping no IP do convidado a partir do firewall, então a conectividade parece boa.
Portanto, parece haver algo acontecendo na configuração de rede da VM que está causando um problema, mas o quê? O convidado VB é configurado com um IP estático, usando o modelo de rede em ponte do VirtualBox.
Nem o IpTables nem o UFW estão configurados para bloquear qualquer coisa no convidado (isso eu digo)
O que eu perdi?
Responder1
Acontece que o convidado não tinha o gateway padrão configurado corretamente. Eu fui capaz de dizer isso correndo
route -N
no convidado e mostrou que não havia nenhuma rota padrão definida. Para consertar isso, corri
route del default
route add default gw 192.168.2.100 eth1
e o convidado agora pode se comunicar adequadamente com o tráfego NAT da Internet.