SO convidado do VirtualBox acessando o servidor local no SO host

107

No meu host Ubuntu, tenho meu servidor da web local. Eu instalei o VirtualBox e o Debian como convidado.

Eu gostaria que o convidado Debian pudesse acessar meu servidor http://localhost:8080/da Web em execução no meu host Ubuntu (por exemplo, eu apenas digito no navegador no Debian).

Como isso pode ser feito?

Máxima
fonte

Respostas:

177

Habilite UM adaptador de rede. Defina-o como NAT e inicie sua máquina. Não precisa configurar nada.

No navegador da máquina convidada, digite http://10.0.2.2, que mostrará o mesmo conteúdo que "localhost" no sistema operacional host.

10.0.2.2 é o "gateway padrão" para conexões NAT e o IP do seu sistema operacional convidado é 10.0.2.15

Obviamente, você pode definir um "SOMENTE PARA HOST" ou uma "Rede Interna" que permitirá outras configurações avançadas. Eu recomendo ficar com o NAT.

Desfrutar

M.

Melvyn
fonte
1
"Ativar um adaptador de rede". Onde isso é feito?
jshen
1
Nota: Se você tiver hosts virtuais baseados em nome configurados no apache em sua máquina host, poderá acessá-los simplesmente criando um mapeamento no arquivo de hosts das máquinas do convidado para10.0.2.2 yourvirtualhostname.local (or whatever)
Usuário
@ Usuário tem certeza de que seu último comentário funcionará? Eu tenho um host virtual no meu host VB definido como http://example.dev, e o mapeamento 10.0.2.2para qualquer coisa no meu convidado VB não ajuda a acessá-lo.
Томица Кораћ
1
@ ТомицаКораћ funciona. Por exemplo, consulte: askubuntu.com/questions/36183/… no entanto, você provavelmente deve abrir uma pergunta separada para resolver isso.
Utilizador
1
"Ativar um adaptador de rede" significa que, nas configurações de rede da sua máquina virtual (no VirtualBox), ative apenas um dos adaptadores. Fiquei um pouco confuso quando li pela primeira vez.
Marquez
5

Também um ponto a ser destacado ao usar o endereço IP 10.0.2.2 é se você estiver usando o MAMP, por exemplo, adicione o número da porta: 8888 para que o endereço completo seja http://10.0.2.2:8888

Paulo
fonte
3

A maneira mais fácil de permitir acesso ininterrupto à sua máquina VirtualBox Guest é configurar o dispositivo de rede como uma 'ponte' para o eth0 na sua LAN.

A máquina Guest irá obter um IP da LAN via DHCP do seu roteador.

Ash Palmer
fonte
Para esclarecer: Esta é uma configuração no aplicativo cliente. Funcionou para mim - demorei um pouco para perceber, porque o IE era estúpido demais para assumir que queria uma conexão HTTP quando digitei um endereço IP e uma porta na barra de endereços.
Michael Scheper
2

O que eu achei que corrigiu o problema para mim foi garantir que o adaptador Windows VirtualHost-Only fosse definido como o endereço .1 para o intervalo de ip, de modo que o adaptador somente do host da caixa virtual fosse 192.168.58.20, mas o ip do adaptador do Windows fosse 192.168. 58,1

Jason Hardin
fonte
2

Se a solução do @Melvyn não funcionar, como alternativa, você pode configurar o adaptador de rede a ser conectado.
Vá para Settings-> Network-> depois mude Attached topara Bridged Adapter.

insira a descrição da imagem aqui

Você deve poder chamar o pai pelo nome do host ou pelo endereço IP externo, pode obtê-lo acessando o prompt de comando e digitando ipconfig /all insira a descrição da imagem aqui

insira a descrição da imagem aqui

Atualização Se você estiver depurando com o Visual Studio e usando o IIS Express.

vamos para C:\Users\[uesername]\Documents\IISExpress\config\applicationhost.config

encontre seu site <configuration>/<system.applicationHost>/<sites>/<site> (o nome pode ser enganoso, tente verificar o local no disco no physicalPathatributo)

adicione na <bindings>seção nova ligação

<bindings>
    <binding protocol="http" bindingInformation="*:50766:localhost" />
    <binding protocol="http" bindingInformation="*:50766:48qzr12" />
</bindings>

onde bindingInformation é *:[port]:[machineName]

Espero que isso poupe algum tempo.

Matas Vaitkevicius
fonte
-1

Bem, você pode fazer com que o Debian atinja seu servidor web, mas não usando o host local. Você terá que usar o endereço IP do host Ubuntu.

Supondo que o sistema operacional convidado esteja conectado à rede, para obter o IP, abra um terminal e digite ifconfig. Deve ser algo parecido 192.168.0.2.

Jivings
fonte
Oi! Desculpe pela resposta tardia. O ifconfig no meu host mostra 192.168.0.102 para eth0. Quando eu insiro este ip no firefox no convidado, ele está tentando se conectar por um tempo e a conexão é encerrada: "O servidor em 192.168.0.102 está demorando muito para responder" ... Então, o que devo tentar a seguir? Desde já, obrigado.
Maxim