Mam konfigurację serwera VM, zainstalowałem i uruchomiłem Apache. Maszyna wirtualna ma zmostkowany interfejs sieciowy i może być pingowana z hosta za pomocą 192.168.0.2.
Jednak jeśli wpisuję ten sam adres IP w przeglądarce na komputerze hosta, spodziewałem się, że zobaczysz domyślną stronę apache wygenerowaną na maszynie wirtualnej, ale zamiast tego dostanę can't connect to 192.168.0.2
przeglądarkę komputera hosta.
Wyraźnie coś przeoczyłem. Czy ktoś wie, co przeoczyłem lub zrobiłem źle?
Dane wyjściowe z maszyny wirtualnej netstat -tnlp
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 950/sshd
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 1026/master
tcp 0 0 :::22 :::* LISTEN 904/sshd
tcp 0 0 ::1:25 :::* LISTEN 980/master
Szorstki rysunek tego, co według mnie wyglądałaby aktywność / łączność sieciowa.
virtualbox
oshirowanen
źródło
źródło
:::80
, Apache nasłuchuje tylko połączeń IPv6. Próbowałeś już sprawdzić swojeListen
dyrektywy?-p
flagę, abynetstat
sprawdzić, czy Apache nasłuchuje na porcie 80, a nie na innych usługach. Czy potrafisz ucieccurl localhost
od gościa? Cogrep -C3 -rni Listen /etc/httpd/
pokazujeOdpowiedzi:
Problem nr 1 - Typy sieci maszyn wirtualnych
Istnieją 3 tryby sieci:
Szczegółowe informacje na temat ich konfigurowania
Kiedy używać każdego z nich?
Problem nr 2 - blokowanie zapory ogniowej?
W zależności od używanej dystrybucji zapora może blokować dostęp do przeglądarki Apache przez przeglądarkę internetową. Ma to sens, biorąc pod uwagę, że możesz pingować system, ale nie możesz uzyskać do niego dostępu przez port 80, który jest portem, na którym nasłuchuje Apache.
tymczasowo je wyłącza
W CentOS używasz tego polecenia, aby je wyłączyć.
sprawdź, czy Apache nasłuchuje
Możesz także potwierdzić, że nasłuchuje na tym porcie.
potwierdź, że zapora jest wyłączona
Zaporę ogniową można potwierdzić, że jest szeroko otwarta.
Jeśli to rozwiąże problem, możesz na stałe dodać regułę zezwalającą na ruch przez port TCP 80.
dodanie reguły dla portu TCP 80
UWAGA: Dzięki temu reguła będzie się utrzymywać między restartami.
zapora akceptuje port TCP 80
System z otwartym portem 80 wyglądałby mniej więcej tak:
Problem nr 3 - Słuchanie Apache?
W powyższym numerze widzieliśmy, że Apache nasłuchuje, ale czasami jest źle skonfigurowany, tak że nasłuchuje tylko na jednym adresie IP lub że nasłuchuje na innym interfejsie sieciowym. Polecenia
netstat
można użyć do podwójnego sprawdzenia tego, a także do przeglądania plików konfiguracyjnych Apache.To pokazuje, że Apache nasłuchuje na wszystkich interfejsach (IP 0.0.0.0).
Nie będę powtarzał odpowiedzi @ Lekensteyn , która omawia ten konkretny problem bardziej szczegółowo tutaj.
Bibliografia
źródło
it worked!
strona apache./etc/init.d/httpd status
, powinien się wyświetlać./sbin/service iptables save
.Twoja instalacja Apache jest prawdopodobnie skonfigurowana do nasłuchiwania tylko na localhost. Możesz to sprawdzić, uruchamiając gościa:
Jeśli to mówi
0.0.0.0:80
, nasłuchuje na wszystkich interfejsach. W twoim przypadku oczekiwałbym127.0.0.1:80
zamiast tego. Aby rozwiązać ten problem, edytuj konfigurację Apache (gdzieś w/etc/httpd/conf/
) i zmień:do:
Możesz także użyć
nmap
do weryfikacji dostępnych usług na swoim komputerze. Powinno to wyglądać następująco:źródło
W CentOS 7 firewalld zastąpił iptables jako domyślną zaporę ogniową.
Musiałem użyć
aby wstrzymać zaporę ogniową w celu przetestowania połączenia z hosta do maszyny Wirtualnej CentOS.
Zobacz więcej tutaj: /programming/24756240/how-can-i-use-iptables-on-centos-7
źródło