Estou executando um aplicativo web na VM.
Posso ver o aplicativo por localhost:8888
meio de um navegador na VM.
Não consigo ver o aplicativo do host no mesmo URL. Esse é o objetivo.
Eu tentei VBoxManage modifyvm "VM name" --natdnshostresolver1 on
, mas não teve impacto.
Minha configuração é:
- Hospedar:Janelas 7
- Convidado:Ubuntu 16.04.1LTS
- Caixa Virtual:5.1.4r110228
(Convidado) ifconfig
quando em NAT
kirkland@GC:~$ ifconfig
eth0 Link encap:Ethernet HWaddr 08:00:27:d0:fc:0e
inet addr:10.0.2.15 Bcast:10.0.2.255 Mask:255.255.255.0
inet6 addr: fe80::4c67:70b5:c37b:8fa8/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:7431 errors:0 dropped:0 overruns:0 frame:0
TX packets:3587 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:7444830 (7.4 MB) TX bytes:731870 (731.8 KB)
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:65536 Metric:1
RX packets:1566 errors:0 dropped:0 overruns:0 frame:0
TX packets:1566 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1
RX bytes:655936 (655.9 KB) TX bytes:655936 (655.9 KB)
(Convidado) /etc/hosts
127.0.0.1 localhost
127.0.1.1 GC
# The following lines are desirable for IPv6 capable hosts
::1 ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
Responder1
O localhost:8888
URL é apenas um URL válido dentro da sua VM. Fora dessa VM você terá que usar ip.ad.dr.ess:8888
ou hostname:8888
. Neste último caso, ip.ad.dr.ess
é introduzida uma dependência da resolução do nome do host na sua rede.
Por padrão, quando você cria uma VM no VirtualBox, o adaptador de rede 1 é definido como NAT. Isso dará à VM um endereço IP 10.0.2.15/24
e uma rota padrão 10.0.2.2
(que deve ser o seu host). Resumindo, o Windows não irá encaminhar para um endereço para o qual está fornecendo NAT, sem passar por mais obstáculos primeiro.
Desligar a VM e alterar a configuração do adaptador de rede da VM 1 para "em ponte" permitirá que seu host (e qualquer host em sua rede local) se comunique com essa VM sem nenhuma rota especial adicionada ou obstáculos para saltar.
Reinicie a VM. Verifique sua conectividade com o localhost:8888
. Verifique também sua conectividade com hostname:8888
(assumindo que o nome do host foi not
adicionado ao endereço loopback/localhost no arquivo /etc/hosts) e ip-address:8888
. EDIT: Com base nos detalhes de /etc/hosts postados, você are
vincula sua VM e, portanto, o webapp à rede de loopback. Esta configuração não pode ser usada fora da VM.
Se o seu servidor web e aplicativo não dependem do IP em que foi configurado/instalado pela primeira vez, e você tem um servidor DHCP em sua LAN, a única outra informação que você precisa para se conectar à VM é o endereço IP que foi atribuído a ele via DHCP.
Para encontrar o endereço IP da VM: Abra uma janela de terminal/console na área de trabalho do Ubuntu (ctrl-alt-T), usamos os /etc/hosts
comandos hostname, ifconfig e grep para juntar as peças e encontrar seu endereço. No terminal aberto, digite hostname
e pressione Enter. Provavelmente é gc. Nesse mesmo terminal, digitar ifconfig eth0 | awk '/Bcast/{print $2}'
mostrará o endereço. Você deve ter uma linha em /etc/hosts com o endereço seguido do nome do host. grep [hostname] /etc/hosts
ou grep [address] /etc/hosts
deve encontrar a linha que você precisa. Se você encontrar algo diferente do seu endereço atual seguido do nome do host, será necessário modificar o arquivo /etc/hosts para adicionar as informações corretas.
Os hosts em sua LAN agora devem ser capazes de se conectar ao IP de sua VM na porta 8888. O acesso desses hosts/clientes ao webapp hostname:8888
dependerá dos arquivos de hosts do cliente, DNS local ou até mesmo dos serviços mDNS possivelmente fornecidos em seu servidor DHCP .
Responder2
Responder3
Para conseguir isso, acho que seria muito melhor usar o modo de ponte. Se isso não for possível ou desejável, você precisará de uma rota estática no seu host.
Para adicionar uma rota estática, faça o seguinte: Procure nas propriedades de rede do seu host. Você deve encontrar um adaptador chamado VirtualBox Host-Only Network. Encontre seu endereço IP. Provavelmente é 192.168.56.1, que considero o padrão, mas poderia ser outra coisa. Chame isso de abcd. Em seguida, obtenha o endereço IP do seu convidado. Chame isso de wxyz (os primeiros 3 octetos devem ser iguais em ambos os endereços). Quando tiver isso, abra um prompt do DOS em seu host e digite este comando:
route add w.x.y.z mask 255.255.255.0 a.b.c.d
Se funcionar, você pode executar o mesmo comando com a opção -p para torná-lo permanente (caso contrário, ele desaparecerá na próxima vez que você reinicializar o host).