Гид по технологиям

Команда ss — руководство по сокетам в Linux

• 4 min read • Linux • Обновлено 25 Nov 2025
ss в Linux — быстрый справочник
ss в Linux — быстрый справочник

Диаграмма сети и терминал с командой ss

Что такое команда ss

ss означает Socket Statistics — статистика сокетов. Это современная замена старому инструменту netstat. ss показывает информацию о сокетах: TCP, UDP, DCCP, RAW и Unix domain sockets. Команда обычно предустановлена в большинстве дистрибутивов Linux.

Важно: сокет — абстракция конечной точки сетевого соединения. Это может быть локальный файл (Unix socket) или сетевой порт.

Быстрое использование

Самая простая команда — запустить ss без аргументов. Вывод большой, поэтому удобно прокручивать через less:

ss | less

Чтобы смотреть только TCP-сокеты:

ss -t

Вывод ss при фильтрации TCP-соединений

Показать UDP-сокеты:

ss -u

По умолчанию ss показывает активные (established) соединения. Чтобы увидеть все TCP-сокеты — и слушающие, и подключённые:

ss -t -a

Примеры ниже помогут выбрать правильные флаги для задач.

Полезные приёмы и фильтры

Состояния TCP

TCP-соединения проходят через состояния: LISTEN, SYN-SENT, ESTABLISHED, CLOSE_WAIT и другие. ss позволяет фильтровать по состоянию. Команда ниже показывает все подключённые сокеты (connected — все состояния, кроме LISTEN и CLOSED):

ss state connected

Чтобы увидеть только слушающие сокеты:

ss state listening

IPv4 и IPv6

Для фильтрации по версии IP используйте флаги -4 и -6.

Все подключённые IPv4 TCP-соединения:

ss -4 state connected

Список подключений IPv4, отфильтрованных ss

Все IPv6-сокеты:

ss -6

Как узнать, какой процесс использует сокет

Чтобы увидеть PID и имя процесса, добавьте флаг -p. Пример для IPv4 TCP:

ss -4 -p state connected

Вы увидите колонку с PID/Program name.

Вывод ss с PID и именами процессов для TCP-сокетов

Краткая сводка

Чтобы получить компактную статистику по всем сокетам:

ss -s

Это покажет суммарные числа для TCP, UDP, RAW, Unix и т. д., а также распределение по состояниям.

Краткая сводка сокетов, выведенная ss -s

Чек-лист по использованию ss (по ролям)

Sysadmin:

  • Проверить, какие порты слушают: ss -tuln
  • Найти процесс по порту: ss -tulpn | grep :8080
  • Быстрая сводка состояния: ss -s

Разработчик:

  • Проверить активные соединения для локальной отладки: ss -4 state connected sport = :3000 or dport = :3000
  • Узнать, не блокирует ли бэкенд сокеты: ss -t state close-wait

Инженер по безопасности:

  • Скрытые слушающие сервисы: ss -tunap (под root)
  • Сопоставить PID с бинарью и проверить подписи/цепочку: ss -tulpn

Шпаргалка команд (cheat sheet)

  • Показать все слушающие TCP и UDP (с номерами портов):
ss -tuln
  • Показать процессы, использующие сокеты (требуется root для полного вывода):
sudo ss -tunap
  • Фильтрация по удалённому адресу или порту:
ss dst 1.2.3.4
ss dport = :443
  • Показывать таймеры и подробные параметры сокетов:
ss -o state established

Когда ss не подойдёт

  • Если нужна долговременная агрегированная статистика по трафику — ss не хранит историю. Используйте netflow/Prometheus/pcap-инструменты.
  • Для глубокого анализа пакетов нужен tcpdump или Wireshark.

Методология быстрого расследования сетевых проблем

  1. Сбор контекста: узнайте IP/порт и процесс, которые вызывают проблему.
  2. Быстрый осмотр:
    • ss -tuln — есть ли сервис, слушающий порт?
    • ss -p | grep <порт> — кто слушает?
    • ss state syn-recv — есть ли незавершённые соединения?
  3. Если нужно, снимите дамп трафика: tcpdump -i any port <порт> -w capture.pcap
  4. Если подозрение на нагрузку: собрать метрики CPU/IO и количество сокетов через ss -s и системный монитор.

Сравнение с netstat

  • ss быстрее и показывает больше полей. netstat устарел и медленнее при большом числе соединений.
  • netstat удобен для некоторых старых сценариев, но ss предпочтителен в современном администрировании.

Примеры шаблонов для повседневных задач

Найти процесс, слушающий порт 22:

ss -tulpn | grep :22

Показать все соединения к базе данных на 5432:

ss -tn state established '( dport = :5432 or sport = :5432 )'

Найти все соединения в состоянии CLOSE-WAIT (возможная утечка сокетов):

ss state close-wait

Полезные эвристики и контрольные точки

  • Если много соединений в TIME-WAIT — это нормальное поведение при большом объёме коротких клиентских подключений.
  • Если много CLOSE-WAIT — приложение, вероятно, не закрывает сокеты корректно.
  • LISTEN без процесса (rare) может указывать на временные проблемы с правами или быстрые перезапуски.

Визуальная подсказка выбора команды

flowchart TD
  A[Нужна быстрая проверка] --> B{Что проверить?}
  B -->|Какие порты слушают| C[ss -tuln]
  B -->|Процесс по сокету| D[ss -p | grep :порт]
  B -->|Все активные связи| E[ss -s]
  B -->|Фильтрация по IP| F[ss dst 1.2.3.4]

Небольшой глоссарий

  • сокет — конечная точка сетевого взаимодействия
  • LISTEN — сокет ожидает входящих подключений
  • ESTABLISHED — активное двустороннее соединение
  • CLOSE-WAIT — локальная сторона получила FIN и ещё не закрыла сокет

Часто задаваемые вопросы

Что делает ss лучше, чем netstat?

ss быстрее, эффективнее при больших объёмах соединений и предоставляет гибкие фильтры по состояниям и адресам.

Как посмотреть процесс, который держит порт?

Запустите sudo ss -tulpn — в выводе будет столбец с PID/именем программы.

Как показать только слушающие сокеты с номерами портов?

Используйте ss -tuln — опции: t=TCP, u=UDP, l=listening, n=показывать номера.

Итоги

  • ss — обязательный инструмент для быстрого анализа сокетов в Linux.
  • Он позволяет фильтровать по протоколам, состояниям, IP-версиям и связывать сокеты с процессами.
  • Для глубокой сетевой телеметрии используйте специализированные системы мониторинга в дополнение к ss.

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

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Несколько аккаунтов Skype: Multi Skype Launcher
Программное обеспечение

Несколько аккаунтов Skype: Multi Skype Launcher

Журнал для работы: повысить продуктивность
Productivity

Журнал для работы: повысить продуктивность

Персональные звуки уведомлений на Android
Android.

Персональные звуки уведомлений на Android

Скачивание шоу Hulu для офлайн‑просмотра
Стриминг

Скачивание шоу Hulu для офлайн‑просмотра

Microsoft Start: персонализированная новостная лента
Новости

Microsoft Start: персонализированная новостная лента

Как изменить имя в Epic Games быстро
Гайды

Как изменить имя в Epic Games быстро