Acessando um servidor web nginx na VM CentOS7 hospedada no Virtualbox no Windows 10

1

Configuração:

Uma única VM do CentOS 7.1 em execução em um servidor Windows 10 Pro (versão de visualização 10074), dentro do Virtualbox 5 beta 4 (também testado em 4.3.8). Usando o nginx / 1.9.0, para servir arquivos HTML estáticos.

A VM está conectada à minha intranet usando a configuração NAT no Virtualbox. Encaminhei as portas 22, 80 e 443 do servidor para a VM usando as configurações padrão do VirtualBox.

Problema:

Dentro da VM, posso usar o curl para buscar qualquer página ( curl localhost traz de volta o resultado esperado). No entanto, se eu tentar buscar a página do servidor Windows host ou de qualquer outro cliente da intranet - seja por IP ou host local no host, recebo erros "não é possível conectar" ou "redefinir conexão".

Usando o netstat na VM, eu validei que o nginx está escutando nas portas 80 e 443 em 0.0.0.0 e [::]. Também verifiquei no servidor Windows que as portas 80 e 443 não são usadas quando a VM não está em execução e estão sendo ouvidas quando estão.

Verificando os logs produzidos pelo nginx, access.log contém apenas os meus pedidos de curl - e nada relevante aparece no meu error.log.

No entanto, também estou executando o sshd no servidor (na porta 22) e posso me conectar a ele de qualquer máquina na intranet (e externamente quando eu encaminhar as portas no meu roteador de internet), então não acredito é um problema de firewall.

Tentou soluções:

Eu tentei abrir o firewall do Windows para permitir conexões de entrada para as portas 80/443, bem como adicionar o Virtualbox às exceções do programa. Eu também tentei desativar completamente o firewall.

Eu tentei mover para os ports > 1000 no servidor host - mas como a porta 22 parece funcionar bem, isso não faz muito sentido.

Infelizmente, não posso alterar minha conexão de VM do NAT para nenhum outro tipo. O Virtualbox parece não suportar a ponte de adaptador no Windows 10 ainda (tentei várias reinstalações e a nova versão beta).

    
por Nick Moore 30.05.2015 / 18:53

1 resposta

1

Eu precisava usar firewall-cmd para permitir o tráfego http e https através do firewall da VM. Versões mais antigas do CentOS usariam iptables .

    
por 30.05.2015 / 19:59