netstat — инструмент для мониторинга сетевых соединений, портов, маршрутов, сокетов и статистики сети.
Хотя часть функционала перенесена в ss, netstat всё ещё активно используется администраторами для диагностики.

📝 Топ‑15 полезных флагов netstat#

  • -t — показать только TCP-соединения.
  • -u — показать только UDP-соединения.
  • -l — показать только слушающие порты.
  • -a — показать все соединения (включая слушающие).
  • -p — показать PID и имя процесса, владеющего сокетом.
  • -n — не разрешать DNS, выводить только IP-адреса.
  • -r — показать таблицу маршрутизации.
  • -i — показать статистику по сетевым интерфейсам.
  • -s — детализированная статистика по протоколам.
  • -c — непрерывное обновление данных.
  • -W — широкий вывод (не обрезает имена хостов).
  • -g — показать группы multicast.
  • -e — расширенный вывод для сокетов.
  • -4 — показать только IPv4-соединения.
  • -6 — показать только IPv6-соединения.

🚀 Айсберг команд netstat — от базового к гуру#

🟢 Уровень 1 — База (разогрев)#

netstat

  • Показать активные соединения

netstat -tuln

  • Показать все слушающие TCP/UDP порты без DNS

netstat -an

  • Показать все соединения с IP-адресами и портами

netstat -tp

  • Показать соединения + PID + процесс

netstat -s

  • Статистика по всем протоколам

🟡 Уровень 2 — Диагностика портов и соединений#

netstat -tlpn

  • Все TCP-порты с PID и именем процесса

netstat -ulnp

  • Все UDP-порты с PID

netstat -plnt | grep 8080

  • Узнать, какой процесс слушает порт 8080

netstat -an | grep ESTABLISHED

  • Найти активные установленные соединения

netstat -an | grep TIME_WAIT

  • Найти «висячие» соединения

🟠 Уровень 3 — Работа с маршрутизацией#

netstat -r

  • Таблица маршрутов (аналог route -n)

netstat -rn

  • Таблица маршрутов без DNS

netstat -g

  • Информация о multicast-группах

netstat -ie

  • Подробная статистика интерфейсов

netstat -M

  • Показывает информацию о masquerading NAT

🔵 Уровень 4 — Мониторинг и обновление в реальном времени#

netstat -c

  • Обновление информации каждую секунду

watch -n 1 "netstat -ant | grep ESTABLISHED"

  • Следить за активными TCP-соединениями

netstat -an | grep SYN_SENT

  • Проверить зависшие попытки соединения

netstat -an | grep FIN_WAIT

  • Найти соединения в процессе завершения

netstat -an | grep CLOSE_WAIT

  • Анализ застрявших соединений

🟣 Уровень 5 — Сетевые проблемы и отладка#

netstat -s | grep retrans

  • Проверить количество ретрансмиссий TCP

netstat -s | grep -i drop

  • Проверить количество сброшенных пакетов

netstat -i

  • Подробная информация по интерфейсам

netstat -e

  • Расширенный вывод для сокетов

netstat -g

  • Проверка групп multicast

🔴 Уровень 6 — Сочетания с другими инструментами#

sudo netstat -tulpn | grep LISTEN

  • Быстрый способ найти все слушающие порты

sudo netstat -plant | grep 22

  • Проверить, что слушает SSH

netstat -ap | grep nginx

  • Проверить все соединения nginx

lsof -i :3306

  • Альтернатива для поиска процессов по порту

ss -tulwn

  • Современный аналог netstat -tuln

🟤 Уровень 7 — Гуру‑режим#

netstat -ntp | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -nr

  • Вывести топ IP-адресов по количеству соединений

watch -n 1 "netstat -s | grep retrans"

  • Мониторинг числа TCP-ретрансмиссий в реальном времени

netstat -nputw | grep 443

  • Проверка HTTPS соединений с процессами

netstat -tuwx

  • Отображение UNIX-сокетов вместе с TCP/UDP

netstat -ap --tcp | grep CLOSE_WAIT

  • Проверить висячие соединения TCP

🧩 Бонус — практические сценарии#

Найти процесс, который держит порт:

sudo netstat -tulpn | grep 8080

Показать все слушающие порты:

sudo netstat -tulnp

Мониторинг активных подключений:

watch -n 1 "netstat -ant | grep ESTABLISHED"

Совместное использование с lsof:

sudo lsof -i -P -n | grep LISTEN

Современный аналог через ss:

ss -tulwn