У меня есть компьютер с:
Linux superhost 3.2.0-4-amd64 #1 SMP Debian 3.2.60-1+deb7u3 x86_64 GNU/Linux
Он запускает Apache через порт 80 на всех интерфейсах и не отображается в нем netstat -planA inet
, однако неожиданно его можно найти в 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 -
Я могу достичь этого по TCP4 просто отлично, как видно выше. Однако даже эти соединения перечислены ниже tcp6
. Зачем?
netstat
? он умер - десять лет назад . Используйте iproute2 'sss
Ответы:
По умолчанию, если вы не указываете адрес для
Listen
параметра Apache , он обрабатывает адрес ipv6, используяIPv4-mapped IPv6
адреса. Вы можете посмотреть в Apache ipv6Вывод
netstat
не означает, что Apache не прослушивает IPv4-адрес. ЭтоIPv4-mapped IPv6
адрес.источник
tcp6
в выводе netstat.Причина этого заключается в том, что все адреса IPv4 также являются адресами IPv6. Небольшой диапазон адресов IPv6 был выделен для использования при однозначном сопоставлении адресов IPv4. Например, адрес IPv4
192.0.2.128
доступен через адрес IPv6::ffff:192.0.2.128
. Это было сделано для того, чтобы любые приложения, поддерживающие только IPv6, могли прислушиваться к адресам IPv4. Обратите внимание, что это не может использоваться для адреса IPv6 (не сопоставленного), чтобы общаться с адресом IPv4 без других вовлеченных вещей, поскольку IPv4 не будет знать, как обращаться с адресом IPv6 (вы можете использовать NAT или другие решения) хотя).Поскольку все адреса IPv4 представлены в IPv6, при запросе
netstat
списка приложений, использующих IPv6, вы также получите IPv4.Он может быть представлен
10.0.176.93
как::ffff:10.0.176.93
или даже::ffff:a00:b05d
, но разработчики приложения решили показать его как обычный адрес IPv4 с точечной нотацией.источник
-A inet