Для решения каких задач используется утилита netstat?

Ответ

netstat (network statistics) — это классическая сетевая утилита командной строки для диагностики и мониторинга сетевых подключений и статистики. Ее основные применения:

1. Просмотр активных сетевых подключений и портов

Показывает все установленные соединения (TCP/UDP), их состояние, локальные и удаленные адреса с портами.

# Linux/macOS: Показать все TCP-соединения в числовом формате
netstat -tn

# Windows: Показать все соединения с номерами процессов (PID)
netstat -ano

Ключевые состояния TCP:

  • LISTEN — сервис ожидает входящих подключений.
  • ESTABLISHED — активное соединение.
  • TIME_WAIT — соединение закрывается, ожидает таймаута.

2. Анализ открытых (слушающих) портов

Определение, какие сервисы запущены и принимают подключения.

# Linux/macOS: Показать все слушающие порты для TCP и UDP
netstat -tuln
# (Опции: -t TCP, -u UDP, -l listening, -n numeric)

3. Диагностика проблем

  • Поиск неожиданно открытых портов (признак вредоносного ПО).
  • Обнаружение "висящих" соединений в состояниях CLOSE_WAIT, TIME_WAIT.
  • Проверка, может ли приложение выйти в сеть/принять подключение.

4. Получение сетевой статистики

Вывод агрегированных данных по протоколам: количество отправленных/полученных пакетов, ошибки, сбросы.

# Показать статистику по всем интерфейсам и протоколам
netstat -s

5. Определение процесса, использующего порт

Критично для диагностики конфликтов портов.

# Windows: Последняя колонка - PID
netstat -ano | findstr :8080

# Linux: Требует прав суперпользователя
sudo netstat -tulnp | grep :22

Важно: В современных системах netstat считается устаревающей.

  • В Linux предпочтительнее использовать ss (socket statistics) — она быстрее и показывает больше информации: ss -tuln.
  • В Windows PowerShell используйте cmdlet Get-NetTCPConnection.

Ответ 18+ 🔞

А, ну ты глянь, какая хуйня всплыла! netstat, блядь, классика жанра, как старый дедовский тесак. Утилита, которая тебе всё про сеть расскажет, если, конечно, ты умеешь её спрашивать. В рот меня чих-пых, она же как рентген для твоего компа — видно все дырки, откуда что торчит и куда лезет.

Вот, например, тебе интересно, кто тут у тебя на порту 8080 сидит и слушает, как идиот? На винде делаешь так:

netstat -ano | findstr :8080

Видишь последнюю циферку? Это PID, ёпта! Иди потом в диспетчер задач и смотри, какой процесс этот номерок себе присвоил. Часто оказывается, что какая-нибудь мартышлюшка-программа висит и порт не отдаёт.

А на линуксе, если права есть, вообще красота:

sudo netstat -tulnp | grep :22

Сразу видно, какой демон на SSH-порту сидит и под кем — имя процесса прямо в выводе. Удобно, блядь!

Но слушай сюда, главный прикол. Эта команда, она тебе состояния соединений показывает. Вот смотри:

  • LISTEN — это как шлюха у подъезда: сидит, ждёт, когда к ней кто-то подъедет. Сервис слушает порт.
  • ESTABLISHED — уже договорились, пошли в дело. Активное, нормальное соединение.
  • TIME_WAIT — всё, кончили, но ещё стоят, штаны поправляют, перед тем как разойтись. Соединение закрывается.

А если у тебя куча CLOSE_WAIT висит — это пиздец, чувак. Программа твоя нихуя не может нормально закрыть сокеты, память жрёт, всё виснет. Повод для волнения, ебать.

Ну и статистику общую можно глянуть, если совсем припёрло:

netstat -s

Там тебе и пакеты посчитаны, и ошибки, и сбросы — в общем, полный раскладбаз. Но, блядь, есть нюанс!

Внимание, ёперный театр! Сама netstat уже считается старухой, которая медленно соображает.

  • В линуксе теперь модно использовать ss. Та же фигня, но быстрее и информации больше: ss -tuln.
  • А в винде, в этой PowerShell — там свои заморочки, Get-NetTCPConnection называется.

Но если ты на каком-нибудь древнем серваке или просто по привычке — netstat тебя никогда не подведёт. Главное — флаги правильные подобрать, а то начнёшь материться, что ничего не работает.