ss показывает тысячи соединений, а netstat - другую картинуНа одном сервере можно запустить:
ss -ant
и получить тысячи TCP-соединений, а затем:
netstat -antи увидеть совсем другое количество.
Это не обязательно означает, что один из инструментов врёт.
ss работает через современный интерфейс ядра Linux - NETLINK_INET_DIAG. Ядро отдаёт ему информацию о сокетах напрямую, поэтому ss может получать состояние соединений без перебора /proc и без старого механизма netstat.
netstat из пакета net-tools - устаревший инструмент. Его возможности и способ получения данных отличаются, а часть информации может отображаться иначе.Особенно заметна разница на серверах с большим количеством ephemeral connections и быстро меняющимся состоянием TCP.
Для диагностики лучше смотреть не просто количество строк:
ss -s
а разбивку состояний:
ss -ant | awk 'NR>1 {print $1}' | sort | uniq -cНапример:
ESTAB 18420
TIME-WAIT 7312
SYN-RECV 428
И отдельно проверить конкретный listener:
ss -lntpВажный момент:
TIME-WAIT, SYN-RECV, ESTAB и listening sockets - это разные состояния kernel socket state. Поэтому простое сравнение «сколько строк показывает утилита» может давать совершенно разные выводы.ss сегодня является основным инструментом для анализа TCP/UDP-сокетов в Linux, а netstat в новых системах обычно оставляют только ради совместимости со старыми привычками и скриптами.N.A.

