Virtualbox: como acessar o servidor Web no SO convidado a partir do SO host?

10

Depois de muitos fóruns sobre RTFM e leitura, ainda estou tendo problemas e preciso de alguns conselhos. Eu uso o Virtualbox no Ubuntu e instalei um servidor Centos como convidado. Meu problema é que não consigo acessar o servidor da web no SO convidado a partir do SO host.

Aqui estão os detalhes: O SO host é o Ubuntu 12.04 LTS (kernel 3.2.0-24-genérico) de 64 bits.

Eu uso o Virtualbox 4.1.12.

Eu recebo meu endereço IP do meu roteador sem fio:

eth0      Link encap:Ethernet  HWaddr 18:03:73:42:3d:ac  
          UP BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)
          Interrupt:47 Base address:0xe000 

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:16436  Metric:1
          RX packets:3784 errors:0 dropped:0 overruns:0 frame:0
          TX packets:3784 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:378673 (378.6 KB)  TX bytes:378673 (378.6 KB)

wlan0     Link encap:Ethernet  HWaddr 64:27:37:69:c5:d2  
          inet addr:192.168.1.15  Bcast:192.168.1.255  Mask:255.255.255.0
          inet6 addr: fe80::6627:37ff:fe69:c5d2/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:124013 errors:0 dropped:0 overruns:0 frame:0
          TX packets:82469 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:164307087 (164.3 MB)  TX bytes:9744555 (9.7 MB)

Então, instalei o CentOS como um sistema operacional convidado e quero acessar seu servidor http. Nas configurações de rede no Virtualbox, tenho o seguinte: Attached to Bridged Adapter

Nome: wlan0

Permito o modo promíscuo para as VMs.

E 'Cable Connected' marcou.

Na máquina CentOS, a interface eth0 captou o endereço IP 192.168.1.20 com a máscara 255.255.255.0. Tudo parece bom até agora, os dois sistemas podem executar ping um no outro. Iniciei o servidor web e ele está escutando na porta 80 - verificado com o netstat. (No entanto, não altere o arquivo de configuração padrão do servidor da web.)

Quando quero conectar-me ao servidor da web na máquina CentOS, não consigo. "Não é possível conectar", diz o Firefox, o Chrome também está infeliz: o Chrome não pôde se conectar ao 192.168.1.20. (Não estou usando nenhum proxy aqui.)

Tentei telnet para a porta 80 no sistema convidado - sem alegria:

:~$ telnet 192.168.1.20 80
Trying 192.168.1.20...
telnet: Unable to connect to remote host: No route to host

Não tenho certeza se é importante, mas a tabela de rotas no sistema operacional convidado está aqui:

[root@centos ~]# route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.1.0     *               255.255.255.0   U     0      0        0 eth0
link-local      *               255.255.0.0     U     1002   0        0 eth0
default         192.168.1.1     0.0.0.0         UG    0      0        0 eth0

(É engraçado, acabei de descobrir que eu posso ssh do Ubuntu para o CentOS.)

Tentei configurações diferentes no Virtualbox, mas o acima é o mais próximo do que as pessoas sugerem em diferentes fóruns. Tentei o NAT com encaminhamento de porta, adaptador somente para host, mas não consegui corrigi-lo.

Alguém pode lançar alguma luz para mim, por favor? Felicidades

Petkaux
fonte
Além disso ... No SO host (Ubu), fiz um traceroute e ele encontrou uma rota para o SO convidado. E como dito, as máquinas podem executar ping uma na outra e o ssh está funcionando. Criei um arquivo html fictício chamado index_x.html e posso ler a página do próprio convidado com o lynx. Isso pode ser um problema de firewall?
Petkaux
Você tem um firewall em execução no sistema operacional convidado? Se sim, está bloqueando a porta 80?
Fran
Sim, você está certo, Fran. O iptables estava me bloqueando no CentOS convidado. Eu o desliguei temporariamente para ver o que estava acontecendo e pronto, eu poderia acessar o servidor da web! Yippeee!
Petkaux
@ Petkaux Eu tenho um problema de amostra no mesmo ambiente. Eu não sou bom em Linux .. Então, você pode me dar o comando / passos que você tentou para o seu problema. ?
Sr. Black

Respostas:

8

A solução foi abrir a porta no firewall do sistema operacional convidado, conforme descrito aqui: http://wiki.centos.org/HowTos/Network/IPTables

As configurações de rede no Virtualbox estavam OK - a rede em ponte é a configuração correta.

Petkaux
fonte
Obrigado, este me levou um tempo para descobrir. firewall-cmd --zone=external --add-service=http --permanent; firewall-cmd --reload
Christopher Markieta
3

Desabilitar o firewall interno do sistema operacional convidado, conforme abaixo, deve permitir o acesso. Tipo

service iptables stop
chkconfig iptables off

na linha de comando quando estiver no sistema operacional convidado.

Nilton Freitas Barbosa
fonte
Obrigado, passei horas tentando configurações diferentes para acessar o servidor na minha VM do CentOS.
uınbɐɥs
Simples e elegante!
Edward_178118