Eu tenho um computador com:
Linux superhost 3.2.0-4-amd64 #1 SMP Debian 3.2.60-1+deb7u3 x86_64 GNU/Linux
Ele executa o Apache na porta 80 em todas as interfaces e não aparece netstat -planA inet
, no entanto, pode ser encontrado inesperadamente em 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 -
Eu posso alcançá-lo pelo TCP4 muito bem, como visto acima. No entanto, mesmo essas conexões estão listadas em tcp6
. Por quê?
netstat
? morreu - uma década atrás . Use iproute2 'sss
Respostas:
Por padrão, se você não especificar o endereço para o
Listen
parâmetro Apache , ele manipulará o endereço ipv6 usandoIPv4-mapped IPv6
endereços. Você pode dar uma olhada no Apache ipv6A saída de
netstat
não significa que o Apache não está escutando no endereço IPv4. É umIPv4-mapped IPv6
endereço.fonte
tcp6
saída do netstat.A razão para isso é porque todos os endereços IPv4 também são endereços IPv6. Um pequeno intervalo de endereços IPv6 foi reservado para ser usado no mapeamento individual dos endereços IPv4. Por exemplo, o endereço IPv4 pode
192.0.2.128
ser acessado através do endereço IPv6::ffff:192.0.2.128
. Isso foi feito para que todos os aplicativos compatíveis apenas com IPv6 ainda pudessem ouvir os endereços IPv4. Observe que isso não pode ser usado para um endereço IPv6 (não mapeado) para falar com um endereço IPv4 sem outras coisas envolvidas, pois o IPv4 não saberá como lidar com o endereço IPv6 (você pode usar NAT ou outras soluções Apesar).Como todos os endereços IPv4 estão representados no IPv6, ao solicitar
netstat
a lista de aplicativos usando o IPv6, você também receberá o IPv4.Pode representar
10.0.176.93
como::ffff:10.0.176.93
, ou até mesmo::ffff:a00:b05d
, mas os desenvolvedores de aplicativos optaram por mostrá-lo como um endereço IPv4 de notação pontilhada regular.fonte
-A inet