Ответ
netstat (network statistics) — это классическая сетевая утилита командной строки для отображения информации о сетевых подключениях, таблицах маршрутизации, статистике интерфейсов и сокетах. Хотя в современных дистрибутивах рекомендуется использовать её более быструю замену ss, netstat всё ещё широко используется для диагностики.
Основные варианты использования для диагностики:
-
Просмотр активных сетевых подключений и слушающих портов:
# Показать все TCP/UDP подключения и слушающие порты с номерами и именами процессов netstat -tulnp-t— TCP-u— UDP-l— только слушающие (LISTEN) сокеты-n— показывать числовые адреса (не резолвить имена)-p— отображать PID и имя процесса
-
Анализ таблицы маршрутизации ядра:
netstat -rn # Аналог команды `ip route show` -
Просмотр статистики по протоколам и интерфейсам:
netstat -s # Подробная статистика по протоколам (TCP, UDP, ICMP) netstat -i # Статистика по сетевым интерфейсам (аналог `ip -s link`)
Интерпретация вывода (столбцы для netstat -tulnp):
- Proto: Протокол (tcp, udp).
- Local Address: IP-адрес и порт, на котором слушает или установлено локальное соединение (например,
0.0.0.0:443означает "все интерфейсы"). - Foreign Address: Удаленный адрес и порт для установленных соединений.
- State: Состояние TCP-сокета (LISTEN, ESTABLISHED, TIME_WAIT, CLOSE_WAIT).
- PID/Program name: Процесс, использующий сокет.
Переход на ss (socket statistics):
Утилита ss из пакета iproute2 быстрее и предоставляет более детальную информацию. Большинство флагов netstat имеют прямые аналоги:
ss -tulnp # Прямой аналог `netstat -tulnp`
ss -s # Краткая статистика сокетов
ss -o state established '( dport = :443 or sport = :443 )' # Фильтр по состоянию и порту
Для DevOps: netstat/ss — это инструменты первого реагирования при проблемах с сетевым подключением (порт не слушает, слишком много соединений в TIME_WAIT), проверки доступности сервисов и аудита безопасности (какие порты открыты нежелательными процессами).