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

142

Eu instalei o Apache em uma VM do Ubuntu. Quando entro no convidado e carrego o Firefox, posso ver que o Apache está funcionando bem quando navego para o host local.

Gostaria de acessar esta mesma página através do 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.como servidor Apache no convidado. Como posso fazer isso?

urok93
fonte
Encontrei um site que me ajudou a resolvê-lo. As respostas abaixo estão corretas, mas não mostram nada sobre a criação de adaptador virtual na VM. O site que me referi é: christophermaier.name/2010/09/01/…
Sudhir Dhumal

Respostas:

156

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

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

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

  4. Salve as configurações
  5. Inicie a VM do Ubuntu
  6. Quando ativado, você pode reunir 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 seu sistema host 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\hostscomo administrador e adicione uma linha:

    192.168.56.101   guestserver.com
    

    Se você possui um sistema host Ubuntu, edite /etc/hostsusandosudo nano /etc/hosts

  8. Lucro!
Lekensteyn
fonte
2
Isso funcionou perfeitamente para redes somente de host e agora posso acessar o convidado no navegador do host. No entanto, com uma conexão em ponte, que eu gostaria, não tenho acesso à Internet pelo hóspede.
Urok93 7/07
5
ipconfig não é um comando no Linux, é ifconfig. Você quis dizer isso?
Max
7
No arquivo host do Windows 7/8 está aqui: C: \ Windows \ System32 \ drivers \ etc \ hosts
Dalen
2
@begueradj Essas etapas acima se aplicam à rede em ponte, mas algumas redes não permitem / fornecem vários endereços. No meu uni, não pude usar a rede em ponte por causa disso, nessas situações eu usaria o NAT com encaminhamento de porta.
Lekensteyn
11
A ativação de dois adaptadores de rede, um NAT e ponte, me permitiu ver e ser visto.
stenci
13

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 )> Conectado a: ( Adaptador de ponte )> OK

  2. Inicie a Máquina Virtual> faça login

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

    sudo nano / etc / network / interfaces

  4. Em A interface de rede primária, altere a palavra dhcp para estático e insira seu novo IP estático ou comente a linha e adicione um novo

:

#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á funcionando no xxx.xxx. 10 .xe o seu pode estar em xxx.xxx. 0 .x ou xxx.xxx. 1 .x ou alguma outra coisa.

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

Nuc134rB0t
fonte
Esqueci de dizer que você tem que se certificar que seu / etc / hostname está devidamente configurado desta forma: nameserver [your_isp_primary_dns] e nameserver [your_isp_secondary_dns]
Nuc134rB0t
8

Em vez de tentar definir os adaptadores como Adaptador de rede em ponte ou somente host, você pode tentar o encaminhamento de porta em Firewall / Outras portas, com a porta não configurada para conexões TCP e UDP.

sp123
fonte
6

A resposta aceita não funcionou para mim (instalei o virutalbox dentro do ubuntu 12.04 LTS e dentro do virtualbox instalei o ubuntu 14.04 LTS Server). Acabei de trocar as configurações de rede do Adaptador1 e do Adaptador2, ou seja, configurando o Adaptador1 para "ponte de rede" e o Adaptador2 para "NAT" e ele começou a funcionar.

Gaurav Pandey
fonte
Isso foi útil, mas mude a ordem do adaptador para que o convidado use o NAT por padrão e possa conectar-se à Internet.
MadeOfAir
Isso realmente funcionou para mim. Estou tentando acessar uma VM do Windows a partir de um host Mac.
benjaminz
11
Depois de horas lendo e tentando qualquer outra solução que eu pudesse encontrar online, essa sua idéia funcionou como um encanto. Muito obrigado por escrever! Usando o Ubuntu 18.04 como host e convidado.
John
5

Se você precisar apenas de uma porta específica (digamos, se estiver executando um aplicativo da web como o Jetty ou o Tomcat), basta:

Configurações -> Rede -> Defina um dos adaptadores como NAT -> Pressione 'Port forwarding' -> Defina a porta de host e de convidado relevante.

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

StationaryTraveller
fonte
4

Se você não conseguir se conectar através do IP, provavelmente não terá sucesso com os nomes de DNS em uma instalação padrão do apache.

verificar as configurações de rede do host virtual, eu sempre coloco em ponte para que ele possa ser acessado em toda a rede.

PvdL
fonte
Defino como ponte, mas agora o hóspede não se conecta à Internet.
Urok93 7/07
você recebe um IP no sistema operacional da missão? Normalmente, configurei várias placas de rede para corresponder a todas as minhas placas de rede físicas. Talvez você possa despejar seu ifconfig da busca e anfitrião
PvdL
Quando estou trabalhando com conexão sem fio, funciona, mas com o cabo não, aqui estão algumas capturas de tela mostrando minha configuração: imageshack.us/photo/my-images/832/guestr.png imageshack.us/photo/my-images/846/virtualbox .png imageshack.us/photo/my-images/9/hostwin7.png
urok93
alguma ajuda sobre isso, por favor?
Urok93
parece que o seu computador está conectado diretamente à internet e que pode ser a razão por que seu cliente não está recebendo um IP (v4)
PvdL
3

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

platinor
fonte
2

A resposta de Lekensteyn está certa. Mas se você estiver em um ambiente corporativo, poderá ser necessário desativar o servidor proxy para o endereço IP do seu convidado. Por exemplo, se você estiver usando o Mozilla Firefox em sua máquina Host e estiver tentando acessar 192.168.56.101/ no convidado, precisará acessar Ferramentas do Firefox-> Opções-> Avançado-> Rede-> Configurações e usar "Não Proxy "ou" Sem Proxy Para -> 192.168.56.101 ".

SpaceRook
fonte
2

Se você precisar acessar um convidado com IP diferente devido ao uso do DHCP, sugiro acessar através do nome do host. No entanto, o acesso via nome do host quando o host é Windows pode exigir uma ferramenta extra.

O texto a seguir foi copiado da minha própria resposta em superuser.com. :

Eu 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á existe por meio de um serviço chamado Bonjour. No entanto, se isso ainda não estiver instalado, uma versão pequena do Bonjour estará disponível para download aqui: Serviços de Impressão Bonjour . Após a instalação, você poderá acessar seu convidado via .local.

Nota: O sistema mDNS parece usar o postfix .local por padrão. Portanto, se o seu nome do host for "dev.myapp.com", o nome do host real será "dev.myapp.com.local".

Spiralis
fonte