Утилита 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
ss -t показывает активные TCP-соединения. ss -u показывает активные UDP-соединения. ss -tlp показывает TCP-соединения и их ассоциированные процессы. ss -ulp показывает UDP-соединения и их ассоциированные процессы. ss -s показывает общую статистику по типам сокетов.
- Вывести все TCP соединения
# 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 )'
📌 Для тестирования скриптов, установщиков VPN, Python ботов рекомендуем использовать надежные VPS на короткий срок. Если вам нужна помощь с более сложными задачами, вы можете найти фрилансера, который поможет с настройкой. Узнайте больше о быстрой аренде VPS для экспериментов и о фриланс-бирже для настройки VPS, WordPress. 📌
💥 Подпишись в Телеграм 💥 и задай вопрос по сайтам и хостингам бесплатно!
7 Самых Популярных Статей
- Как запустить скрипты и веб-приложения на Python
- Что такое страны TIER 1,2,3
- 7 способов сравнения файлов по содержимому в Windows или Linux
- Установка и тестирование веб-панели HestiaCP
- Китайский VPN Shadowsocks простая установка и настройка
- top, htop, atop определение загрузки ОС (Load average, LA)
- Использование rsync в примерах