Como eu sirvo um site a partir de uma máquina virtual no virtualbox?

1

Eu tenho um host Ubuntu 16.04 que tem um convidado Ubuntu 16.04 em execução no VirtualBox. Eu tenho o apache2 configurado em ambas as máquinas, eles servem cada um de seus sites. Eu posso acessar o site no convidado do host - isso funciona bem - mas quando eu tento acessar o site no convidado de qualquer outro computador eu recebo um erro que o host não pôde ser alcançado.

Estou usando uma ponte para conectar o convidado à rede. O convidado pode pingar todas as outras máquinas na mesma rede e também 8.8.8.8. Todas as outras máquinas na rede podem fazer ping no convidado. Eu adicionei o ip da máquina de convidado no / etc / hosts da máquina host.

O que preciso fazer para acessar o site na máquina de convidado pela Internet?

    
por Lasserh 14.03.2017 / 19:15

3 respostas

1

Como o CelticWarrior menciona, a maneira mais fácil é alterar a configuração de rede da VM no seu hipervisor (Vbox ou VMware ou KVM). Seja qual for o hipervisor que você está usando, configure a conexão de rede para ficar na mesma rede que o HOST, ao invés do Natted.

Se você ainda quiser NAT na sua VM, ou não tiver a opção de alterá-la; você pode configurar o IPtables para executar um encaminhamento de porta para o IP da VM e o número da porta. Usando algo como o seguinte link:

encaminhamento de porta simples

    
por BrayNShock 14.03.2017 / 19:31
1

No VirtualBox você pode usar como adaptador de rede uma ponte de rede. Do que o seu ubuntu virtual deve obter um endereço IP da sua rede interna. (É mais fácil dar o IP manualmente, então é sempre o mesmo IP) Do que você tem que encaminhar a porta 80 em seu roteador para a porta 80 do IP da rede do seu ubuntu virtual. Se você navegar para o seu IP externo (você o vê no seu roteador), você verá o seu webside. Você não precisa do Apache no seu host se quiser construir um servidor virtual.

    
por George Stone 14.03.2017 / 20:08
0

Se você tiver configurado o encaminhamento de porta ou conectado, ainda não conseguirá se conectar ao servidor da Web do convidado, então possivelmente o firewall do convidado está bloqueando-o.

Por exemplo, eu consegui SSH para a instância do sistema operacional convidada, mas não me conectei à porta 8000 onde meu convidado estava executando um serviço da Web.

Usando o 'curl -v', pude ver que o curl estava fazendo uma conexão e enviando cabeçalhos, mas não obtendo resposta.

Então, no meu guest, que era centos, eu coloquei um conjunto de regras para efetivamente desabilitar o iptables.

Isso resolveu isso!

Faça ..

sudo su -

Então ..

iptables -P INPUT ACCEPT

iptables -P SAÍDA ACEITAR

iptables -P AVANÇAR ACEITAR

iptables -F

Em seguida, tente acessar novamente o endereço do host.

Outros detalhes ...

Meu serviço web de adivinhação estava sendo executado no centos e ouvindo em 0.0.0.0:8000, ou seja, todas as interfaces na porta 8000. Meu host era o Windows 10.

Eu tive sucesso com o seguinte ...

A) Eu configurei o encaminhamento NAT da porta 8888 no meu host no VirtualBox para a porta 8000 do convidado. No virtualbox, eu não forneci um ipaddress para o host ou guest na configuração de encaminhamento nat. Então eu acessei 127.0.0.1:8888 no host e consegui acessar meu site.

B) Eu também tentei ligar em bridge na caixa virtual, então, depois de reiniciar o guest, eu corri o ifconfig e achei a interface de rede que foi designada um endereço dhcp pelo meu roteador. Este endereço era um começando com 192.168.0. como é assim que meu roteador está configurado. O meu foi 192.168.0.62, mas o seu será diferente. Então eu acessei 192.168.0.62:8000 e pude entrar em contato com meu site.

C) Finalmente eu configurei uma rede em ponte no VMware workstation Player e fiz os mesmos passos que B e isso também funcionou.

No VMware player, não consegui ver um local para configurar o encaminhamento de porta, portanto, não tentei fazer isso. Provavelmente precisa da versão paga para esse recurso ??

    
por John Lonergan 21.05.2018 / 13:20