Команда ss (аббревиатура от Socket Statistics) в Linux предназначена для анализа и отображения информации о сетевых соединениях. Она позволяет просматривать текущие соединения, прослушиваемые порты и сокеты. Команда ss работает быстрее и эффективнее, чем устаревшая netstat, так как взаимодействует напрямую с ядром. В современных системах именно ss стала стандартным инструментом для диагностики сетей.
Синтаксисss [OPTIONS] [FILTER]
Основные возможности
- Просмотр активных TCP/UDP-соединений.
- Проверка прослушиваемых портов.
- Фильтрация по порту, протоколу или состоянию соединения.
- Вывод дополнительной информации (PID, имя процесса, дескриптор файла).
- Поддержка Unix-сокетов.
- Мониторинг RAW-соединений (низкоуровневых).
- Получение статистики по состояниям соединений и протоколам.
Основные ключи
| Ключ | Описание |
|---|---|
| -t | Только TCP-соединения |
| -u | Только UDP-соединения |
| -x | Unix-сокеты |
| -w | RAW-сокеты (низкоуровневые) |
| -a | Все сокеты (активные + прослушиваемые) |
| -l | Только слушающие сокеты (LISTEN) |
| -p | Информация о процессах (имя, PID, дескриптор) |
| -n | Без DNS-резолвинга: IP-адреса и порты в числовом виде |
| -r | Обратное преобразование IP-адресов в доменные имена |
| -s | Статистика по сокетам |
Поля вывода
- State — состояние сокета.
- Recv-Q — количество полученных, но ещё не обработанных данных.
- Send-Q — количество данных, ожидающих отправки.
- Local Address:Port — локальный IP-адрес и порт.
- Peer Address:Port — удалённый адрес и порт (часто
*:*, если не подключено). - Process — процесс, управляющий соединением.
Фильтрация вывода
state <state>— фильтрация по состоянию (например,ESTABLISHED,LISTEN,CLOSE-WAIT, и т.д.)src <address>— фильтр по IP-адресу источника.dst <address>— фильтр по адресу назначения.sport <port>— фильтр по исходному порту.dport <port>— фильтр по порту назначения.
Пример:ss -t state ESTABLISHED
Параметры отображения дополнительной информации
| Ключ | Описание |
|---|---|
| -s | Общая статистика по сокетам |
| -e | Расширенная информация (байты, таймеры, и т.д.) |
| -i | Сетевые интерфейсы, связанные с сокетами |
| -m | Информация об используемой памяти сокета |
Фильтрация по протоколам
| Ключ | Протокол |
|---|---|
| -4 | IPv4 |
| -6 | IPv6 |
| -t | TCP |
| -u | UDP |
| -x | Unix-сокеты |
| -w | RAW-сокеты |
Пример:ss -t -4
— покажет только TCP-соединения по протоколу IPv4.
Также можно комбинировать фильтры:ss -t state ESTABLISHED '( sport = :443 or dport = :443 )'
Команда выведет все активные TCP-соединения в состоянии ESTABLISHED, где:
- клиент подключается к вашему серверу через порт 443;
- или ваш сервер использует порт 443 как порт назначения.
Примеры использования
Просмотр всех активных TCP-соединений:ss -t -a
Вывод прослушиваемых портов с указанием процессов:ss -tulnp
Фильтрация TCP-соединений, находящихся в состоянии ESTABLISHED:ss -t state ESTABLISHED
Просмотр всех Unix-сокетов:ss -x
Получение сетевой статистики:ss -s
Фильтрация по IP и порту:ss -t state ESTABLISHED '( src 192.168.1.10 and dport = :22 )'
Все TCP-сессии на порт 5588 (порт назначения):ss -tn '( dport = :5588 )'
Все исходящие подключения с порта источника 22:ss -tn '( sport = :22 )'
Несколько условий через and / or:ss -tn '( dport = :5588 and state = ESTABLISHED )'