Битлента
Словарь терминов3 мин чтения·

netstat: как посмотреть активные соединения и открытые порты

netstat показывает, какие соединения и слушающие порты есть на компьютере. Разбираем ключи -ano, -b, -r, состояния соединений и типичные выводы.

Что показывает утилита

netstat — консольная утилита из Windows и Linux, которая выводит сетевую статистику компьютера: текущие TCP-соединения, порты, ожидающие подключений, таблицы маршрутизации и счётчики протоколов. Она отвечает на вопрос «с кем и через какой порт сейчас говорит мой компьютер».

На практике её запускают, когда хотят понять, что занимает порт, какая программа тихо обращается в сеть или почему не запускается служба, жалующаяся на занятый порт. Данные берутся у самой операционной системы в момент запуска, то есть это снимок, а не постоянный мониторинг.

В Linux похожие сведения выводит ss, а в macOS netstat имеет другой набор ключей, поэтому инструкции для разных систем не стоит смешивать. Здесь и далее речь идёт прежде всего о версии для Windows.

Основные ключи в Windows

Самая употребительная связка — netstat -ano. Ключ -a показывает и соединения, и слушающие порты, -n выводит адреса и порты числами без разрешения имён (это быстрее), -o добавляет идентификатор процесса PID. Ключ -b пытается показать имя программы, но требует прав администратора и работает медленно. Ключ -r выводит таблицу маршрутов, -e — статистику интерфейса, -s — счётчики по протоколам.

По PID можно найти процесс в диспетчере задач или командой tasklist с фильтром по идентификатору.

Как читать столбцы

В строке видны протокол, локальный адрес с портом, внешний адрес с портом, состояние и PID. Состояние LISTENING значит, что служба ждёт входящих подключений. ESTABLISHED — соединение установлено и идёт обмен. TIME_WAIT означает, что соединение закрыто, но система удерживает его короткое время, чтобы принять запоздавшие пакеты. SYN_SENT — компьютер отправил запрос и ждёт ответа, а обилие таких строк говорит о том, что удалённая сторона не отвечает.

Адрес 0.0.0.0 в локальном поле значит, что служба слушает на всех интерфейсах, а 127.0.0.1 — что только на самом компьютере.

Для UDP состояний нет, ведь у этого протокола нет установленного соединения: в списке вы увидите только локальный адрес и порт. Поэтому по UDP-строкам нельзя определить, с кем идёт обмен в данный момент, и их лучше рассматривать как список открытых «приёмных» портов.

🛡️ Остались проблемы с соединением?
Можно пользоваться постоянно: российские приложения работают, включать и выключать ничего не нужно. Без карты и регистрации, настройка за пару минут.
Попробовать бесплатно

Где это помогает

Диагностика занятых портов: команда netstat -ano с фильтром по номеру показывает процесс, который держит порт. Поиск подозрительных соединений: неожиданные ESTABLISHED на незнакомые адреса в необычные порты стоит проверить. Проверка работы служб: если вы запустили сервер, а порт не в состоянии LISTENING, он не слушает.

Число соединений в состоянии TIME_WAIT у нагруженных серверов бывает большим — это нормальный режим, а не признак атаки.

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

Заблуждения и ограничения

Наличие «чужого» адреса в списке не означает вторжения: браузеры, обновления и облачные клиенты постоянно обращаются к десяткам серверов. Netstat не показывает трафик, то есть сколько данных передано, а только список соединений; для нагрузки нужен диспетчер задач или монитор ресурсов.

Утилита в Windows формально считается устаревающей, но продолжает работать. В Linux ей на смену пришла команда ss, показывающая то же самое быстрее. Кроме того, вредоносная программа может скрывать себя от обычных инструментов, поэтому netstat не заменяет антивирус.

Ещё одно ограничение: снимок быстро устаревает, ведь короткие соединения появляются и исчезают за доли секунды. Для наблюдения в динамике добавьте в конце команды интервал в секундах, и утилита будет обновлять вывод.

Как выполнить самому

Запустите cmd от имени администратора и введите netstat -ano. Найдите строку с LISTENING на порту, который вас интересует, запомните PID и откройте диспетчер задач на вкладке «Подробности», добавив столбец PID. Для просмотра соединений браузера сравните адреса ESTABLISHED с открытыми вкладками. В PowerShell тот же результат в виде объектов даёт Get-NetTCPConnection.

Для сравнения повторите команду через минуту и посмотрите, какие соединения появились и пропали. Если вы подозреваете конкретную программу, закройте её и проверьте, исчезли ли связанные с ней строки.

🛡️ Остались проблемы с соединением?
Можно пользоваться постоянно: российские приложения работают, включать и выключать ничего не нужно. Без карты и регистрации, настройка за пару минут.
Попробовать бесплатно
windowsпортыдиагностика

Часто задаваемые вопросы

Читайте также