Подтвердить что ты не робот

Разница между netstat и ss в linux?

В linux команда netstat сообщает нам информацию о активных сокетах в системе.

Я понимаю, что netstat использует /proc/net/tcp для получения информации о сетевой системе.

Так как netstat man-страница говорит, что netstat устарел, поэтому мы должны использовать 'ss'.

NOTE
   This program is obsolete.  Replacement for netstat is ss.   Replacement
   for  netstat -r is ip route.  Replacement for netstat -i is ip -s link.
   Replacement for netstat -g is ip maddr.

Я обнаружил, что ss выполняет аналогичную функциональность, но не использует /proc/net/tcp для получения информации о сетевой сети.

Теперь мне интересно, как ss получает информацию о сокетах сетевой сети?

4b9b3361

Ответ 1

Он получает их из пространства ядра напрямую, используя Netlink, который использует классический сокеты API.

Ответ 2

ss входит в пакет iproute2 и является заменой netstat. ss используется для вывода статистики сокетов. Он показывает информацию, аналогичную netstat. Он может отображать больше информации о TCP и состоянии, чем другие инструменты. Это новый, невероятно полезный и более быстрый (по сравнению с netstat) инструмент для отслеживания TCP-соединений и сокетов.

Ответ 4

ss - это утилита, используемая для исследования сокетов в системах Linux и Unix. Он показывает информацию, аналогичную netstat и может выводить статистику сокетов.

Но netstat нельзя заменить полным на ss. Некоторые команды netstat лучше соответствуют команде ip.

$ netstat -r   replaced by  $ ip route
$ netstat -i   replaced by  $ ip -s lin
$ netstat -g   replaced by  $ ip maddr.

Я бы сказал, что "более старую" команду netstat можно заменить на команды ss и ip.