ss - утилита для отображения информации о сетевых сокетах
ss
(сокращение от "socket statistics") - это консольная утилита командной строки в Linux и других Unix-подобных операционных системах, которая используется для отображения информации о сетевых сокетах, подключениях TCP/UDP, маршрутизации и других сетевых статистических данных. Она предоставляет более богатый и гибкий функционал по сравнению с более старой утилитой netstat
. Информация о сокете выводится в виде таблицы. Каждый столбец отображает определенную информацию, относящуюся к сокету.
Основные возможности ss
:
1. Отображение сокетов по типам:
- ss -t
- отображает TCP-сокеты
- ss -u
- отображает UDP-сокеты
- ss -x
- отображает сокеты Unix Domain
- ss -r
- отображает PACKET-сокеты
2. Фильтрация сокетов:
- ss -a
- отображает все сокеты (включая сокеты в состоянии LISTEN)
- ss -l
- отображает только сокеты в состоянии LISTEN
- ss -o
- отображает информацию о связанных с сокетами таймерах
3. Форматирование вывода:
- ss -n
- отображает адреса в числовом формате (без попыток разрешения имен)
- ss -p
- отображает процессы, связанные с каждым сокетом
- ss -e
- отображает дополнительную информацию о сокетах
4. Управление вложенными фильтрами:
- ss state FILTER-NAME-HERE
- фильтрует сокеты по состоянию (например, ss state established
)
- ss dport = :PORT
- фильтрует сокеты по номеру порта назначения
5. Просмотр статистики:
- ss -s
- отображает статистику использования сокетов (например, количество открытых сокетов)
Некоторые примеры использования ss
:
- ss -t -a
- отобразить все TCP-сокеты
- ss -u -l
- отобразить UDP-сокеты в состоянии LISTEN
- ss -x src /tmp/.X11-unix/*
- отобразить Unix Domain сокеты, связанные с X11
- ss -o state established '( dport = :ssh or sport = :ssh )'
- отобразить установленные SSH-соединения с таймерами
Утилита ss
обладает гибкостью и мощью, позволяя администраторам и разработчикам получать подробную информацию о сетевых сокетах системы и выполнять их фильтрацию по различным критериям. Она является предпочтительным инструментом для управления сокетами в современных Unix-подобных операционных системах.
Описание выводимой информации в столбцах:
- Netid — отображает тип сокета;
- State — отображает состояние сокета. Может принимать следующие значения: сокет установлен — ESTAB, сокет не подключен — UNCONN, сокет прослушивается — LISTEN.
- Recv-Q — отображает количество принятых пакетов в очереди;
- Send-Q — отображает количество отправленных пакетов в очереди;
- Local address:port — показывает адрес локальной машины и порт;
- Peer address:port — отображает адрес удаленной машины и порт.
Синтаксис утилиты ss выглядит следующим образом:
ss <опции>
Утилита ss может принимать несколько опций:
ss <опция_1> <опция_2> <опция_3> …
Основные опции утилиты ss:
- -V, --version — показать версию утилиты;
- -n, --numeric — не определять имена служб;
- -r, --resolve — определять сетевые имена адресов с помощью DNS;
- -a, --all — отобразить все сокеты (открытые соединения);
- -l, --listening — показать только прослушиваемые сокеты;
- -o, --options — показать информацию таймера;
- -e, --extended — выводить расширенную информацию о сокете;
- -p, --processes — показать процессы, использующие сокет;
- -i, --info — посмотреть внутреннюю информацию TCP;
- -s, --summary — статистика использования сокета;
- -D, --diag=<файл> — экспортировать текущее состояние TCP-сокетов в файл;
- -F, --filter=<файл> — работать с информацией, взятой из файла.
Можно выводить информацию о сокете, который использует только необходимый протокол, используя следующие опции:
- -4, --ipv4 — только сокеты протокола IPv4;
- -6, --ipv6 — только сокеты протокола IPv6;
- -0, --packet — только PACKET-сокеты;
- -t, --tcp — TCP-сокеты;
- -u, --udp — UDP-сокеты;
- -x, --unix — UNIX-сокеты.
Для отображения всех TCP-соединений выполните команду:
ss -ta
Для отображения всех UDP-соединений выполните команду:
ss -ua
Для вывода информации о подключенных TCP- и UDP-сокетах, а также информации о процессах, которые используют сокеты — имя процесса и его PID, выполните:
ss -tupn
Для отображения открытых TCP- и UDP-сокетов, которые ожидают соединение, выполните команду, добавив опцию -l:
ss -tupnl
Вывод информации по IP-адресу
Утилита поддерживает фильтрацию информации об установленных подключениях по адресу назначения и по адресу получения.
Для фильтрации информации по адресу назначения выполните:
ss dst xx.xx.xx.xx
Для фильтрации информации по адресу получения выполните:
ss src xx.xx.xx.xx
где xx.xx.xx.xx — IP-адрес, по которому необходимо отфильтровать информацию.
Вывод информации по состоянию сокета
Можно отфильтровать информацию по состоянию сокета. Для этого используется дополнительный ключ state.
Состояния, которые может принимать сокет:
- established;
- listening;
- syn-sent;
- syn-recv;
- time-wait;
- closed;
- close-wait;
- last-ack;
- fin-wait-1;
- fin-wait-2;
- closing.
Кроме того, ss распознаёт следующие идентификаторы состояний:
- all — все состояния;
- connected — все состояния, кроме прослушиваемых и закрытых;
- synchronized — все состояния, кроме syn-sent;
- bucket — состояния, представляющие собой минисокеты, например, time-wait или syn-recv;
- big — все состояния, кроме bucket.
Для отображения всех открытых TCP-портов выполните команду:
ss -t state listening
Для отображения всех успешных соединений по IPv4 выполните:
ss -4 state established
Вывод информации по имени сервиса или номеру порта
Для фильтрации информации по номеру порта или его имени утилите необходимо передать соответствующие опции:
для порта получения:
ss <опции> sport = :<порт>
для порта назначения:
ss <опции> dport = :<порт>
где <порт> — номер порта или имя сервиса.
Для фильтрации TCP-соединения с выводом информации об использовании только порта получателя 22 выполните:
ss -ta '( sport = :22 )'
Для фильтрации TCP-соединения с выводом информации об использовании сервиса HTTPS в адресе назначения выполните:
ss -ta '( dport = :https )'
Только полноправные пользователи могут оставлять комментарии. Аутентифицируйтесь пожалуйста, используя сервисы.