NETSTAT — просмотр активных соединений и открытых портов в CMD

NETSTAT — команда CMD для диагностики сетевых соединений: показывает активные подключения, открытые порты, статистику протоколов и PID процессов. Незаменима при анализе трафика и безопасности.

NETSTAT — утилита командной строки Windows для просмотра активных сетевых соединений, открытых портов, статистики протоколов TCP/UDP и идентификаторов процессов. Используется при поиске несанкционированных подключений, диагностике зависших соединений и проверке того, какое приложение занимает конкретный порт.

Синтаксис команды NETSTAT

NETSTAT [-a] [-b] [-e] [-f] [-n] [-o] [-p протокол] [-r] [-s] [-t] [-x] [-y] [интервал]

Плейсхолдеры:

  • протокол — TCP, UDP, TCPv6 или UDPv6.
  • интервал — период повторного вывода в секундах (Ctrl+C для остановки).

Ключи и параметры

Ключ Описание Пример
-a Все соединения и прослушиваемые порты (включая серверные сокеты) netstat -a
-b Имя исполняемого файла, создавшего соединение (требует прав администратора) netstat -b
-e Статистика Ethernet: байты, пакеты, ошибки netstat -e
-f Полные доменные имена (FQDN) для удалённых адресов netstat -f
-n Адреса и порты в числовом виде (без разрешения имён) netstat -n
-o PID процесса, владеющего соединением netstat -o
-p протокол Фильтрация по протоколу: TCP, UDP, TCPv6, UDPv6 netstat -p TCP
-r Таблица маршрутизации (аналог route print) netstat -r
-s Статистика по протоколам (IP, TCP, UDP, ICMP) netstat -s
-t Показать состояние разгрузки TCP (offload state) netstat -t
-x Соединения NetworkDirect (RDMA) netstat -x
-y Шаблон подключения TCP для всех соединений netstat -y
интервал Обновлять вывод каждые N секунд netstat -an 5

Примеры использования

Все активные соединения и открытые порты

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

netstat -an

Флаг -n ускоряет вывод: адреса показываются как числа без DNS-запросов. В колонке State значение LISTENING означает ожидание входящих подключений, ESTABLISHED — активное соединение.

Найти процесс, занимающий порт

Нужно выяснить, какое приложение использует порт 8080 — например, при конфликте с веб-сервером.

netstat -ano | findstr :8080

В последней колонке отображается PID. Затем выполните tasklist /fi "PID eq НОМЕР" или откройте диспетчер задач для идентификации процесса.

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

Ключ -b выводит имя исполняемого файла для каждого соединения — удобно при анализе подозрительной активности.

netstat -ab

Требует запуска CMD от имени администратора. Вывод может быть медленным на системах с большим числом соединений.

Только TCP-соединения в числовом виде

Быстрый срез состояния всех TCP-соединений без лишней информации.

netstat -np TCP

Выводятся только TCP-соединения с PID. Замените TCP на UDP для просмотра UDP-портов.

Статистика протоколов

Полезно при диагностике потерь пакетов и ошибок на уровне протокола.

netstat -s -p TCP

Показывает число установленных соединений, сбросов, повторных передач, ошибок сегментов. Если счётчик RetransmittedSegments растёт — есть проблемы с каналом.

Мониторинг соединений в реальном времени

Наблюдайте за появлением новых подключений с заданным интервалом.

netstat -an 2

Таблица соединений обновляется каждые 2 секунды. Нажмите Ctrl+C для остановки.

Таблица маршрутизации

Быстрый просмотр маршрутов без отдельной команды route.

netstat -r

Отображаются активные маршруты, таблица постоянных маршрутов и многоадресная таблица маршрутизации.

Частые ошибки и решения

Ошибка / симптом Причина Решение
netstat -b выдаёт «Отказано в доступе» CMD запущена без прав администратора Запустите CMD от имени администратора
Вывод очень медленный Разрешение DNS-имён для каждого адреса занимает время Добавьте флаг -n для отключения DNS-разрешения
Порт виден как LISTENING, но браузер не открывает сайт Брандмауэр блокирует входящие подключения на этот порт Проверьте правила брандмауэра Windows или стороннего файрвола
Соединение зависло в состоянии TIME_WAIT Нормальное состояние после закрытия TCP-соединения; ожидание истечения таймера Ждите — TIME_WAIT исчезает автоматически через 2×MSL (обычно 2-4 минуты)
findstr не находит нужный порт Пробел перед двоеточием или лишние символы в шаблоне Используйте точный шаблон: findstr ":443 " — с пробелом после порта для исключения портов вроде 4430

Когда применять, а когда нет

NETSTAT подходит для оперативной диагностики: проверить, занят ли порт, найти PID процесса, посмотреть статистику TCP. Работает на всех версиях Windows без установки дополнительных инструментов.

Ограничения: NETSTAT показывает только текущий моментальный снимок — она не ведёт лог подключений во времени. Для мониторинга трафика в реальном времени используйте Resource Monitor или Microsoft Network Monitor. В PowerShell аналог — Get-NetTCPConnection и Get-NetUDPEndpoint: они возвращают объекты, удобные для фильтрации и экспорта.

FAQ

Как узнать, какая программа слушает конкретный порт?

Выполните netstat -ano | findstr :ПОРТ, получите PID в последней колонке, затем tasklist /fi "PID eq НОМЕР" — увидите имя процесса.

Что означает состояние CLOSE_WAIT?

Удалённая сторона закрыла соединение, но локальное приложение ещё не закрыло свой конец. Большое количество CLOSE_WAIT указывает на утечку соединений в приложении.

Можно ли использовать NETSTAT для обнаружения вирусов?

Косвенно — да. Запустите netstat -b от администратора и изучите список процессов с активными внешними соединениями. Неизвестный процесс с подозрительным внешним адресом — повод для проверки антивирусом.

Чем NETSTAT отличается от TCPView?

TCPView (Sysinternals) — графическая утилита с таким же функционалом, что и netstat -b, но с автообновлением и удобным интерфейсом. NETSTAT встроена в систему и работает везде, TCPView нужно скачивать отдельно.

Как вывести только IPv4-соединения?

Используйте netstat -p TCP или netstat -p UDP для IPv4. Для IPv6 — netstat -p TCPv6 или netstat -p UDPv6.

Почему один и тот же порт виден несколько раз?

Каждое соединение отображается отдельной строкой. Один порт может обслуживать несколько одновременных подключений с разными удалёнными адресами — это нормально для серверных служб.

Оцените статью
( Пока оценок нет )
MW10
Добавить комментарий

Нажимая на кнопку "Отправить комментарий", я даю согласие на обработку персональных данных и принимаю политику конфиденциальности.