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 régulier, 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?
Apache n'apparaît dans votre netstat
output et il est en cours d'exécution . C'est pourquoi votre appel wget
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.
Il y a évidemment un mécanisme de secours 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 la façon dont vous adressez votre ordinateur, il reste le même service et le même port. Le reste appartient principalement à votre navigateur et aux services de résolution DNS. Cependant, pour plus d'informations sur la façon dont Apache gère cela, vous pouvez jeter un œil à leur documentation :
Un facteur de complication pour les administrateurs Apache est de savoir si un socket IPv6 peut gérer à la fois les connexions IPv4 et IPv6. Le traitement des connexions IPv4 avec un socket IPv6 utilise des adresses IPv6 mappées IPv4, autorisées par défaut sur la plupart des plates-formes, mais interdites par défaut sous FreeBSD, NetBSD et OpenBSD, afin de correspondre à la stratégie système de ces plates-formes. Sur les systèmes où il est interdit par défaut, un paramètre spécial de configuration peut modifier ce comportement pour Apache.
Il s’agit essentiellement de gérer à la fois les sockets IPv4 et IPv6 de manière à éviter la plupart des problèmes liés à la compatibilité entre plates-formes et à la gestion des sockets. Comme vous pouvez le lire, sur les plates-formes Linux comme Ubuntu, ce problème est résolu en utilisant adresses IPv6 mappées IPv4 . La documentation indique également:
Si vous voulez qu'Apache gère uniquement les connexions IPv4, indépendamment de ce que votre plate-forme et votre APR prendront en charge, spécifiez une adresse IPv4 dans toutes les directives Listen.
Ce qui donnerait quelque chose comme ceci dans le fichier ports.conf
:
Listen 0.0.0.0:80 # Or...
Listen 127.0.0.1:80 # Or...
Listen 192.0.2.1:80
Résultat dans l'une des sorties netstat
suivantes ...
$ 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 encore 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 versions antérieures). La valeur par défaut est Listen 80
, qui effectue une liaison automatic, c’est-à-dire conforme aux spécifications IPv6 indiquées dans la documentation.