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
