Команда ss в Linux — обзор и примеры использования

Команда ss
(сокращение от socket statistics) — это современная утилита в Linux для отображения информации о сетевых соединениях и сокетах. Она является более быстрой и функциональной заменой устаревшей команды netstat
и используется системными администраторами для диагностики, мониторинга и отладки сетевых проблем.
Основные сведения
- Название:
ss
(socket statistics) - Основное назначение: вывод информации о сетевых сокетах (TCP, UDP, UNIX, RAW и др.)
- Современная альтернатива:
netstat
(устарела в новых системах) - Расположение:
/usr/bin/ss
- Пакет:
iproute2
Синтаксис
ss [опции] [фильтры]
Базовые примеры использования
Команда | Описание |
---|---|
ss | Показать все активные сокеты |
ss -t | Показать только TCP-соединения |
ss -u | Показать только UDP-соединения |
ss -l | Показать только слушающие порты (LISTEN) |
ss -a | Показать все соединения, включая прослушивающие |
ss -p | Отобразить процессы, использующие сокеты |
ss -n | Отображать IP и порты в числовом виде (без DNS-резолвинга) |
Примеры с пояснениями
Показать все TCP-подключения
ss -t -a
Выводит список всех TCP-сокетов, включая установленные соединения и порты в состоянии LISTEN
.
Проверить, что слушает конкретный порт
ss -tln | grep 80
Показывает, какой процесс слушает порт 80.
Посмотреть процессы, использующие сокеты
sudo ss -tulpn
Выводит все TCP и UDP-порты с информацией о процессах и PID.
Активные соединения (ESTABLISHED)
ss -tn state established
UNIX-сокеты
ss -x
Пример вывода команды ss -tanp
State Recv-Q Send-Q Local Address:Port Peer Address:Port Process LISTEN 0 128 0.0.0.0:22 0.0.0.0:* users:(("sshd",pid=732,fd=3)) ESTAB 0 0 192.168.1.10:22 192.168.1.50:53418 users:(("sshd",pid=845,fd=4)) LISTEN 0 100 127.0.0.1:3306 0.0.0.0:* users:(("mysqld",pid=620,fd=12)) ESTAB 0 0 192.168.1.10:443 192.168.1.55:50213 users:(("nginx",pid=712,fd=7))
Пояснение колонок
- State — текущее состояние соединения (LISTEN, ESTAB, TIME-WAIT и т. д.).
- Recv-Q — количество байтов, ожидающих приёма приложением.
- Send-Q — количество байтов, ожидающих отправки в сеть.
- Local Address:Port — локальный IP-адрес и порт сокета.
- Peer Address:Port — удалённый IP-адрес и порт, с которым установлено соединение.
- Process — информация о процессе, использующем данный сокет (имя, PID и файловый дескриптор).
Состояния TCP
Состояние | Описание |
---|---|
LISTEN | Сокет слушает входящие подключения |
ESTABLISHED | Соединение установлено |
SYN-SENT | Отправлен запрос на соединение |
SYN-RECV | Получен запрос на соединение |
FIN-WAIT-1 / 2 | Закрытие соединения |
TIME-WAIT | Ожидание завершения сеанса |
CLOSE-WAIT | Ожидание закрытия со стороны приложения |
LAST-ACK | Последнее подтверждение перед закрытием |
Полезные фильтры
ss state established '( dport = :22 or sport = :22 )' ss dst 192.168.1.1 ss sport = :443
Статистика
ss -s
Показывает краткую статистику по состояниям TCP, UDP и UNIX-сокетов.
Сравнение с netstat
Функция | ss | netstat |
---|---|---|
Скорость работы | ⚡ Высокая | 🐢 Медленная |
Пакет | iproute2 | net-tools (устарел) |
Фильтры | ✅ Да | ❌ Ограничены |
Информация о процессах | ✅ Да | ✅ Да |
Поддержка IPv6 | ✅ Полная | ✅ Частичная |
UNIX-сокеты | ✅ Да | ✅ Да |
Популярные комбинации
sudo ss -tulnp | grep 443 # Кто слушает порт 443 ss -tna | grep 192.168.1.10 # Соединения с IP ss -tan | awk '{print $6}' | sort | uniq -c | sort -nr # Подсчёт по состояниям ss -xlp # Локальные UNIX-сокеты
Заключение
Команда ss
— незаменимый инструмент для сетевой диагностики в Linux. Она сочетает высокую скорость работы, гибкие фильтры, поддержку различных типов сокетов и возможность быстро определить, какие процессы используют порты. В современных дистрибутивах Ubuntu, Debian, Fedora, CentOS именно ss
является стандартом вместо netstat
.
Редактор: AndreyEx