Como posso acessar o Apache (no VirtualBox guest) do host?

133

Eu instalei o Apache em uma VM Ubuntu. Quando entro no guest e carrego o Firefox, vejo que o Apache está funcionando bem quando eu navego para o localhost.

Gostaria de acessar essa mesma página pelo host. Eu tentei usar o endereço IP do convidado, mas nada aparece.

Idealmente, eu adoraria configurar meu Windows 7 (host) para solicitar http://guestserver.com do servidor Apache no guest. Como posso fazer isso?

    
por urok93 07.07.2011 / 12:27

9 respostas

148

Se você precisar de outras máquinas em sua rede física para poder acessar sua VM (ou se a VM precisar de acesso à Internet), use a rede em ponte. Caso contrário, atenha-se à rede somente host.

  1. Pare sua VM e abra suas configurações no Gerenciador do VirtualBox (OSE)
  2. Vá para a guia Rede
  3. Selecione o modo de rede à sua escolha (rede interligada ou somente host) (no exemplo abaixo, estou usando somente host)

    Se você quiser usar a rede em ponte, selecione o adaptador de rede correto em Nome . Para conexões com fio, você selecionaria algo com o nome eth0 . As conexões sem fio são geralmente nomeadas wlan0 (os números podem variar)

  4. Salve as configurações
  5. Iniciar a VM do Ubuntu
  6. Quando estiver em cima, você pode coletar o endereço IP executando:

    ifconfig | grep addr
    

    Na saída abaixo, 192.168.56.101 é o endereço IP que pode ser usado no sistema host do Win7 para acessar sua VM:

    eth0  Link encap:Ethernet  HWaddr 08:00:27:70:27:fe  
          inet addr:192.168.56.101  Bcast:192.168.56.255  Mask:255.255.255.0
          inet6 addr: fe80::a00:27ff:fe7b:25fe/64 Scope:Link
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
    
  7. No sistema host do Windows, edite C:\Windows\System32\drivers\etc\hosts como administrador e adicione uma linha:

    192.168.56.101   guestserver.com
    

    Se você tem um sistema host Ubuntu, edite /etc/hosts usando sudo nano /etc/hosts

  8. Lucro!
por Lekensteyn 07.07.2011 / 12:58
12

No meu caso, eu tenho um roteador atribuindo um IP estático ao meu PC Host.

  1. Defina o adaptador de rede como Bridge:

    Configurações > Rede > Adaptador 1 ( Ativar adaptador de rede ) > Anexado a: ( Adaptador de ponte ) > OK

  2. Iniciar a máquina virtual > faça o login

  3. Altere o IP do VirtualMachine de dinâmico para estático

    sudo nano / etc / rede / interfaces

  4. Sob a interface de rede principal, altere a palavra dhcp para estática e insira seu novo IP estático ou comente a linha e adicione uma nova

:

#iface eth0 inet dhcp
iface eth0 inet static
        address 192.168.10.110
        netmask 255.255.255.0
        gateway 192.168.10.1
        network 192.168.10.0
        broadcast 192.168.10.255

Observe que meu roteador está trabalhando xxx.xxx. 10 .x e o seu poderia estar em xxx.xxx. 0 .x ou xxx.xxx. 1 .x ou alguma outra coisa.

Depois de fazer isso, você pode ter conexão com a Internet na máquina host e na máquina convidada e digitar esse IP estático no seu navegador da Web para verificar seu servidor apache.

    
por Nuc134rB0t 30.06.2012 / 01:04
7

Em vez de tentar definir os adaptadores para Bridged ou Host Only Network Adapter, você pode tentar o encaminhamento de porta em Firewall / Other ports, com a porta não definida para conexões tcp e udp.

    
por sp123 03.10.2014 / 17:27
4

A resposta aceita não funcionou para mim (eu instalei o virutalbox dentro do Ubuntu 12.04 LTS e dentro do VirtualBox eu instalei o Ubuntu 14.04 LTS Server). Acabei de trocar as configurações de rede para Adapter1 e Adapter2, ou seja, configurar o Adapter1 para "bridge bridges" e Adapter2 para "NAT" e ele começou a funcionar.

    
por Gaurav Pandey 22.06.2014 / 12:34
3

Se você não puder se conectar através do ip, provavelmente não terá sucesso com os nomes do dns em uma instalação padrão do apache.

verificar as configurações de rede do host virtual, eu sempre colocá-lo em ponte para ele pode ser acessado em toda a rede.

    
por PvdL 07.07.2011 / 12:47
2

No modo em ponte, se o seu host usa um endereço IP estático, você deve configurar manualmente o IP convidado no mesmo intervalo com o IP do host. Caso contrário, o convidado não será automaticamente alocado com um endereço IP válido. HTH.

    
por platinor 08.02.2012 / 06:47
2

Se você precisar apenas de uma porta específica (diga se estiver executando um aplicativo da Web como Jetty ou Tomcat) faça o seguinte:

Configurações - > Rede - > Defina um dos adaptadores como NAT - > Pressione "Encaminhamento de porta" - > Defina o host relevante e a porta de convidado.

Depois de salvar, você pode ir da sua máquina local para localhost: hostport e ele será redirecionado para a porta relevante da caixa virtual e pronto.

    
por StationaryTraveller 01.08.2017 / 14:25
1

A resposta de Lekensteyn está certa. Mas se você estiver em um ambiente corporativo, talvez seja necessário desativar o servidor proxy para o endereço IP do seu convidado. Por exemplo, se você estiver usando o Mozilla Firefox na sua máquina Host e estiver tentando acessar o 192.168.56.101 / no guest, precisará acessar as opções do Firefox Tools- > Advanced- > Network- > e use "No Proxy" ou "No Proxy For - > 192.168.56.101".

    
por SpaceRook 27.11.2012 / 03:00
1

Se você precisar acessar um convidado que obtenha um IP diferente devido ao uso do DHCP, sugiro que acesse por meio de seu nome de host. No entanto, o acesso via hostname quando o host é o Windows pode exigir uma ferramenta extra.

O seguinte texto foi copiado da minha resposta em superuser.com. :

Sugiro que você use o DNS multicast para corrigir isso.

O Ubuntu está usando isso por padrão via Avahi .

O host do Windows precisa de um cliente Avahi para descobrir outros serviços Avahi. Se o seu host já usa algum software da Apple, isso provavelmente já está lá através de um serviço chamado Bonjour. No entanto, se isso ainda não estiver instalado, uma versão pequena do Bonjour está disponível para download aqui: Serviços de Impressão Bonjour . Após a instalação, você poderá acessar seu convidado via .local.

Observação: o sistema mDNS parece usar o postfix .local por padrão. Portanto, se o seu nome de host for "dev.myapp.com", o nome do host atual será "dev.myapp.com.local".

    
por Spiralis 29.01.2013 / 23:45