Como acessar o servidor em execução no VirtualBox do host?

1

Estou executando um aplicativo da web na VM.

Eu posso ver o aplicativo em localhost:8888 por 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 é:

  • Host: Windows 7
  • Convidado: Ubuntu 16.04.1 LTS
  • VirtualBox: 5.1.4r110228

(Convidado) ifconfig quando no 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
    
por Kirkland 31.08.2016 / 23:02

2 respostas

2

A URL localhost:8888 é apenas um URL válido na sua VM. Fora dessa VM, você terá que usar ip.ad.dr.ess:8888 ou hostname:8888 . Neste último caso, é introduzida uma dependência no nome do host para ip.ad.dr.ess em sua rede.

Por padrão, quando você cria uma VM no VirtualBox, o adaptador de rede 1 é definido como NAT. Isso fornecerá à VM um endereço IP de 10.0.2.15/24 e uma rota padrão de 10.0.2.2 (que deve ser seu host). Para encurtar a história, o Windows não encaminhará para um endereço para o qual está fornecendo NAT, sem passar por mais aros primeiro.

Desligar a VM e alterar a configuração do adaptador1 de rede VM para "em ponte" permitirá que seu host (e qualquer host em sua rede local) se comunique com essa VM sem que nenhuma rota especial seja adicionada ou que arcos passem.

Reinicie a VM. Verifique sua conectividade com localhost:8888 . Verifique também sua conectividade com hostname:8888 (assumindo que o nome do host foi not adicionado ao endereço de loopback / localhost no arquivo / etc / hosts) e ip-address:8888 . EDIT: Com base nos detalhes do / etc / hosts postados, vocêare vincula sua VM e, portanto, o webapp à rede de loopback. Esta configuração não é utilizável fora da VM.

Se o seu servidor e aplicativo da Web não dependerem do IP em que ele foi configurado / instalado e você tiver um servidor DHCP em sua LAN, a única outra informação que você precisa para se conectar à VM é o IP. endereço 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 comandos hostname, ifconfig e grep /etc/hosts para juntar as peças e encontrar o seu endereço. No terminal aberto, digite hostname e pressione enter. Isso é 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 pelo 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 pelo nome do host, será necessário modificar o arquivo / etc / hosts para adicionar as informações corretas.

Os hosts em sua LAN agora devem poder se conectar ao IP de sua VM na porta 8888. Para que esses hosts / clientes acessem a webapp via hostname:8888 , eles dependem dos arquivos de hosts do cliente, DNS local ou até mesmo serviços mDNS possivelmente fornecido em seu servidor DHCP.

    
por 02.09.2016 / 03:39
0

Para conseguir isso, acho que seria 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: Olhe nas propriedades de rede do seu host. Você deve encontrar um adaptador chamado VirtualBox Host-Only Network. Encontre o seu endereço IP. É provavelmente 192.168.56.1, que eu acho que é o padrão, mas poderia ser outra coisa. Chame isso de a.b.c.d. Em seguida, obtenha o endereço IP do seu convidado. Chame isso de w.x.y.z. (Os primeiros 3 octetos devem ser os mesmos em ambos os endereços.) Quando você 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 isso 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).

    
por 01.09.2016 / 23:20