Tengo una computadora con:
Linux superhost 3.2.0-4-amd64 #1 SMP Debian 3.2.60-1+deb7u3 x86_64 GNU/Linux
Ejecuta Apache en el puerto 80 en todas las interfaces, y no aparece en netstat -planA inet
, sin embargo, inesperadamente se puede encontrar en 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 -
Puedo alcanzarlo por TCP4 muy bien, como se ve arriba. Sin embargo, incluso estas conexiones se enumeran a continuación tcp6
. ¿Por qué?
netstat
? murió hace una década . Use iproute2 'sss
Respuestas:
De manera predeterminada, si no especifica la dirección del
Listen
parámetro Apache , maneja la dirección ipv6 usandoIPv4-mapped IPv6
direcciones. Puedes echar un vistazo en Apache ipv6La salida de
netstat
no significa que Apache no esté escuchando en la dirección IPv4. Es unaIPv4-mapped IPv6
direccion.fuente
tcp6
la salida de netstat.La razón de esto es porque todas las direcciones IPv4 también son direcciones IPv6. Se apartó un pequeño rango de direcciones IPv6 para ser utilizado para la asignación individual de direcciones IPv4. Por ejemplo,
192.0.2.128
se puede acceder a la dirección IPv4 a través de la dirección IPv6::ffff:192.0.2.128
. Esto se hizo para que todas las aplicaciones que solo admitan IPv6 puedan escuchar en direcciones IPv4. Tenga en cuenta que esto no se puede usar para una dirección IPv6 (no asignada) para hablar con una dirección IPv4 sin otras cosas involucradas, ya que IPv4 no sabrá cómo manejar la dirección IPv6 (puede usar NAT u otras soluciones aunque).Dado que todas las direcciones IPv4 están representadas en IPv6, al solicitar
netstat
una lista de aplicaciones que utilizan IPv6, también obtendrá IPv4.Podría representarse
10.0.176.93
como::ffff:10.0.176.93
, o incluso::ffff:a00:b05d
, pero los desarrolladores de la aplicación optaron por mostrarlo como una dirección IPv4 de notación punteada regular.fuente
-A inet