Virtualbox: Jak uzyskać dostęp do serwera WWW w systemie gościa z systemu hosta?

10

Po wielu forach RTFM i czytaniu forów wciąż mam problemy i potrzebuję porady. Używam Virtualbox na Ubuntu i zainstalowałem serwer Centos jako gość. Mój problem polega na tym, że nie mogę uzyskać dostępu do serwera WWW w systemie-gościu z systemu-hosta.

Oto szczegóły: Host OS to Ubuntu 12.04 LTS (jądro 3.2.0-24-generic) 64bit.

Używam Virtualbox 4.1.12.

Otrzymuję adres IP z routera bezprzewodowego:

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)

Tak więc zainstalowałem CentOS jako system operacyjny gościa i chcę uzyskać dostęp do jego serwera http. W Ustawieniach sieciowych w Virtualbox mam to: Attached to Bridged Adapter

Nazwa: wlan0

Zezwalam na tryb Promiscuous dla maszyn wirtualnych.

I zaznaczono „Połączono kablem”.

Na komputerze CentOS interfejs eth0 pobrał adres IP 192.168.1.20 z maską 255.255.255.0. Jak dotąd wszystko wygląda dobrze, oba systemy mogą się pingować. Uruchomiłem serwer WWW i nasłuchuje on na porcie 80 - sprawdzony przy pomocy netstat. (Jednak nie zmienił domyślnego pliku konfiguracyjnego serwera).

Kiedy chcę połączyć się z serwerem sieciowym na komputerze CentOS, nie mogę. „Nie można się połączyć” Firefox mówi, Chrome jest również niezadowolony: Chrome nie może połączyć się z 192.168.1.20. (Nie używam tutaj żadnego proxy).

Próbowałem telnet do portu 80 w systemie gościa - nie ma radości:

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

Nie jestem pewien, czy to ważne, ale tabela tras w systemie gościa jest tutaj:

[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

(To zabawne, właśnie zorientowałem się, że mogę ssh z Ubuntu do CentOS.)

Próbowałem różnych ustawień w Virtualbox, ale powyższe jest najbliższe temu, co ludzie sugerują na różnych forach. Próbowałem NAT z przekierowaniem portów, adapter tylko do hosta, ale nie udało mi się go naprawić.

Czy ktoś może zapalić dla mnie trochę światła? Twoje zdrowie

Petkaux
źródło
Ponadto ... Na moim systemie operacyjnym hosta (Ubu) wykonałem traceroute i znalazłem drogę do systemu gościa. I jak powiedziano, maszyny mogą pingować się nawzajem i ssh działa. Utworzono fikcyjny plik HTML o nazwie index_x.html i mogę czytać stronę od samego gościa za pomocą lynx. Czy może to być problem z zaporą?
Petkaux
Czy masz zaporę działającą w systemie-gościu? Jeśli tak, to czy blokuje port 80?
Fran
Tak, masz rację, Fran. iptables blokował mnie na gościnnym CentOS. Wyłączyłem to tymczasowo, aby zobaczyć, co się dzieje i voila, mogłem uzyskać dostęp do serwera internetowego! Yippeee!
Petkaux,
@Petkaux Mam przykładowy problem z tym samym środowiskiem. Nie jestem dobry w Linuksie. Czy możesz więc podać mi polecenie / kroki, które próbowałem rozwiązać? ?
Mr. Black,

Odpowiedzi:

8

Rozwiązaniem było otwarcie portu w zaporze systemu gościa, jak opisano tutaj: http://wiki.centos.org/HowTos/Network/IPTables

Ustawienia sieci w Virtualbox były OK - Bridged Network jest prawidłowym ustawieniem.

Petkaux
źródło
Dzięki, to zajęło mi trochę czasu, żeby się zorientować. firewall-cmd --zone=external --add-service=http --permanent; firewall-cmd --reload
Christopher Markieta
3

Wyłączenie wewnętrznej zapory systemu operacyjnego gościa, jak poniżej, powinno umożliwić dostęp. Rodzaj

service iptables stop
chkconfig iptables off

w wierszu poleceń w systemie-gościu.

Nilton Freitas Barbosa
źródło
Dzięki, spędziłem godziny próbując różnych ustawień dostępu do serwera na mojej maszynie Wirtualnej CentOS.
uınbɐɥs
Prosty i elegancki!
Edward_178118