Утилита ss для анализа сетевой статистики в Linux
Утилита ss (socket stat) – это инструмент командной строки, который отслеживает соединения сокетов и отображает статистику сокетов системы Linux. Она может отображать статистику для сокетов TCP, сокетов UDP, сокетов DCCP, сокетов RAW, сокетов домена Unix и многого другого. Ss позволяет отображать информацию, аналогичную netstat, при этом отображает больше информации о TCP и состоянии, чем другие инструменты.
Команда ss работает так же, как и любые другие утилиты командной строки Linux. Если взглянуть на страницу справки по ss (вызвать её можно командой man ss), можно заметить, что тут присутствует гораздо меньше ключей командной строки, чем у netstat. Однако это не говорит о скудных возможностях ss. На самом деле, ss весьма мощный инструмент, который пришел на замену устаревшему netstat.
Часто используемые ключи для ss, обратите внимание ниже приведен пример команды netstat и ключи у обоих утилит одинаковые и соответственно они и выведут похожую информацию:
ss -tulpn netstat -tulpn
Если запустить ss без аргументов командной строки или опций, она выведет полный список работающих соединений.
# ss -s Total: 3363 (kernel 3693) TCP: 809 (estab 467, closed 120, orphaned 0, synrecv 0, timewait 118/0), ports 664 Transport Total IP IPv6 * 3693 - - RAW 0 0 0 UDP 1735 1735 0 TCP 689 688 1 INET 2424 2423 1 FRAG 0 0 0
Опция -t позволяет просматривать сведения по TCP-соединениям, опция -u предназначена для вывода данных по UDP-соединениям, опция -x выводит данные по соединениям Unix. По умолчанию использование опций -t, -u или -x выведет лишь данные по установленным соединениям. Если нужно отобрать соединения, ожидающие подключений, понадобится добавить к вызову команды опцию -a
- Вывести все Порты TCP. Что такое TCP / IP порт соединения
# ss -t -a
- Вывести все UDP соединения
# ss -u -a State Recv-Q Send-Q Local Address:Port Peer Address:Port UNCONN 0 0 10.161.85.55:49408 *:* UNCONN 0 0 10.161.85.55:48768 *:* UNCONN 276 0 10.161.85.55:21888 *:*
- Узнать, кто занял порт, можно одной из следующих команд (ключ p вывод Pid процесса на порту):
# ss -p state listening '( sport = :443 )' # ss -tlp '( sport = :443 )' # ss -p state listening '( sport = :http or sport = :https )'
- Показать все установленные SMTP-соединения
# ss -o state established '( dport = :smtp or sport = :smtp )'
- Показать все установленные HTTP-соединения:
# ss -o state established '( dport = :https or sport = :https )'
- Вывести все сокеты TCP в состоянии FIN-WAIT-1. Перечислите все сокеты TCP в состоянии -FIN-WAIT-1 для нашего httpd в сеть 202.54.1/24 и посмотрите на их таймеры:
# ss -o state fin-wait-1 '( sport = :http or sport = :https )' dst 202.54.1/24
Что означают состояния сокетов, смотрите в статье Сокеты TCP и их состояния, ниже пример для TIME_WAIT (сокет закрыт, но ожидает пакеты, ещё находящиеся в сети для обработки):
ss -o state time-wait '( sport = :http or sport = :https )'

Friendhosting - Разумные цены на хостинг
VDS/VPS сервер от 3.49€ в месяц. Много ресурсов. Высокая надежность. Гибкое управление. Удобная оплата. Настройка под вас!
friendhosting.net
Антидетект браузер Dolphin{anty} бесплатно до 10 профилей
Dolphin разработан для работы с такими сложными ресурсов, как Google, Facebook и Coinlist.
Английский для IT‑специалистов по Skype
Персональные занятия по разумным ценам. 80% разговорной практики. Персональный график!
skyeng.ru