Nie widzę apache działającego w netstat

10

Ja tylko gra z apache i mam go do pracy, to mogę połączyć się z serwerem poprzez przejście do http://127.0.0.1i http://192.168.1.5Nie uciekam IPv6

Jest to jednak wynik netstat

$ sudo service apache2 status
 * apache2 is running
$ netstat -an | grep :80
tcp6       0      0 :::80                   :::*                    LISTEN

$ wget 127.0.0.1
--2014-06-26 01:32:15--  http://127.0.0.1/
Connecting to 127.0.0.1:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 11510 (11K) [text/html]
Saving to: ‘index.html’

100%[=====================================================================================================>] 11,510      --.-K/s   in 0s      

2014-06-26 01:32:15 (161 MB/s) - ‘index.html’ saved [11510/11510]

Spodziewałem się, że zobaczę, jak słucha na zwykłym TCP, co wyraźnie robi !?

Edytować:

$ netstat -a | grep LISTEN
tcp        0      0 localhost:ipp           *:*                     LISTEN     
tcp        0      0 localhost:mysql         *:*                     LISTEN     
tcp6       0      0 ip6-localhost:ipp       [::]:*                  LISTEN     
tcp6       0      0 [::]:https              [::]:*                  LISTEN     
tcp6       0      0 [::]:http               [::]:*                  LISTEN     

Edycja2: Dlaczego głosowanie w dół? Czego brakuje mi ktoś może opracować?

meccooll
źródło
spróbuj netstat -a | grep LISTEN i wyjście
Lety
Opublikowano wyniki
meccooll,
Próbowałem netstat -p?
muru
dwie ostatnie linie odnoszą się do apache, który nasłuchuje na portach 80 i 443. Wypróbuj sugestię Muru, aby wyświetlić proces / pid.
Lety
@Letizia racja, ale w pierwszej kolumnie jest napisane tcp6 i :: dla ip, który jest IPv6, ale łączę się z nim na IPv4 ???
meccooll

Odpowiedzi:

17

TL; DR

Apache ma pojawić się w twojej netstatmocy, i to jest uruchomiony. Właśnie dlatego twoje wgetpołączenie działa. Jest on jednak powiązany z Twoim adresem IPv6 zamiast adresu IPv4. W razie potrzeby mapowanie adresów obsługuje tłumaczenie.

Idę po dokumenty

Oczywiście istnieje tutaj mechanizm awaryjny IPv6-IPv4. W rzeczywistości nie używam IPv6 w mojej sieci lokalnej, ale:

$ netstat -tunla | grep LISTEN | grep 80
tcp6       0      0 :::80                   :::*                    LISTEN

Ważne jest, aby pamiętać, że bez względu na to, w jaki sposób adresujesz swój komputer, w końcu jest to ta sama usługa i port. Reszta zależy głównie od przeglądarki i usług rozpoznawania nazw DNS. Jednak, aby uzyskać więcej informacji o tym, jak Apache sobie z tym radzi, możesz zajrzeć do ich dokumentacji :

Jednym z komplikujących czynników dla administratorów Apache jest to, czy gniazdo IPv6 może obsługiwać zarówno połączenia IPv4, jak i połączenia IPv6. Obsługa połączeń IPv4 z gniazdem IPv6 korzysta z adresów IPv6 odwzorowanych na IPv4, które są domyślnie dozwolone na większości platform, ale domyślnie są zabronione w FreeBSD, NetBSD i OpenBSD, w celu dopasowania zasad ogólnosystemowych na tych platformach. W systemach, w których domyślnie jest to zabronione, specjalny parametr konfiguracyjny może zmienić to zachowanie dla Apache.

Zasadniczo chodzi o obsługę zarówno gniazd IPv4, jak i IPv6 w taki sposób, aby uniknąć większości problemów związanych z kompatybilnością między platformami i obsługą gniazd. Jak można przeczytać, na platformach Linux, takich jak Ubuntu, ten problem rozwiązuje się za pomocą adresów IPv6 odwzorowanych na IPv4 . Dokumentacja stwierdza również:

Jeśli chcesz, aby Apache obsługiwał tylko połączenia IPv4, niezależnie od tego, co będzie obsługiwana twoja platforma i APR, podaj adres IPv4 we wszystkich dyrektywach Listen.

Co dałoby coś takiego w ports.confpliku:

Listen 0.0.0.0:80 # Or...
Listen 127.0.0.1:80 # Or...
Listen 192.0.2.1:80

Wynikające z jednego z następujących netstatwyników ...

$ netstat -tunla | grep LISTEN | grep 80
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN 
$ netstat -tunla | grep LISTEN | grep 80
tcp        0      127.0.0.1:80              127.0.0.1:80            LISTEN
$ netstat -tunla | grep LISTEN | grep 80
tcp        0      192.0.2.1:80              192.0.2.1:80            LISTEN 

Piękny, ale nie gotowy do IPv6 słuchacz. Powyższe ustawienie jest zwykle ustawione w /etc/apache2/ports.conf(lub bezpośrednio w apache2.confstarszych wersjach). Wartość domyślna to Listen 80, która wykonuje automatyczne wiązanie, tj. Zgodne ze specyfikacjami IPv6 podanymi w dokumentacji.

John WH Smith
źródło
1
Huh nie wiedział o mapowaniu adresów, więc muszę uważać na otwarte porty zarówno na IPv6, jak i IPv4.
meccooll,
dołączył do „askubuntu”, aby głosować na to pytanie i odpowiedzieć !!!
Prem