Команда SS в Linux с полезными примерами

Команда ss — это терминальная команда, используемая для отображения информации о сетевом сокете в Linux. SS расшифровывается как статистика сокетов. Это инструмент аналогичный netstat, который отображает немного больше информации, такой как  информация о состоянии TCP.

Инструмент ss поставляется в комплекте с пакетом iproute2. Он может отображать статистику для сокетов домена PACKET, TCP, UDP, DCCP, RAW и Unix.

В этой статье мы расскажем про команду ss в Linux и покажем полезные примеры.

1. Отображение сетевого подключения командой SS

Команда ss без каких-либо параметров отобразит все открытые сокеты (например, TCP/UNIX/UDP), которые установили соединение.

$ ss

Отображение сетевого подключения командой SS
Отображение сетевого подключения командой SS
  1. Netid: отображает типы сокетов.
  2. State: отображает состояние сокета, если он установлен (ESTAB), Не подключен (UNCONN) или прослушивается (LISTEN).
  3. Recv-Q: этот столбец отображает количество принятых пакетов в очереди.
  4. Send-Q: данная колонка отображает количество отправленных пакетов в очереди.
  5. Local address:port: показывает адрес локальной машины и порт.
  6. Peer address:port: отображает адрес удаленной машины и порт.

Вы можете получить более подробную информацию, используя команду ss в сочетании с различными опциями. Вы также можете выбрать несколько вариантов одновременно.

Синтаксис команды ss:

$ ss [Option]
$ ss [Option1] [Option2] [Option3]

2. Список прослушивающих сокетов

Для отображения списка прослушиваемых сокетов используйте опцию -l или --listen.

$ ss -l

Список прослушивающих сокетов
Список прослушивающих сокетов

3. Отображение всех сокетов

Вы можете отобразить все прослушивающие и не прослушивающие сетевые подключения, используя опцию -a или-all.

$ ss -a

Отображение всех сокетов
Отображение всех сокетов

4. Просмотр TCP-соединений командой SS

Чтобы отобразить соединение TCP-сокета, используйте опцию -tили--tcp.

$ ss -t

Просмотр TCP-соединений командой SS
Просмотр TCP-соединений командой SS

Чтобы отобразить список всех TCP-соединений, вы можете использовать параметры -a и -t одновременно. Это включает в себя состояние всех сокетов.

$ ss -at

Чтобы отобразить TCP — соединение для всех состояний, объедините параметры -l и -t.

$ ss -alt

5. Показ UDP-соединений

Чтобы показать подключение к сокету UDP, используйте опцию -u  или--udp.

$ ss -u

Показ UDP-соединений
Показ UDP-соединений

Чтобы отобразить список всех UDP подключений, используйте параметры-a и -u. Это включит в себя состояния сокета.

$ ss -au

Вы можете объединить -lи -u эта связка параметров отобразит UDP-соединение, всех состояний прослушивания сокета.

$ ss -lu

6. Отображение списка сокетов Unix

Чтобы отобразить все сокеты Unix, вы можете использовать команду ss вместе с -f unix или -x.

$ ss -f unix

Отображение списка сокетов Unix
Отображение списка сокетов Unix

7. Показ необработанных сокетов

Чтобы отобразить все необработанные сокеты, вы можете использовать опцию -w или --raw.

$ ss -w

Показ необработанных сокетов
Показ необработанных сокетов

8. Показать подключенные IP-адреса

Мы можем использовать команду ss для отображения списка соединений определенного IP-адреса назначения или источника.

Например, чтобы указать подключение IP-адреса:

$ ss dst 13.227.138.30

Показать подключенные IP-адреса
Показать подключенные IP-адреса

Например, чтобы указать подключение исходного IP-адреса:

$ ss src 192.168.18.151

указать подключение исходного IP-адреса
указать подключение исходного IP-адреса

9. Отобразить подключения к сокетам IPv4 и IPv6

Если вы хотите отобразить список подключений сокетов IPv4, используйте опции -4 и -6 для отображения списка подключений сокетов.

Для отображения списка подключений к сокету IPv4 введите:

$ ss -4

Отобразить подключения к сокетам IPv4
Отобразить подключения к сокетам IPv4

Для отображения списка подключений к сокетам IPv6 используйте команду:

$ ss -6

Отобразить подключения к сокетам IPv6
Отобразить подключения к сокетам IPv6

Чтобы посмотреть все TCP-соединения IPv4, вы можете использовать следующий пример.

$ ss -at4

Просмотр всех TCP-соединений IPv4
Просмотр всех TCP-соединений IPv4

10. Определите процессы

Вы можете найти процессы сокетов, используя опцию -p вместе с командой ss. Чтобы идентифицировать процесс, вам потребуется пользователь с sudo.

$ sudo ss -t -p

Поиск процессов сокета
Поиск процессов сокета

11. Показать соединение без разрешения имени хоста

Для разрешения числового адреса/портов используйте параметр -r (resolve). В то время как параметр -n — не разрешает имена служб.

В этом примере, вы можете увидеть разницу между этими двумя:

$ ss -tn
State Recv-Q Send-Q Local Address:Port Peer Address:Port Process
ESTAB 0 0 74.208.235.196:22 48.192.234.17:60216

$ ss -tr
State Recv-Q Send-Q Local Address:Port Peer Address:Port Process
ESTAB 0 64 li82-186.members.linode.com:ssh n47-172-231-17.sun4.vic.optusnet.com.au:60317
$

12. Фильтр по соединению

Давайте рассмотрим несколько примеров того, как применять фильтры для вывода конкретной информации.

Чтобы отфильтровать TCP-соединение с прослушиванием состояния, введите:

$ ss -t state listening

Для отображения установленных подключений к ssh— портам используйте эут команду:

$ ss -tr state established '( dport = :22 or sport = :22 )'

Вы также можете использовать традиционный способ команды grep для фильтрации. Здесь я показываю все TCP-соединения, которые прослушиваются:

$ ss -at | grep LISTEN

Параметры команды ss

Команда ss предоставляет различные опции для управления выводом, которые будут отображаться в соответствии с вашими требованиями. Вы можете использовать -h или —help вместе с командой ss, чтобы просмотреть основные параметры, доступные с помощью утилиты ss.

$ ss -h

Справка по команде SS
Справка по команде SS

Сравнение команд ss и netstat

Инструмент ss включен в пакет iproute2 и используется по умолчанию в большинстве дистрибутивов Linux. Чтобы получить netstat, вам необходимо установить net-tools, который уже устарел. Команда ss выполняется намного быстрее, так как она работает непосредственно из ядра. SS не является полной заменой netstat, часть команды netstat заменена командой ip.

Заключение

В этой статье мы рассказали о команде ss и показали некоторые полезные примеры. Вы можете ознакомиться со справочной страницей команды ss для получения дополнительной информации.

Добавить комментарий