netstat на многих дистрибутивах уже даже не ставится по умолчанию — вместо него ss из пакета iproute2. Читает состояние сокетов напрямую из netlink, а не построчно парсит /proc/net/tcp — на хосте с тысячами соединений разница в скорости заметна на глаз.

Базовые флаги те же, что были у netstat, разве что без дефиса между буквами:

ss -tulnp
  • -t — TCP-сокеты
  • -u — UDP-сокеты
  • -l — только слушающие (listening)
  • -n — цифрами, без резолва в DNS/имена сервисов (резолв — это лишняя задержка на каждый вызов)
  • -p — какой процесс держит сокет (нужен root или sudo)

Посмотреть все установленные (не только listening) соединения по конкретному порту:

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

state established — фильтр по состоянию сокета (есть ещё listening, closed, syn-sent и т.п.), выражение в скобках — свой мини-язык фильтрации по портам/адресам, without grep и без риска зацепить не то по случайному совпадению цифр в выводе.

Сводка по количеству сокетов на каждое состояние — быстрая проверка, не забита ли машина TIME-WAIT:

ss -s

Часто нужное на практике: кто слушает конкретный порт прямо сейчас.

ss -tlnp sport = :5432

Отвечает сразу, каким PID/именем процесса занят порт — без lsof и без второго терминала.

#linux #network #ss