Adaptador somente para Host VirtualBox com IP estático e Apache

1

Instalei o VirtualBox 5.0.14 em um host Lubuntu 15.10 e criei uma máquina virtual com o Lubuntu 14.04.5 LTS como sistema operacional convidado.

Eu gostaria de configurar um adaptador de rede somente para host no VirtualBox para que eu possa acessar um servidor Apache rodando dentro do sistema operacional convidado de um web browser rodando no sistema host.

Até agora eu criei um adaptador apenas para host vboxnet0 , o qual posso executar ping com êxito a partir do sistema operacional host. No entanto, não consigo acessar a porta 80 usando um navegador da Web ou qualquer outro meio.

O que posso fazer para descobrir a causa do problema e configurar as coisas corretamente?

Configurações de rede da VM

VirtualBoxvboxnet0configurações

Resultados do teste dentro do convidado

Após inicializar a VM e iniciar o Apache (usando sudo service apache2 start ), posso acessar uma página de teste em http://localhost/ usando o Firefox dentro do sistema operacional convidado sem problemas.

O Apache VirtualHost correspondente é definido como <VirtualHost *:80> in /etc/apache2/sites-enabled/000-default.conf , então não vejo por que ele não seria acessível de nenhum host.

Além disso, o sshd e o servidor MySQL estão sendo executados no guest. Eu posso ssh para localhost e nmap mostra todas as portas relevantes abertas (22, 80, 3306).

Resultados do teste no host

No sistema operacional do host, vboxnet0 aparece da seguinte maneira e é pingável:

% ifconfig vboxnet0
vboxnet0  Link encap:Ethernet  HWaddr 0a:00:27:00:00:00  
          inet addr:192.168.10.10  Bcast:192.168.10.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:192 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:0 (0.0 B)  TX bytes:16176 (16.1 KB)

% ping 192.168.10.10
PING 192.168.10.10 (192.168.10.10) 56(84) bytes of data.
64 bytes from 192.168.10.10: icmp_seq=1 ttl=64 time=0.023 ms

No entanto, nenhuma das portas está acessível:

% nmap 192.168.10.10 -p 22,80,3306

Starting Nmap 6.47 ( http://nmap.org ) at 2016-08-20 21:29 CEST
Nmap scan report for 192.168.10.10
Host is up (0.000027s latency).
PORT     STATE  SERVICE
22/tcp   closed ssh
80/tcp   closed http
3306/tcp closed mysql

Nmap done: 1 IP address (1 host up) scanned in 0.07 seconds

Tentando combinar o endereço IP

Conforme comentário de @MarkoPolo:

Mesmo que 192.168.10.10 seja pingável no sistema operacional host, não consigo acessar esse endereço IP do sistema operacional convidado.

Na verdade, o sistema operacional convidado tem um endereço IP do intervalo de DHCP especificado em vboxnet0 :

eth1      Link encap:Ethernet  HWaddr 08:00:27:0d:b4:6a  
          inet addr:192.168.56.101  Bcast:192.168.56.255  Mask:255.255.255.0
          inet6 addr: fe80::a00:27ff:fe0d:b46a/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:2 errors:0 dropped:0 overruns:0 frame:0
          TX packets:11 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:1180 (1.1 KB)  TX bytes:1422 (1.4 KB)

O endereço IP 192.168.56.101 não pode ser acessado pelo sistema operacional host, ou seja, não pode ser pingado, sem acesso usando o navegador da Web.

Eu tentei atualizar o endereço IP de eth1 to 192.168.10.10 usando ifconfig . Então, o Apache está acessível em http://192.168.10.10 do sistema operacional convidado, no entanto, ainda não é possível acessar (além do ping) a partir do sistema operacional host.

    
por tmh 20.08.2016 / 21:31

2 respostas

3

Resposta mais curta.

Com base no que sei sobre as configurações de rede padrão do VirtualBox, sua conexão somente do host que usa 192.168.10.10 está na sub-rede incorreta e esse ajuste está sendo feito na área errada para que essa coisa funcione.

Ao configurar um adaptador somente host no sistema operacional host, o endereço IPv4 deve ser 192.168.56.1 . E então - depois disso é a configuração - no sistema operacional convidado, defina a interface eth1 para usar um endereço IP como 192.168.56.10 .

Resposta mais longa.

Ao usar o VirtualBox, o roteador interno de pseudo-software é configurado para funcionar no intervalo 192.168.56.x de endereços IP. O intervalo do servidor DHCP, ao qual você não deve definir os endereços IP estáticos, estaria no intervalo de 192.168.56.101 to 192.168.56.254 e para definir um endereço IP estático, seria necessário definir um endereço IP entre 192.168.56.2 to 192.168.56.100 . Portanto, eu recomendaria que o seu uso de configuração do sistema operacional convidado (Lubuntu 14.04.5 LTS) usasse um endereço IP, como 192.168.56.10 .

Mas não defina esse valor 192.168.56.10 na área "Adaptador" como você configurou. Em vez disso, ajuste as configurações do adaptador para serem as seguintes; veja a imagem do Mac OS X abaixo para referência:

  • Endereço IPv4: 192.168.56.1
  • Máscara de rede IPv4: 255.255.255.0
  • Endereço IPv6: [Deixar em branco]
  • Comprimento da máscara de rede IPv6: 0

E, em seguida, no seu sistema operacional convidado (Lubuntu 14.04.5 LTS), parece estranho para mim que sua configuração eth1 seja a configuração DHCP e tenha o endereço 192.168.56.101 . Eu uso o Ubuntu 14.04.5 com uma conexão de host muito semelhante somente para o desenvolvimento do Apache no segundo adaptador também, e minha configuração é dividida assim:

  • eth0 com um endereço IP de 10.0.2.15 .
  • eth1 com um endereço IP de 192.168.56.10 .

E minhas configurações em /etc/network/interfaces são as seguintes:

auto eth1
iface eth1 inet static
      address 192.168.56.10
      netmask 255.255.255.0

Portanto, verifique novamente o endereço IP na conexão somente do host e verifique novamente a configuração das interfaces de rede também.

    
por 21.08.2016 / 08:33
0

O objetivo da rede somente de host usando o VirtualBox

No seu exemplo, você está tentando configurar uma rede somente de host no VirtualBox, que consiste em apenas uma máquina convidada e, é claro, a máquina host.

No entanto, lembre-se de que a rede somente de host é projetada para acomodar várias máquinas convidadas. Todas as máquinas guest dentro do host-only-network podem se comunicar com o outro e a máquina host mas não com o mundo externo:

Outside world <--> NIC <--> Host <--> vboxnet0 <--> virtual NIC <--> Guest OS
                   ---                --------      -----------
                                                   (virtual NIC <--> Guest OS #2)
                                                    ...
                                                   (virtual NIC <--> Guest OS #n)

Distinguir entre o endereço IP do host e do convidado

Sua suposição é de que 192.168.10.10 seria o endereço IP do sistema operacional convidado porque aparece como vboxnet0 na máquina host.

Esta suposição é incorreta - na verdade, 192.168.10.10 é o endereço IP da máquina host ! Suponha que você tenha várias máquinas convidadas dentro de sua rede somente host , então todas elas poderiam acessar o sistema operacional host usando esse endereço IP.

vboxnet0 age como o gateway entre host e guest (s). Você pode verificar isso facilmente: Se você abrir qualquer porta em sua máquina host (por exemplo, usando nc ), poderá acessar essa porta a partir do sistema operacional convidado em 192.168.10.10 .

O endereço IP real do convidado é - como você observou acima - 192.168.56.101 , que é obtido da configuração DHCP no VirtualBox ' vboxnet0 settings. Isso é o que é esperado. Você deve poder acessar seu sistema operacional convidado em 192.168.56.101 do host.

(Observe que é onde as várias máquinas convidadas entram em jogo: se você atribuir mais máquinas convidadas a vboxnet0 , elas também receberão endereços IP do intervalo DHCP especificado. Você também pode optar por atribuir IP estático No entanto, os endereços devem ter em mente que eles devem estar na mesma sub-rede que o endereço IP do host, ou seja, o endereço de vboxnet0 .

Possível causa de problemas e solução

Sua máquina convidada deve estar acessível como 192.168.56.101 , o que você descreve não funciona. A configuração do VirtualBox parece boa. É mais provável que você enfrente um problema de roteamento / sub-rede (que pode ter a ver com outras interfaces de rede em sua máquina host).

Tente colocar a máquina host na mesma sub-rede que a (s) máquina (s) convidada (s), alterando as configurações do VirtualBox da seguinte forma:

Verifique a tabela de roteamento em sua máquina host usando route . Uma rota para 192.168.56.0 / 255.255.255.0 via vboxnet0 deve agora existir, criada pelo VirtualBox.

Agora você deve poder acessar o Apache do convidado do host via http://192.168.56.101 e - se necessário - acessar a máquina host do convidado via 192.168.56.1 .

    
por 21.08.2016 / 08:40