$ netstat -nat
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN
tcp 0 0 127.0.0.1:53 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN
tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN
tcp6 0 0 :::22 :::* LISTEN
Почему существуют две записи порта 22 ( :::22
и 0.0.0.0:22
) и почему одна использует протокол как, tcp
а другая какtcp6
Это на Ubuntu 12.04.4
Ответы:
По умолчанию
sshd
используются ipv4 и ipv6. Вы можете настроить протокол, который использует sshd, с помощьюAddressFamily
директивы в/etc/ssh/sshd_config
Для ipv4 и ipv6 (по умолчанию)
Только для ipv4
Только для ipv6
После внесения изменений
sshd_config
перезапустите,sshd
чтобы изменения вступили в силу.источник
На самом деле, это немного интереснее
По сути, даже если вы полностью отключите IPv6, некоторые сокеты будут идентифицированы как «TCP6 / UDP6» из-за любопытных причин ядра.
Я заметил это после того, как запустил netstat на телефоне Android, который был подключен к сети 3G без подписи поддержки IPv6 (отключен в настройках APN и явно не поддерживается оператором)
После того, как я увидел, что TCP6-соединения WhatsApp как-то сохраняются, я начал исследовать и нашел эту ссылку: https://blog.codecentric.de/en/2014/04/note-netstat/
источник
Можно связываться только по
::
IPv4 и IPv6 и разговаривать по ним. Я удивился, почему некоторые приложения, в том числе openssh, не пользуются этим.Этот раздел об IPv6 в руководстве разработчика FreeBSD содержит несколько интересных комментариев, которые могут быть актуальны:
Мы также можем предположить, что это поведение по умолчанию было определено, когда значительное количество систем не поддерживало IPv6.
источник