Table of Contents
ss (iproute2) — современная быстрая замена netstat для анализа сокетов: TCP/UDP/UNIX, слушающие порты, фильтры по состояниям, PID/процессы, таймеры и метрики TCP.
📝 Топ‑20 полезных флагов и приёмов ss#
-t/-u/-x— показать только TCP / UDP / UNIX‑сокеты.-l— только слушающие сокеты.-a— все сокеты (включая LISTEN).-p— показать PID/имя процесса (нужны права).-n— не резолвить имена (быстрее, вывод в виде IP:порт).-H— без заголовка (удобно для парсинга).-4/-6— только IPv4 / только IPv6.-s— краткая сводка статистики.-o— таймеры и TCP‑таймауты (timer, retrans).-i— TCP internals (RTO, cwnd, ssthresh, bbr/cubic).-m— использование памяти сокетом.-e— расширенный вывод (UID, ino, opts).-r— наоборот резолвить имена (если отключено-nпо умолчанию дистрибутивом).-f inet/inet6/unix— выбрать семейство протоколов.state ESTABLISHED(и др.) — фильтр по состояниям TCP.src/dst/sport/dport— фильтрация по адресу/порту (например,dport = :443).-D FILE— дампировать вывод в файл (для отладки).-K FILTER— убить соединения, подходящие под фильтр (TCP RST).-w— показать RAW сокеты (или-f inet -w).
🚀 Айсберг команд ss — от базового к гуру#
🟢 Уровень 1 — База (разогрев)#
ss -tuln
- Все слушающие TCP/UDP порты, без DNS‑резолва
ss -tan
- Все TCP‑соединения (не только LISTEN), числовой вывод
ss -uan
- Все UDP‑сокеты
ss -s
- Сводная статистика по протоколам
ss -tp
- TCP‑соединения с PID/процессами (root покажет всё)
🟡 Уровень 2 — Быстрая диагностика портов#
ss -ltnp | grep ':22 '
- Кто слушает порт 22 (SSH)
ss -ltnp | grep ':5432 '
- Кто держит PostgreSQL
ss -ltn 'sport = :80'
- Слушающие на 80 порту (HTTP)
ss -ltn 'sport = :80 or sport = :443'
- HTTP(S) слушатели одним фильтром
ss -tan | grep ESTAB
- Активные установленные TCP‑соединения
🟠 Уровень 3 — Фильтры по адресам и портам#
ss -tan 'dst 1.2.3.4'
- Соединения к конкретному IP‑адресу
ss -tan 'src :443'
- Исходные сокеты с портом 443
ss -tan 'dport = :443'
- Назначение порт 443 (HTTPS)
ss -tan 'src 10.0.0.0/8 and dport = :22'
- Фильтр по подсети и порту (SSH)
ss -tuan 'sport = :53 or dport = :53'
- Все DNS‑сокеты (UDP/TCP, порт 53)
🔵 Уровень 4 — Состояния TCP и троттлинг#
ss -tan 'state established'
- Только установленные соединения
ss -tan 'state syn-sent'
- Исходящие попытки подключения (SYN‑SENT)
ss -tan 'state time-wait'
- Соединения в TIME‑WAIT
ss -tan 'state fin-wait-1 or state fin-wait-2'
- Завершающиеся соединения
watch -n 1 "ss -tan 'state syn-recv or state syn-sent' | wc -l"
- Монитор задержек и очередей подключения
🟣 Уровень 5 — Метрики TCP и внутренняя кухня#
ss -tni 'state established'
- Показать RTO/cwnd/bytes_acked и др. для активных соединений
ss -to 'state established'
- Показать таймеры (retrans, rto) для TCP
ss -temoi
- Максимально подробная информация (extended+mem+opts+internals)
ss -tn 'state established' -o '( dport = :443 )'
- Таймеры только для HTTPS‑соединений
ss -tin 'src 192.168.1.0/24'
- TCP‑метрики для подсети
🔴 Уровень 6 — UNIX‑сокеты и системные демоны#
ss -xan
- Все UNIX‑сокеты (демоны, systemd, docker и т.п.)
ss -lx
- Слушающие UNIX‑сокеты
ss -xap | grep docker
- UNIX‑сокеты, связанные с Docker
ss -xan 'state listening'
- Только слушающие UNIX‑сокеты (явный state)
🟤 Уровень 7 — Гуру‑режим (скрипты, килл, парсинг)#
ss -K 'dst 1.2.3.4 dport = :443'
- Закрыть все TCP‑соединения к 1.2.3.4:443 (нужны права root, осторожно!)
ss -tanH | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -nr | head
- Топ IP по количеству соединений
watch -n 1 "ss -tan 'state established' | wc -l"
- Счётчик активных TCP‑соединений в реальном времени
ss -tan 'state syn-recv' | awk '{print $4}' | cut -d: -f2 | sort | uniq -c | sort -nr | head
- Какие порты чаще всего получают SYN
ss -tan 'dport = :80' -oH | awk '{print $(NF)}' | sort | uniq -c | sort -nr | head
- Анализ таймеров по HTTP‑сессиям
🧩 Бонус — практические рецепты#
Найти, кто слушает 8080 и показать процесс:
ss -ltnp | grep ':8080 '
Только IPv6 слушатели:
ss -ltn6
Показать все соединения к домену (без DNS‑резолва):
ss -tan 'dst 93.184.216.34'
Отфильтровать только HTTPS‑клиентов и показать таймеры:
ss -tan 'dport = :443' -o
Сводка по всем протоколам:
ss -s