Что такое команда SS в Linux?

What Is Ss Command Linux



Возможность просматривать и понимать подключения к сетевым сокетам в том виде, в каком они происходят в вашей системе Linux, может быть полезной при устранении неполадок и получении статуса вашей системы.

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







Приступим.



Что такое сс?

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



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





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

Базовое использование команд

Использовать команду ss так же просто, как ввести две буквы в терминал и нажать Enter. Хотя он поддерживает множество аргументов, вызов команды ss без параметров отображает информацию обо всех соединениях, независимо от их состояния.



При использовании без параметров команда ss выводит много информации, к которой вы можете обратиться позже. Чтобы сохранить вывод в файл, вы можете использовать оператор перенаправления вывода, как показано в команде:

sudo ss> output.txt

ПРИМЕЧАНИЕ : Стоит отметить, что выполнение команды ss с привилегиями sudo и без них может давать разные результаты - это означает, что команда ss выводит информацию на основе пользовательского контекста.

Основные параметры команды ss

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

ss --help

Команда ss поддерживает следующие основные параметры:

  1. -V или –версия: Позволяет просмотреть установленную версию утилиты ss.
  2. -H или –no-header: Этот флаг подавляет строку заголовка. Строка заголовка по умолчанию для команды ss содержит следующие значения: Netid, State, Recv-Q, Send-Q, Local Address: Port и Peer Address: Port. Подавление заголовка полезно, когда вам нужно обработать вывод ss с помощью других инструментов.
  3. -t или –tcp: Указывает команде ss отображать только TCP-соединения.
  4. -a или –all: Отображает как прослушивающие, так и не прослушивающие соединения.
  5. -e или –extended: Отображает дополнительную информацию о сетевом сокете.
  6. -u или –udp: Указывает команде ss отображать только UDP-соединения.
  7. -s или –сводка: Отображает сводную статистику подключений.
  8. -l или –listening: Показывает прослушивающие сокеты, которые не включены по умолчанию.
  9. -p или –process: Показывает процесс, использующий сокет.
  10. -4 или –ipv4: Указывает команде ss показывать только соединения IPv4.
  11. -6 или –ipv6: Показывает только соединения IPv6.
  12. -m или –memory: Отображает использование памяти сокета.

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

Отображение портов для прослушивания и без прослушивания

Чтобы показать информацию как о прослушивающих, так и не прослушивающих портах, вы можете использовать флаг -a, как показано в следующей команде:

ss -a

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

Например:

ss -a | grep ssh

Показать TCP-соединения

Используя флаг -t с командой ss, вы можете фильтровать, чтобы отображать только TCP-соединения, как показано в команде ниже:

ss -t

Чтобы получить дополнительную информацию, вы можете указать показывать прослушивающие TCP-соединения с помощью флагов -l и -t, как показано в следующей команде:

sudo ss -tl

Показать UDP-соединения

Чтобы отобразить все UDP-соединения, используйте флаг -l, как показано в приведенной ниже команде:

sudo ss -au

Понимание строки заголовка

Как видно из различных выходных данных, представленных в приведенных выше командах, ss показывает много информации. Он включает формат заголовка, если явно не указан с помощью флага -H, который удаляет строку заголовка.

Понимание строки заголовка может быть полезным, чтобы показать, какая информация находится в определенном разделе. Он включает следующие строки:

Состояние, Recv-Q, Send-Q, локальный адрес: порт, адрес узла: порт
  1. Состояние: Строка State заголовка указывает состояние соединения, такое как LISTEN, ESTABLISHED, CLOSED, TIME-WAIT и т. Д. Эта строка заголовка полезна в соединениях TCP, поскольку UDP не отслеживает состояние пакетов, что делает его протокол без сохранения состояния.
  2. Recv-Q: Это показывает общее количество байтов, не скопированных программой, подключенной к определенному сокету.
  3. Отправить-Q: Счетчик байтов, которые не были подтверждены удаленным хостом.
  4. Местный адрес: Порт: Это показывает локальный сокет и номер порта, привязанного к соединению.
  5. Одноранговый адрес: Порт: Удаленный сокет и номер порта привязаны к соединению.

Показать процессы

Чтобы получить процесс, использующий конкретный сокет, вы можете использовать флаг -p, как показано в приведенной ниже команде:

sudo ss - tp

Как показано в выходных данных выше, вы можете видеть TCP-соединения процесса, использующего сокет, включая его PID.

Фильтрация по состоянию соединения (TCP)

Как вы знаете, TCP поддерживает различные состояния, которые мы не будем обсуждать в этом руководстве. Однако вы можете отфильтровать вывод ss, чтобы получить только соединения с поддерживаемыми состояниями TCP.

sudo ss -t состояние прослушивания

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

Заключение

В этом руководстве мы обсудили, как использовать и понимать командную утилиту ss. Это мощный инструмент, когда вам нужно выйти за рамки процессов листинга. Чтобы понять, как это работает, вы можете узнать больше из официального руководства.

Рассмотрим следующий ресурс:

https://en.wikipedia.org/wiki/Iproute2

http://www.policyrouting.org/iproute2.doc.html