J'ai un ordinateur avec:
Linux superhost 3.2.0-4-amd64 #1 SMP Debian 3.2.60-1+deb7u3 x86_64 GNU/Linux
Il exécute Apache sur le port 80 sur toutes les interfaces, et il n'apparaît pas dans netstat -planA inet
, mais il peut être trouvé de manière inattendue dans netstat -planA inet6
:
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp6 0 0 :::5672 :::* LISTEN 2402/beam.smp
tcp6 0 0 :::111 :::* LISTEN 1825/rpcbind
tcp6 0 0 :::9200 :::* LISTEN 2235/java
tcp6 0 0 :::80 :::* LISTEN 2533/apache2
tcp6 0 0 :::34611 :::* LISTEN 1856/rpc.statd
tcp6 0 0 :::9300 :::* LISTEN 2235/java
...
tcp6 0 0 10.0.176.93:80 10.0.76.98:53704 TIME_WAIT -
tcp6 0 0 10.0.176.93:80 10.0.76.98:53700 TIME_WAIT -
Je peux l'atteindre par TCP4 très bien, comme vu ci-dessus. Cependant, même ces connexions sont répertoriées sous tcp6
. Pourquoi?
netstat
? il est mort - il y a dix ans . Utilisez iproute2 dess
Réponses:
Par défaut, si vous ne spécifiez pas d'adresse pour le
Listen
paramètre Apache , il gère l'adresse ipv6 à l'aide d'IPv4-mapped IPv6
adresses. Vous pouvez jeter un œil dans Apache ipv6La sortie de
netstat
ne signifie pas qu'Apache n'écoute pas sur l'adresse IPv4. C'est uneIPv4-mapped IPv6
adresse.la source
tcp6
la sortie de netstat.La raison en est que toutes les adresses IPv4 sont également des adresses IPv6. Une petite plage d'adresses IPv6 a été mise de côté pour être utilisée pour le mappage un à un des adresses IPv4. Par exemple, l'adresse IPv4
192.0.2.128
est accessible via l'adresse IPv6::ffff:192.0.2.128
. Cela a été fait pour que toutes les applications qui prennent en charge IPv6 uniquement puissent toujours écouter sur les adresses IPv4. Notez que cela ne peut pas être utilisé pour une adresse IPv6 (non mappée) pour parler à une adresse IPv4 sans autre chose impliquée, car l'IPv4 ne saura pas comment gérer l'adresse IPv6 (vous pouvez utiliser NAT ou d'autres solutions bien que).Étant donné que toutes les adresses IPv4 sont représentées dans IPv6, lorsque vous demandez
netstat
à répertorier les applications utilisant IPv6, vous allez également obtenir IPv4.Il pourrait représenter
10.0.176.93
comme::ffff:10.0.176.93
, ou même::ffff:a00:b05d
, mais les développeurs d'applications ont choisi de l'afficher comme une adresse IPv4 régulière en notation pointillée.la source
-A inet