GNU/Linux >> Linux Esercitazione >  >> Ubuntu

Non vedi Apache in esecuzione in Netstat?

Sto solo giocando con Apache e l'ho fatto funzionare, ovvero posso connettermi al server navigando su http://127.0.0.1 e http://192.168.1.5 NON 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, cosa che chiaramente fa!?

Modifica:

$ 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 sto perdendo qualcuno può elaborare?

Risposta accettata:

TL;DR

Apache lo fa appaiono nel tuo netstat output, e è in esecuzione. Ecco perché il tuo wget chiamata funziona. Tuttavia, è legato al tuo indirizzo IPv6 anziché a quello IPv4. La mappatura degli indirizzi gestisce la traduzione quando necessario.

Cercando i documenti

C'è ovviamente qualche meccanismo di fallback IPv6-IPv4 qui. In effetti, non utilizzo ancora IPv6 sulla mia rete locale :

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

È importante notare che, indipendentemente da come si indirizza la macchina, alla fine è sempre lo stesso servizio e la stessa porta. Il resto dipende principalmente dal tuo 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 di complicazione per gli amministratori di Apache è se un socket IPv6 può gestire sia le connessioni IPv4 che le connessioni IPv6. La gestione delle connessioni IPv4 con un socket IPv6 utilizza indirizzi IPv6 mappati IPv4, che sono consentiti per impostazione predefinita sulla maggior parte delle piattaforme, ma non sono consentiti per impostazione predefinita su FreeBSD, NetBSD e OpenBSD, al fine di soddisfare la politica a livello di sistema su quelle piattaforme. Sui sistemi in cui non è consentito per impostazione predefinita, uno speciale parametro configure può modificare questo comportamento per Apache.

Fondamentalmente, si tratta di gestire entrambi i socket IPv4 e 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 IPv4. La documentazione afferma anche:

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 Listen.

Il che darebbe qualcosa del genere in ports.conf file :

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

Risultato in uno dei seguenti netstat uscite...

$ 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 bello, ma non pronto per IPv6. L'impostazione sopra è solitamente impostata in /etc/apache2/ports.conf (o direttamente in apache2.conf per le versioni precedenti). Il valore predefinito è Listen 80 , che esegue un automatico vincolante, ovvero conforme alle specifiche IPv6 riportate nella documentazione.

Correlati:Implicazioni dell'esecuzione dell'applicazione KDE in Gnome?
Ubuntu
  1. Come riavviare Apache?

  2. Apache/Mysql non è in esecuzione. Sbagliato?

  3. Come posso vedere in quale core della CPU è in esecuzione un thread?

  4. Esecuzione di Apache come utente diverso

  5. Uccidi il processo in esecuzione sulla porta 80

Come installare Apache su CentOS 8

Apache vs Nginx - Confronto dettagliato

Installa Apache Solr 8.8 su Ubuntu 20.04

Installa Apache Solr su Ubuntu 20.04

Installazione di Apache Spark su Ubuntu 20.04 o 18.04

I lanciatori di pannelli 8.04 non funzionano su 10.04?