Ответ
ss (Socket Statistics) — это современная утилита командной строки Linux для детального просмотра статистики сетевых сокетов. Она пришла на смену старой и более медленной утилите netstat.
Ключевые преимущества ss перед netstat:
- Скорость:
ssполучает информацию напрямую из пространства ядра через сокетный интерфейсnetlink, минуя медленный парсинг файлов в/proc/net/. Это критично на загруженных серверах. - Богатство фильтров: Позволяет тонко фильтровать вывод по состоянию, адресам, портам и другим параметрам.
- Больше информации: Показывает расширенные детали, такие как таймеры TCP, окна, параметры congestion control.
Основные флаги и примеры использования в DevOps:
# 1. Показать все слушающие (LISTEN) TCP-сокеты с процессами (аналог 'netstat -tlnp')
ss -tlnp
# 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=123,fd=3))
# 2. Показать все установленные TCP-соединения к конкретному порту (например, 5432 - PostgreSQL)
ss -t dst :5432
# 3. Мониторинг проблем: показать соединения в нестандартных состояниях (например, ожидающие закрытия)
ss -tan state closing time-wait fin-wait-1 fin-wait-2
# 4. Показать статистику по сокетам, сгруппированную по состоянию
ss -s
# Total: 456 (kernel 1024)
# TCP: 45 (estab 10, closed 15, orphaned 2, timewait 3)...
# 5. Фильтр по IP-адресу источника
ss -nt src 10.0.1.100
Почему DevOps-инженеру важно знать ss: Это основной инструмент для оперативной диагностики сетевых проблем: выявления "висячих" соединений, поиска процессов, занимающих порты, анализа нагрузки на сокеты и проверки правильности работы брандмауэров и балансировщиков нагрузки.