SS — Socket Statistics

If you like this project, consider supporting me on Buy Me a Coffee ☕️

ss — Socket Statistics Utility

ss is a modern replacement for netstat, used to investigate sockets and network connections on Linux. It is faster and provides more detailed information than netstat, reading directly from kernel netlink subsystem. Part of the iproute2 package.

📚 Official Docs / Официальная документация: ss(8)

Basic Commands

Show All Sockets / Показать все сокеты

ss                                            # Show all sockets / Показать все сокеты
ss -a                                         # Show all (listening + non-listening) / Показать все
ss -l                                         # Show only listening / Показать только слушающие
ss -t                                         # Show TCP sockets / Показать TCP сокеты
ss -u                                         # Show UDP sockets / Показать UDP сокеты
ss -x                                         # Show Unix sockets / Показать Unix сокеты

Common Combinations / Распространённые комбинации

ss -tunlp                                     # TCP+UDP, numeric, listening, processes / TCP+UDP, числовые, слушающие, процессы
ss -tunap                                     # TCP+UDP, numeric, all, processes / TCP+UDP, числовые, все, процессы
ss -tulpn                                     # Same as above (order doesn't matter) / То же (порядок не важен)

Options / Опции

ss -n                                         # Don't resolve service names / Не разрешать имена сервисов
ss -p                                         # Show process using socket / Показать процесс использующий сокет
ss -r                                         # Resolve IP addresses / Разрешать IP адреса
ss -e                                         # Show extended info / Показать расширенную информацию
ss -m                                         # Show socket memory usage / Показать использование памяти сокетами

Filtering

By State / По состоянию

ss state established                          # Established connections / Установленные соединения
ss state listening                            # Listening sockets / Слушающие сокеты
ss state time-wait                            # Time-wait sockets / Сокеты в состоянии time-wait
ss state syn-sent                             # SYN-sent connections / Соединения SYN-sent
ss state fin-wait-1                           # FIN-wait-1 connections / Соединения FIN-wait-1

Multiple States / Несколько состояний

ss state established state syn-recv           # Multiple states / Несколько состояний
ss 'state established or state syn-recv'      # Alternative syntax / Альтернативный синтаксис

By Port / По порту

ss sport = :22                                # Source port 22 / Исходный порт 22
ss dport = :80                                # Destination port 80 / Порт назначения 80
ss sport = :1024-65535                        # Source port range / Диапазон исходных портов
ss dport gt :1024                             # Destination port > 1024 / Порт назначения > 1024
ss dport lt :1024                             # Destination port < 1024 / Порт назначения < 1024

By Address / По адресу

ss src <IP>                                   # Source IP / Исходный IP
ss dst <IP>                                   # Destination IP / IP назначения
ss src 192.168.1.0/24                         # Source subnet / Исходная подсеть

Complex Filters / Сложные фильтры

ss 'sport = :22 and state established'        # SSH established / SSH установленные
ss 'dport = :80 or dport = :443'              # HTTP or HTTPS / HTTP или HTTPS
ss '( dport = :http or dport = :https ) and state established'  # Complex / Сложный

Statistics

Summary / Сводка

ss -s                                         # Socket summary / Сводка сокетов
ss -s | head -10                              # Top 10 lines / Первые 10 строк

Memory / Память

ss -m                                         # Show socket memory / Показать память сокетов
ss -tm                                        # TCP with memory info / TCP с информацией о памяти

Timer / Таймер

ss -o                                         # Show timer info / Показать информацию о таймере
ss -to                                        # TCP with timers / TCP с таймерами

Advanced Usage

Show Process Info / Показать информацию о процессах

sudo ss -tlnp                                 # Listening TCP with processes / Слушающие TCP с процессами
sudo ss -plnt | grep ':80'                    # Process on port 80 / Процесс на порту 80
sudo ss -plnt | awk '$4 ~ /:22$/'             # SSH processes / SSH процессы

Extended Information / Расширенная информация

ss -e                                         # Extended socket info / Расширенная информация о сокетах
ss -te                                        # TCP extended / TCP расширенное
ss -tem                                       # TCP extended + memory / TCP расширенное + память

Unix Sockets / Unix сокеты

ss -x                                         # Unix domain sockets / Unix доменные сокеты
ss -xa                                        # All Unix sockets / Все Unix сокеты
ss -xl                                        # Listening Unix sockets / Слушающие Unix сокеты

Real-World Examples

Find Which Process Uses Port / Найти какой процесс использует порт

sudo ss -tlnp | grep ':80'                    # Find process on port 80 / Найти процесс на порту 80
sudo ss -tunlp | grep ':3306'                 # Find MySQL process / Найти процесс MySQL
sudo ss -plnt | awk '$4 ~ /:443$/'            # Find HTTPS process / Найти процесс HTTPS

Count Connections / Подсчитать соединения

ss -tan | awk 'NR>1 {print $1}' | sort | uniq -c  # Count by state / Подсчитать по состоянию
ss state established | wc -l                  # Count established / Подсчитать установленные
ss sport = :80 state established | wc -l      # Count HTTP connections / Подсчитать HTTP соединения

Find Top Connections / Найти топ соединений

# Top 10 IPs by connection count / Топ 10 IP по количеству соединений
ss -tan | awk 'NR>1 {print $5}' | cut -d: -f1 | sort | uniq -c | sort -nr | head -10

# Top ports / Топ портов
ss -tan | awk 'NR>1 {print $4}' | cut -d: -f2 | sort | uniq -c | sort -nr | head -10

Monitor Connections / Мониторить соединения

# Watch established connections / Смотреть установленные соединения
watch -n 1 'ss -tan | grep ESTAB | wc -l'

# Monitor specific port / Мониторить конкретный порт
watch -n 1 'sudo ss -tlnp | grep :80'

Check Listening Services / Проверить слушающие сервисы

sudo ss -tunlp                                # All listening ports / Все слушающие порты
sudo ss -tlnp                                 # Only TCP / Только TCP
sudo ss -ulnp                                 # Only UDP / Только UDP
sudo ss -tlnp | sort -k 5                     # Sort by port / Сортировать по порту

Detect TIME_WAIT Issues / Обнаружить проблемы TIME_WAIT

ss -tan | grep TIME-WAIT | wc -l              # Count TIME_WAIT connections / Подсчитать TIME_WAIT соединения
ss state time-wait                            # Show TIME_WAIT details / Показать детали TIME_WAIT

Find Zombie Connections / Найти зомби-соединения

ss state syn-recv                             # Find half-open connections / Найти полуоткрытые соединения
ss state fin-wait-1                           # FIN-wait-1 / FIN-wait-1
ss state fin-wait-2                           # FIN-wait-2 / FIN-wait-2

Check Specific Service / Проверить конкретный сервис

sudo ss -tp state established '( dport = :22 or sport = :22 )'  # SSH connections / SSH соединения
sudo ss -tp '( dport = :3306 or sport = :3306 )'  # MySQL connections / MySQL соединения
sudo ss -tlnp | grep docker                  # Docker connections / Docker соединения

Compare with netstat / Сравнить с netstat

ss -tan                                       # netstat -tan
ss -ltn                                       # netstat -ltn
sudo ss -tulpn                                # sudo netstat -tulpn

Export Connection Data / Экспортировать данные соединений

ss -tan | awk 'NR>1 {print $1","$2","$3","$4","$5}' > connections.csv  # Export to CSV / Экспортировать в CSV
echo "$(date),$(ss -tan | grep ESTAB | wc -l)" >> connections-log.csv  # Export with timestamp / С временной меткой

Security Audit / Аудит безопасности

sudo ss -tunlp | grep -v '127.0.0.1\|::1'    # Find unexpected listening ports / Найти неожиданные слушающие порты
sudo ss -tunlp | grep -v 'users:'             # Find non-local listeners / Найти не-локальные слушатели

Reference Tables

Common Options / Распространённые опции

Option Description (EN / RU)
-t / -u TCP / UDP sockets / сокеты
-l / -a Listening / All sockets / Слушающие / Все сокеты
-n Numeric (no name resolution) / Числовой (без разрешения имён)
-p Show processes / Показать процессы
-e Extended info / Расширенная информация
-m Memory info / Информация о памяти
-o Timer info / Информация о таймере

Socket States / Состояния сокетов

State Description (EN / RU)
ESTABLISHED Active connection / Активное соединение
LISTEN Listening for connections / Слушает соединения
TIME-WAIT Waiting after close / Ожидание после закрытия
SYN-SENT Connection attempt / Попытка соединения
SYN-RECV Connection being established / Соединение устанавливается
FIN-WAIT-1 Connection closing / Соединение закрывается
FIN-WAIT-2 Connection almost closed / Соединение почти закрыто
CLOSE-WAIT Waiting for close / Ожидание закрытия
CLOSING Closing connection / Закрытие соединения
LAST-ACK Waiting for ACK / Ожидание ACK

[!TIP] ss is faster than netstat and provides more detail. Use -n for faster output (no DNS resolution). Use sudo for process info (-p option). / ss быстрее чем netstat. Используйте -n для быстрого вывода. Используйте sudo для информации о процессах.

On this page

ss — Socket Statistics Utility Basic Commands Show All Sockets / Показать все сокеты Common Combinations / Распространённые комбинации Options / Опции Filtering By State / По состоянию Multiple States / Несколько состояний By Port / По порту By Address / По адресу Complex Filters / Сложные фильтры Statistics Summary / Сводка Memory / Память Timer / Таймер Advanced Usage Show Process Info / Показать информацию о процессах Extended Information / Расширенная информация Unix Sockets / Unix сокеты Real-World Examples Find Which Process Uses Port / Найти какой процесс использует порт Count Connections / Подсчитать соединения Find Top Connections / Найти топ соединений Monitor Connections / Мониторить соединения Check Listening Services / Проверить слушающие сервисы Detect TIME_WAIT Issues / Обнаружить проблемы TIME_WAIT Find Zombie Connections / Найти зомби-соединения Check Specific Service / Проверить конкретный сервис Compare with netstat / Сравнить с netstat Export Connection Data / Экспортировать данные соединений Security Audit / Аудит безопасности Reference Tables Common Options / Распространённые опции Socket States / Состояния сокетов