Non vedere apache in esecuzione in netstat


10

Sto solo giocando con Apache e l'ho fatto funzionare, ovvero posso collegarmi al server navigando http://127.0.0.1e http://192.168.1.5NON sto eseguendo IPv6

Eppure questo è il risultato di 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]

Mi aspettavo di vederlo in ascolto su un normale TCP che chiaramente fa !?

Modificare:

$ 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     

Modifica2: Perché il voto negativo ? Cosa mi manca qualcuno può elaborare?


prova netstat -a | grep ASCOLTA e pubblica l'output
Lety,

Ha

Provato netstat -p?
Muru,

le ultime due righe sono riferite ad apache che è in ascolto sulla porta 80 e 443. prova il suggerimento di muru per visualizzare process / pid.
Lety,

@Letizia giusto ma dice tcp6 nella prima colonna e :: per ip che è IPv6, ma mi collego ad esso su IPv4 ???
meccooll,

Risposte:


17

TL; DR

Apache non appare nella vostra netstatuscita, ed è in esecuzione. Ecco perché la tua wgetchiamata funziona. Tuttavia, è associato al tuo indirizzo IPv6 anziché a quello IPv4. La mappatura degli indirizzi gestisce la traduzione quando necessario.

Andare per i documenti

C'è ovviamente qualche meccanismo di fallback IPv6-IPv4 qui. È un dato di fatto, non uso ancora IPv6 sulla mia rete locale:

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

È importante notare che, indipendentemente dal modo in cui indirizzi la tua macchina, alla fine è sempre lo stesso servizio e la stessa porta. Il resto dipende principalmente dal browser e dai servizi di risoluzione DNS. Tuttavia, per ulteriori informazioni su come Apache gestisce questo, potresti voler dare un'occhiata alla loro documentazione :

Un fattore complicante per gli amministratori di Apache è se un socket IPv6 è in grado di gestire sia connessioni IPv4 che connessioni IPv6. La gestione delle connessioni IPv4 con un socket IPv6 utilizza indirizzi IPv6 mappati IPv4, consentiti per impostazione predefinita sulla maggior parte delle piattaforme, ma non consentiti per impostazione predefinita su FreeBSD, NetBSD e OpenBSD, al fine di abbinare il criterio di sistema su tali piattaforme. Sui sistemi in cui non è consentito per impostazione predefinita, un parametro di configurazione speciale può modificare questo comportamento per Apache.

Fondamentalmente, si tratta di gestire sia i socket IPv4 che IPv6 in modo da evitare la maggior parte dei problemi relativi alla compatibilità multipiattaforma e alla gestione dei socket. Come puoi leggere, su piattaforme Linux come Ubuntu, questo problema viene risolto utilizzando indirizzi IPv6 mappati su IPv4 . La documentazione afferma inoltre:

Se vuoi che Apache gestisca solo le connessioni IPv4, indipendentemente da ciò che la tua piattaforma e APR supporteranno, specifica un indirizzo IPv4 su tutte le direttive di ascolto.

Che darebbe qualcosa del genere nel ports.conffile:

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

Risultato in una delle seguenti netstatuscite ...

$ 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 

Un ascoltatore bellissimo, ma non ancora pronto per IPv6. L'impostazione sopra è di solito impostata in /etc/apache2/ports.conf(o direttamente in apache2.confper le versioni precedenti). Il valore predefinito è Listen 80, che esegue un'associazione automatica , ovvero conforme alle specifiche IPv6 riportate nella documentazione.


1
Huh non sapeva della mappatura degli indirizzi, quindi devo fare attenzione alle porte aperte sia su IPv6 che su IPv4.
meccooll,

si è unito a "askubuntu" per votare questa domanda e rispondere !!!
Prem
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.