Программа для проверки портов: как найти открытые и занятые порты

Когда приложение не может подключиться к серверу или служба отказывается запускаться с ошибкой «порт занят», первое действие — проверить состояние портов с помощью специальной программы. Утилита для проверки портов показывает, какие порты открыты, какие процессы их используют и доступен ли нужный порт извне. Без такой диагностики найти причину сбоя сети или конфликта служб практически невозможно.

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

Зачем проверять порты и в каких ситуациях это нужно

Порт — это логическая точка входа для сетевого соединения. Каждая программа, работающая с сетью, «слушает» один или несколько портов. Проверка портов требуется в нескольких типичных ситуациях.

  • 🔌 Веб-сервер, игровой сервер или база данных не отвечает на подключения — нужно понять, открыт ли порт и не блокирует ли его брандмауэр.
  • ⚔️ Программа сообщает, что порт уже занят, — необходимо выяснить, какой процесс его удерживает.
  • 🛡️ Требуется аудит безопасности: найти открытые порты, через которые потенциально возможно несанкционированное подключение.
  • 🌐 Настроен проброс портов на роутере, и нужно убедиться, что порт действительно доступен из интернета.

Отдельный случай — диагностика после настройки port forwarding. Пользователь пробрасывает порт, а сервис всё равно недоступен. Причина может быть в брандмауэре Windows, в отсутствии слушающего приложения или в том, что провайдер блокирует входящие соединения. Проверка порта помогает локализовать проблемное звено.

Встроенные средства Windows: netstat и PowerShell

Устанавливать стороннюю программу не всегда обязательно: в Windows есть встроенные инструменты. Команда netstat запускается в командной строке и показывает активные соединения и прослушиваемые порты.

netstat -ano | findstr LISTENING

Эта команда выводит список портов в состоянии прослушивания вместе с PID — идентификатором процесса. По PID через «Диспетчер задач» (вкладка «Подробности») можно определить, какая именно программа занимает порт. Для вывода сразу с именами процессов используйте netstat -anob, но эта команда требует запуска командной строки от имени администратора.

Альтернатива в PowerShell — командлет Get-NetTCPConnection. Он выводит структурированную информацию о TCP-соединениях, которую удобно фильтровать:

Get-NetTCPConnection -State Listen | Sort-Object LocalPort

Для проверки доступности удалённого порта (например, на сервере) в PowerShell есть командлет Test-NetConnection:

Test-NetConnection -ComputerName example.com -Port 443

Если в выводе параметр TcpTestSucceeded равен True, порт доступен. Значение False означает, что соединение не установлено: порт закрыт, фильтруется или удалённый хост недоступен.

Сторонние программы для сканирования портов

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

ПрограммаТипОсновное назначениеИнтерфейс
NmapСканер портовГлубокое сканирование хостов и сетей, определение службКомандная строка (есть GUI Zenmap)
Advanced Port ScannerСканер портовБыстрое сканирование локальной сетиГрафический
TCPViewМониторингПросмотр открытых портов и процессов в реальном времениГрафический
CurrPortsМониторингСписок открытых портов с привязкой к процессамГрафический
Angry IP ScannerСканер сетиПоиск активных хостов и открытых портов в подсетиГрафический

Nmap — фактический стандарт среди сканеров портов. Утилита умеет определять не только состояние порта, но и версию службы, которая за ним работает. Простейшая команда сканирования выглядит так:

nmap -p 1-1000 192.168.1.1

Для повседневных задач в домашней сети чаще выбирают Advanced Port Scanner или Angry IP Scanner: они проще, имеют понятный интерфейс и быстро показывают открытые порты всех устройств в подсети. А TCPView от Sysinternals удобен, когда нужно в реальном времени наблюдать, какие соединения открывают программы.

⚠️ Внимание: сканируйте порты только на собственных устройствах и в сетях, где у вас есть разрешение администратора. Массовое сканирование чужих серверов может расцениваться как подготовка к атаке и нарушать правила провайдера или законодательство.

Как проверить порт пошагово: практическая инструкция

Разберём типовой сценарий: вы подняли локальный сервис (например, веб-сервер на порту 8080), но он недоступен с другого устройства. Порядок действий следующий.

☑️ Проверка доступности порта

Выполнено: 0 / 5

Сначала подтвердите, что служба вообще прослушивает порт: выполните netstat -ano | findstr :8080. Если строки нет — проблема в самом приложении, оно не запустилось или слушает другой порт. Если порт есть в состоянии LISTENING, переходите к брандмауэру: откройте «Брандмауэр Защитника Windows» → «Дополнительные параметры» → «Правила для входящих подключений» и проверьте, есть ли разрешающее правило.

Далее проверьте доступность с другого устройства в локальной сети через Test-NetConnection или telnet-клиент. Если внутри сети порт доступен, а из интернета — нет, причина почти наверняка в настройках роутера или в блокировке со стороны провайдера.

📊 Какой инструмент для проверки портов вы используете чаще всего?
Встроенный netstat / PowerShell
Nmap
Графический сканер (Advanced Port Scanner и подобные)
Онлайн-сервисы проверки портов

Онлайн-сервисы для проверки внешних портов

Отдельная категория инструментов — веб-сервисы, которые проверяют, виден ли порт из интернета. Принцип прост: вы вводите свой внешний IP-адрес (сервис обычно определяет его автоматически) и номер порта, а сервер пытается установить соединение с вашей стороны.

Такая проверка полезна именно для диагностики проброса портов: локальные утилиты не покажут, как выглядит ваш порт снаружи. Среди известных сервисов — 2ip.ru (проверка портов), canyouseeme.org, yougetsignal.com. Набор функций у них схож: определение внешнего адреса и попытка TCP-подключения к указанному порту.

Учитывайте ограничение метода: онлайн-сервис проверяет только TCP-порты и только тот адрес, с которого вы зашли на сайт. Если у вас несколько внешних интерфейсов или нужен UDP, потребуется другой подход — например, проверка с внешнего VPS или с мобильного интернета.

Как читать результаты: состояния портов

Сканеры и утилиты показывают порт в одном из нескольких состояний. Понимание этих статусов — ключ к правильной интерпретации результатов.

  • 🟢 Open (открыт) — порт прослушивается приложением и принимает соединения.
  • 🔴 Closed (закрыт) — хост доступен, но на порту никто не слушает; система отвечает отказом.
  • 🟡 Filtered (фильтруется) — пакеты блокируются брандмауэром или сетевым фильтром, хост не отвечает вовсе.
  • 👂 Listening — локальное состояние: процесс ожидает входящие подключения на этом порту.

Различие между «закрыт» и «фильтруется» важно на практике. Если порт фильтруется, проблема почти всегда в брандмауэре или сетевом экране, а не в приложении — искать неисправность нужно в правилах фильтрации, а не в настройках сервиса. Статус «закрыт», наоборот, указывает, что трафик доходит до машины, но принимать его некому.

⚠️ Внимание: не оставляйте открытыми порты, которые не используются. Каждый открытый порт — потенциальная точка входа. Закройте неиспользуемые службы и проверьте правила брандмауэра, особенно если компьютер напрямую подключён к интернету без роутера.

Типичные проблемы и их решения

Одна из самых частых жалоб — «порт открыт, но сервис недоступен». Возможная причина: приложение слушает только интерфейс 127.0.0.1 (localhost), а не внешний сетевой адрес. Проверить это можно по выводу netstat -ano: если в колонке локального адреса стоит 127.0.0.1:порт, подключения извне приниматься не будут. Решение — в настройках самого приложения указать прослушивание адреса 0.0.0.0 или конкретного внешнего интерфейса.

Вторая типичная ситуация — конфликт портов, когда два приложения пытаются занять один порт. Найдите процесс-«захватчика» по PID, завершите его или перенастройте одну из программ на другой порт. Обратите внимание: системные службы Windows могут занимать популярные порты, например служба веб-публикаций нередко занимает порт 80.

Третий сценарий — провайдерская блокировка. Некоторые провайдеры фильтруют входящие соединения на популярных портах или выдают «серый» IP-адрес за NAT, при котором проброс портов на домашнем роутере не даёт результата. Проверить это можно, сравнив свой внешний IP (его показывают онлайн-сервисы) с адресом на WAN-интерфейсе роутера: если они различаются, вероятно, вы за провайдерским NAT, и для внешнего доступа потребуется «белый» адрес или VPN с пробросом портов.

Какие порты чаще всего проверяют

21 — FTP, 22 — SSH, 25 — SMTP, 53 — DNS, 80 — HTTP, 443 — HTTPS, 3389 — RDP (удалённый рабочий стол Windows), 8080 — альтернативный HTTP. Порты 0–1023 называются общеизвестными (well-known), диапазон 1024–49151 — зарегистрированные, 49152–65535 — динамические.

FAQ: частые вопросы о проверке портов

Как узнать, какая программа занимает порт в Windows?

Выполните в командной строке от имени администратора netstat -ano | findstr :номер_порта, запомните PID из последней колонки, затем откройте «Диспетчер задач» на вкладке «Подробности» и найдите процесс с этим PID. Альтернатива — утилита TCPView, которая показывает привязку портов к процессам сразу.

Почему онлайн-сервис показывает, что порт закрыт, хотя программа запущена?

Наиболее вероятные причины: брандмауэр блокирует входящие соединения, на роутере не настроен проброс порта, приложение слушает только localhost, либо провайдер использует NAT и не пропускает входящий трафик. Проверяйте эти звенья по очереди, начиная с локального netstat.

Чем отличается проверка TCP-портов от UDP?

TCP-порт легко проверить попыткой установить соединение — ответ однозначен. UDP не устанавливает соединение, поэтому сканер часто не может достоверно отличить открытый порт от фильтруемого. Для UDP-диагностики используют Nmap с ключом -sU, но результат интерпретируется менее однозначно.

Безопасно ли сканировать порты?

Сканирование собственного компьютера и домашней сети полностью безопасно и законно. Сканирование чужих серверов без разрешения может нарушать правила провайдера и законодательство — ограничьтесь собственной инфраструктурой.

Нужно ли устанавливать программу, если есть netstat?

Для базовой диагностики — нет: netstat и PowerShell покрывают задачи «кто занял порт» и «доступен ли удалённый порт». Сторонние сканеры нужны, когда требуется опросить диапазон хостов, определить версии служб или наблюдать соединения в реальном времени через графический интерфейс.