Mam komputer z:
Linux superhost 3.2.0-4-amd64 #1 SMP Debian 3.2.60-1+deb7u3 x86_64 GNU/Linux
Działa Apache na porcie 80 na wszystkich interfejsach i nie pojawia się w nim netstat -planA inet
, jednak nieoczekiwanie można go znaleźć w 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 -
Mogę do niego dotrzeć za pomocą TCP4, jak widać powyżej. Jednak nawet te połączenia są wymienione w sekcji tcp6
. Czemu?
netstat
? umarł - dekadę temu . Użyj iproute2 'sss
Odpowiedzi:
Domyślnie, jeśli nie podasz adresu w
Listen
parametrze Apache , obsługuje on adres IPv6 za pomocąIPv4-mapped IPv6
adresów. Możesz zajrzeć do Apache ipv6Wyjście
netstat
nie oznacza, że Apache nie nasłuchuje na adresie IPv4. To jestIPv4-mapped IPv6
adres.źródło
tcp6
w wynikach netstat.Powodem tego jest to, że wszystkie adresy IPv4 są również adresami IPv6. Odłożono niewielki zakres adresów IPv6 do wykorzystania w mapowaniu adresów IPv4 jeden na jednego. Na przykład adres IPv4
192.0.2.128
jest dostępny za pośrednictwem adresu IPv6::ffff:192.0.2.128
. Dokonano tego, aby wszystkie aplikacje obsługujące tylko IPv6 mogły nadal nasłuchiwać na adresach IPv4. Zauważ, że nie można tego użyć w przypadku adresu IPv6 (bez mapowania) do komunikowania się z adresem IPv4 bez innych rzeczy, ponieważ IPv4 nie będzie wiedział, jak obsługiwać adres IPv6 (możesz użyć NAT lub innych rozwiązań chociaż).Ponieważ wszystkie adresy IPv4 są reprezentowane w IPv6, gdy poprosisz
netstat
o listę aplikacji korzystających z IPv6, otrzymasz również IPv4.Może reprezentować
10.0.176.93
jako::ffff:10.0.176.93
, lub nawet::ffff:a00:b05d
, ale programiści zdecydowali się pokazać go jako zwykłego adresu IPv4 przerywana-notacji.źródło
-A inet