GNU/Linux >> Tutoriels Linux >  >> Ubuntu

Vous ne voyez pas Apache s'exécuter dans Netstat ?

Je joue juste avec apache et je l'ai fait fonctionner, c'est-à-dire que je peux me connecter au serveur en naviguant sur http://127.0.0.1 et http://192.168.1.5 je n'utilise PAS IPv6

C'est pourtant le résultat de 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]

Je m'attendais à le voir écouter sur un TCP normal, ce qu'il fait clairement ! ?

Modifier :

$ 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     

Edit2 :
Pourquoi le vote négatif ? Qu'est-ce qui me manque, quelqu'un peut-il élaborer ?

Réponse acceptée :

TL;DR

Apache fait apparaissent dans votre netstat sortie, et il est course. C'est pourquoi votre wget l'appel fonctionne. Cependant, il est lié à votre adresse IPv6 au lieu de votre adresse IPv4. Le mappage d'adresses gère la traduction si nécessaire.

Aller chercher la documentation

Il y a évidemment un mécanisme de repli IPv6-IPv4 ici. En fait, je n'utilise pas encore IPv6 sur mon réseau local :

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

Il est important de noter que peu importe comment vous adressez votre machine, c'est toujours le même service et le même port à la fin. Le reste dépend principalement de votre navigateur et des services de résolution DNS. Cependant, pour plus d'informations sur la façon dont Apache gère cela, vous pouvez consulter leur documentation :

Un facteur de complication pour les administrateurs Apache est de savoir si un socket IPv6 peut ou non gérer à la fois les connexions IPv4 et les connexions IPv6. La gestion des connexions IPv4 avec un socket IPv6 utilise des adresses IPv6 mappées IPv4, qui sont autorisées par défaut sur la plupart des plates-formes, mais sont interdites par défaut sur FreeBSD, NetBSD et OpenBSD, afin de correspondre à la politique à l'échelle du système sur ces plates-formes. Sur les systèmes où il est interdit par défaut, un paramètre de configuration spécial peut modifier ce comportement pour Apache.

Fondamentalement, il s'agit de gérer à la fois les sockets IPv4 et IPv6 de manière à éviter la plupart des problèmes liés à la compatibilité multiplateforme et à la gestion des sockets. Comme vous pouvez le lire, sur les plates-formes Linux comme Ubuntu, ce problème est résolu à l'aide d'adresses IPv6 mappées IPv4. La documentation indique également :

Si vous souhaitez qu'Apache gère uniquement les connexions IPv4, indépendamment de ce que votre plate-forme et APR prendront en charge, spécifiez une adresse IPv4 sur toutes les directives d'écoute.

Ce qui donnerait quelque chose comme ça dans le ports.conf fichier :

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

Résultant en l'un des netstat suivants sorties…

$ 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 auditeur magnifique, mais pas prêt pour IPv6. Le paramètre ci-dessus est généralement défini dans /etc/apache2/ports.conf (ou directement dans apache2.conf pour les anciennes versions). La valeur par défaut est Listen 80 , qui effectue une automatique contraignant, c'est-à-dire conforme aux spécifications IPv6 données dans la documentation.

En relation:Implications de l'exécution de l'application KDE dans Gnome ?
Ubuntu
  1. Apache/Mysql ne fonctionne pas. Mauvais?

  2. Installer Apache 2.2.22 sur Ubuntu 14.04 ?

  3. Exécuter Apache en tant qu'utilisateur différent

  4. Tuer le processus en cours d'exécution sur le port 80

  5. alternative à netstat -s

Comment installer Apache sur CentOS 8

Apache vs Nginx - Comparaison détaillée

Installer Apache Solr 8.8 sur Ubuntu 20.04

Installer Apache Solr sur Ubuntu 20.04

Installer Apache Spark sur Ubuntu 20.04 ou 18.04

Les lanceurs de panneaux 8.04 ne fonctionnent-ils pas sur 10.04 ?