Как посмотреть открытые порты на компьютере с Windows: консоль и PowerShell
Чтобы узнать, как посмотреть открытые порты на компьютере с Windows, используйте утилиту netstat или командлеты PowerShell. Эти инструменты выводят список активных соединений и занятых процессов.
Оглавление
Просмотр портов через командную строку
Наиболее универсальный метод, доступный во всех версиях ОС, — применение встроенной утилиты netstat.
| Ключ | Назначение |
|---|---|
-a | Отображает все активные TCP-соединения, а также TCP и UDP порты, ожидающие подключения. |
-n | Показывает адреса и порты в числовом виде без разрешения имен хостов, что ускоряет вывод. |
-o | Выводит идентификатор процесса (PID), который затем можно найти в диспетчере задач. |
-b | Показывает название исполняемого файла программы, использующей порт. |
Для выполнения команды с ключом -b требуются права администратора.
Для поиска конкретного порта применяется конвейер: netstat -ano | find ":номер_порта".
Использование PowerShell
В современных версиях системы рекомендуется применять штатные командлеты, предоставляющие структурированный вывод.
Команда Get-NetTcpConnection служит аналогом netstat. Она возвращает свойства соединений: локальный и удаленный IP-адрес, номер порта и текущее состояние. Поскольку вывод является объектным, результаты легко фильтруются через Where-Object или группируются по нужным параметрам.
Дополнительные методы проверки
- Telnet: Команда
telnet имя_сервера номер_портаприменяется для проверки возможности подключения к удаленному или локальному серверу. Этот метод тестирует именно сетевую связность, а не факт открытия порта локальным процессом. - Онлайн-сервисы: Специализированные веб-сайты позволяют проверить, виден ли порт из внешней сети (через NAT или роутер).
Частые ошибки
- Путаница между локальным прослушиванием и сетевой доступностью. Пользователи часто применяют
telnetили внешние веб-сервисы, чтобы узнать, запущен ли порт локальным приложением. Эти инструменты проверяют лишь возможность внешнего подключения или маршрутизацию через роутер, но не показывают список слушающих портов на самом ПК. - Отказ в доступе при определении процесса. Попытка узнать имя программы, занявшей порт, без повышения привилегий. Команда
netstat -bне вернет нужные данные без прав администратора. - Долгое ожидание вывода. Использование
netstatбез ключа-nзаставляет систему тратить время на разрешение DNS-имен для каждого IP-адреса.
FAQ
Как узнать, какая именно программа использует порт?
Запустите командную строку от имени администратора и выполните netstat -b. Альтернативный вариант — использовать netstat -o для получения PID и найти соответствующий процесс во вкладке «Подробности» диспетчера задач.
Можно ли фильтровать результаты в PowerShell?
Да, командлет Get-NetTcpConnection формирует объектный вывод. Это позволяет применять стандартные методы фильтрации PowerShell, такие как Where-Object, для выборки соединений по конкретному состоянию или локальному адресу.
Что делать, если нужно проверить порт на удаленной машине?
Используйте утилиту telnet, указав имя сервера и номер порта. Это позволит убедиться, что удаленный узел принимает подключения на заданном порту.