Как посмотреть кто занимает порт windows

При запуске новых сервисов в Windows, вы можете обнаружить что нужный порт уже занят (слушается) другой программой (процессом). Разберемся, как определить какая программ прослушивает определенный TCP или UDP порт в Windows.

Например, вы не можете запустить сайт IIS на стандартном 80 порту в Windows, т.к. этот порт сейчас занят (при запуске нескольких сайтов в IIS вы можете запускать их на одном или на разных портах). Как найти службу или процесс, который занял этот порт и завершить его?

Чтобы вывести полный список TCP и UDP портов, которые прослушиваются вашим компьютером, выполните команду:

netstat -aon| find "LIST"

Или вы можете сразу указать искомый номер порта:

netstat -aon | findstr ":80" | findstr "LISTENING"

Используемые параметры команды netstat:

  • a – показывать сетевые подключения и открытые порты
  • o – выводить идентфикатор професса (PID) для каждого подключения
  • n – показывать адреса и номера портов в числовом форматер

По выводу данной команды вы можете определить, что 80 порт TCP прослушивается (статус
LISTENING
) процессом с PID 16124.

netstat найти программу, которая заняла порт

Вы можете определить исполняемый exe файл процесса с этим PID с помощью Task Manager или с помощью команды:

tasklist /FI "PID eq 16124"

Можно заменить все указанные выше команды одной:

for /f "tokens=5" %a in ('netstat -aon ^| findstr :80') do tasklist /FI "PID eq %a"

С помощью однострочной PowerShell команды можно сразу получить имя процесса, который прослушивает:

  • TCP порт:
    Get-Process -Id (Get-NetTCPConnection -LocalPort 80).OwningProcess
  • UDP порт:
    Get-Process -Id (Get-NetUDPEndpoint -LocalPort 53).OwningProcess

powershell найти процесс, который слушает TCP порт

Можно сразу завершить этот процесс, отправив результаты через pipe в командлет Stop-Process:

Get-Process -Id (Get-NetTCPConnection -LocalPort 80).OwningProcess| Stop-Process

Проверьте, что порт 80 теперь свободен:

Test-NetConnection localhost -port 80

проверить что порт свободен

Чтобы быстрой найти путь к исполняемому файлу процесса в Windows, используйте команды:

cd /

dir tiny.exe /s /p

Или можно для поиска файла использовать встроенную команду where :

where /R C:\ tiny

В нашем случае мы нашли, что исполняемый файл
tiny.exe
(легкий HTTP сервер), который слушает 80 порт, находится в каталоге c:\Temp\tinyweb\tinyweb-1-94

команда позволяет найти путь к exe файу в windows

В Windows при запуске сервисов может возникнуть конфликт портов, если нужный порт уже занят другим процессом. Например, IIS не запустится на порту 80, если он используется. В этой статье расскажем, как определить, какая программа прослушивает TCP или UDP порт, с помощью netstat, PowerShell, tasklist и как освободить порт.

Приобрести оригинальные ключи активации Windows 11 можно у нас в каталоге от 1690 ₽

Поиск программы по порту с помощью netstat

1. Выведите все прослушиваемые порты:


netstat -aon | find "LIST"

Параметры:

-a: показывает все подключения и порты.

-o: отображает PID процесса.

-n: числовой формат адресов и портов.

2. Найдите процесс по конкретному порту (например, 80):


netstat -aon | findstr ":80" | findstr "LISTENING"

Пример вывода: порт 80 занят процессом с PID 16124.

3. Определите программу по PID:


tasklist /FI "PID eq 16124"

Вывод покажет имя исполняемого файла (например, tiny.exe).

4. Однострочная команда:


for /f "tokens=5" %a in ('netstat -aon ^| findstr :80') do tasklist /FI "PID eq %a"

Поиск программы с помощью PowerShell

1. Найдите процесс для TCP-порта:


Get-Process -Id (Get-NetTCPConnection -LocalPort 80).OwningProcess

2. Найдите процесс для UDP-порта:


Get-Process -Id (Get-NetUDPEndpoint -LocalPort 53).OwningProcess

3. Завершите процесс:


Get-Process -Id (Get-NetTCPConnection -LocalPort 80).OwningProcess | Stop-Process

4. Проверьте, свободен ли порт:


Test-NetConnection localhost -Port 80

Поиск пути к исполняемому файлу

1. Поиск файла по имени:


cd \
dir tiny.exe /s /p

2. Использование where:


where /R C:\ tiny

Пример: найдено c:\Temp\tinyweb\tinyweb-1-94\tiny.exe.

Устранение неполадок

Порт не отображается:

– Убедитесь, что процесс запущен (netstat -aon).

– Проверьте права администратора для PowerShell.

Конфликт портов:

– Завершите процесс (Stop-Process) или измените порт сервиса (например, в настройках IIS).

Файл не найден:

– Проверьте правильность имени файла в tasklist.

– Используйте where для поиска по всему диску.

Рекомендации

Безопасность: Завершайте только известные процессы, чтобы не нарушить работу системы.

Мониторинг: Используйте Resource Monitor (resmon) для визуального анализа сетевых подключений.

Автоматизация: Создайте скрипт для проверки портов:


$port = 80
$process = Get-Process -Id (Get-NetTCPConnection -LocalPort $port -ErrorAction SilentlyContinue).OwningProcess
if ($process) { Write-Output "Port $port used by $($process.ProcessName) (PID: $($process.Id))" } else { Write-Output "Port $port is free" }

Логи: Проверяйте Event Viewer (eventvwr) для анализа ошибок портов.

Определение программы, использующей порт в Windows, возможно через netstat, tasklist или PowerShell (Get-NetTCPConnection, Get-NetUDPEndpoint). Эти инструменты позволяют быстро найти процесс, завершить его или освободить порт. Использование PowerShell упрощает автоматизацию и предоставляет гибкость для анализа сетевых подключений.

Лицензионный ключ активации Windows от

Содержание статьи:

  • Типовые задачи и их решение
    • Вариант 1: смотрим список прослушиваемых портов + приложение (общий случай)
    • Вариант 2: а если наоборот — по названию приложения узнать порт
    • Вариант 3: исп-ем спец. приложения (более информативнее и быстрее)
  • Вопросы и ответы: 0

Доброго времени!

При запуске некоторого ПО/сервисов можно столкнуться с тем, что определенный порт в системе уже занят… какой-нибудь другой программой (скажем, настраиваете вы апач — и возникает конфликт порта 80. Например, на нем может «висеть/слушать» Skype…). Незадача…?

Собственно, в заметке приведу неск. способов, как можно относительно быстро узнать «кем» и «чем» заняты определенные порты — а это позволит быстро изменить их настройки и разрешить вопрос! (разумеется, приводить советы посмотреть описание установленного софта, в котором разработчики указывают порты — я не буду: ибо это долго, и не всегда продуктивно… 🙂).

*

Примечание:

  1. заметка носит информативный характер, и не явл. инструкцией в последней инстанции. Дело в том, что нередко встречаются не офиц. резервируемые порты… и, разумеется, точности здесь никакой быть не может;
  2. если у вас не получается подключиться к сетевым играм, есть проблемы с раздачей/загрузкой торрентов и пр. — ознакомьтесь с заметкой про проброс портов на роутере (это немного не по теме, но когда речь заходит об этом — очень часто приходится ссылаться на сию заметку).

*

Типовые задачи и их решение

Вариант 1: смотрим список прослушиваемых портов + приложение (общий случай)

По умолчанию в Windows есть консольная утилита netstat. Она позволяет посмотреть активные соединения протокола TCP/IP (в т.ч. там есть и порты).

*

Чтобы вывести полный список портов (TCP, UDP) нужно:

1) Запустить 📌командную строку от имени администратора.

2) Ввести команду Netstat –ao и нажать Enter.

(можно ее слегка изменить и использовать такую: netstat -aon| find «LISTENING»)

Примечание:

  • «-a» – см. все соединения и порты.
  • «-o» – см. числовые идентификаторы процесса, отвечающего за конкретное соединение (Process ID, сокращенно: PID).
  • «-n» – см. номера портов в числовом формате»;

img-Gde-tut-port-i-identifikator-sm.-skrin-ya-vyidelil.jpg

Где тут порт и идентификатор, см. скрин, я выделил // пример работы с командной строкой, команда netstat

📌 Для справки!

В списке, который предоставит нам команда Netstat, есть строки с аббревиатурами: «ESTABLISHED» и «LISTENING». В чем разница:

  • «ESTABLISHED» — означает, что в данный момент установлено соединение;
  • «LISTENING» — означает, что сокет ожидает соединения (в режиме прослушивания).

Причем, и тот и другой порты открыты, но один ожидает соединения, а другой уже установил соединение!

Например, протокол HTTP (это порт 80-й) находится в режиме прослушивания («LISTENING») до тех пор, пока кто-нибудь не зайдет на сервер. В тот момент, когда кто-нибудь будет загружать страницу — режим поменяется на «ESTABLISHED».

3) Например, понадобилось нам узнать какой процесс занял порт с идентификатором (PID) «5288» — вводим в командной строке tasklist | find «5288» и нажимаем Enter;

img-Vvodim-PID-i-smotrim-nazvanie-protsessa.jpg

Вводим PID и смотрим название процесса

4) Почти сразу же узнаем, что это фирменная утилита от производителя ноутбука ASUS (шла вместе с операционной системой Windows // инсталлируется автоматически при установке драйверов).

img-Asus.jpg

Asus

5) Кстати, если вам неудобно пользоваться командной строкой — то узнать название процесса и его расположение по PID можно в 📌диспетчере задач (Ctrl+Alt+Del): достаточно перейти во вкладку «Подробности».👇

img-Dispetcher-zadach-podrobnosti-sortirovka-po-ID-protsessu.jpg

Диспетчер задач — подробности — сортировка по ИД процессу

*

Вариант 2: а если наоборот — по названию приложения узнать порт

Относительно просто!

Находим нужный процесс в 📌диспетчере задач (вкладка «Подробности» для Windows 11). Узнаем его ИД (в моем случае 6216, взял для примера uTorrent).

img-uTorrent-ID-6216.jpg

uTorrent — ИД 6216

Далее в комодной строке набираем следующее:

netstat -aon| find «6216»

где вместо «6216» нужно указать свой ИД.

img-19411-port-ispolzuemyiy-uTorrent.jpg

19411 порт, используемый uTorrent

В результате определяем, что uTorrent слушает порт 19411

Кстати, в настройках uTorrent (если запустить саму программу) — можно тоже узнать и изменить этот порт на какой-нибудь другой.

img-Nastroyki-uTorrent-vyibor-porta.jpg

Настройки uTorrent — выбор порта

*

Вариант 3: исп-ем спец. приложения (более информативнее и быстрее)

📌 TCPView

Ссылка на сайт Microsoft: https://learn.microsoft.com/ru-ru/sysinternals/downloads/tcpview

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

Причем, список можно отсортировать по нужному вам столбцу + отфильтровать по какой-нибудь аббревиатуре. В общем, вещи удобная! См. скрин ниже. 👇

img-TCPView-spisok-prilozheniy-smotrim-vse-neobhodimyie-svoystva.jpg

TCPView — список приложений, смотрим все необходимые свойства

📌 CurrPorts

Ссылка на офиц. сайт: https://www.nirsoft.net/utils/cports.html#DownloadLinks

CurrPorts — еще одна сетевая утилита для просмотра сетевых подкл. В установке программа не нуждается, по информативности не уступает первой. Кстати, у утилиты есть рус. перевод (но скачать его нужно отдельно, есть на офиц. сайте).

img-CurrPorts-primer-ispolzovaniya.jpg

CurrPorts — пример использования

*

Дополнения по теме — приветствуются!

Успехов!

👋

ОСНОВНОЙ ТЕКСТ СТАТЬИ

Как определить каким процессом (программой) занят порт.

Требования.

Статья применима для Windows 2000/XP/Vista/7.

Информация.
При установке некоторых программ иногда возникает
проблема с доступностью порта. Т.е. вы устанавливаете программу, а она вам
говорит: «Извините, но предпочитаемый порт номер <такой
то> занят!». И самое интересное программа не говорит
чем или кем занят порт.

Как определить каким процессом (программой) занят порт.

1. В меню «Пуск»
выберите пункт «Выполнить«;
2. В поле «Открыть» наберите команду cmd
и нажмите кнопку «ОК»;

Откроется окно командной строки, примерно такого вида:

3. Наберите команду
netstat -ano и нажмите кнопку «Ввод» (Enter)
на клавиатуре;

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

4. Теперь
в колонке «Локальный адрес», находим нужный нам порт и записываем его
идентификатор в колонке «PID»;

Например порт номер 80, его
идентификатор 440.

5. Снова открываем меню «Пучк» и
выбираем пункт «Выполнить«;
6. В поле «Открыть» вводим команду  taskmgr и нажимаем кнопку
«ОК»;
7. В окне «Диспетчер задач Windows» переходим
на вкладку «Процессы«;
8. В главном меню открываем пункт «Вид» и выбираем пункт «Выбрать
столбцы…
«;
9. В окне «Выбор столбцов» находим пункт «Идентиф. процесса (PID)»
и ставим рядом с ним галочку;
10. Нажимаем кнопку «ОК»;
11. Теперь в окне «Диспетчер задач Windows«,
нажимаем на заголовок столбца «PID», для сортировки
процессов по возрастанию;
12. Находим номер нашего процесса 440 и в столбце «Имя образа«, смотрим какой
процесс занимает наш порт;

В нашем случаи это
Apache.exe

ICaR-Soft.ru (13.07.2016 10:57)


БОЛЬШОЕ спасибо!

MYcks (24.04.2016 13:33)


Просто и понятно объяснил. Спасибо!

Яр (16.03.2016 13:05)


Отлично! Спасибо, очень помогло

лИнивый (11.11.2015 17:18)


Ок спасибо! То что надо.

zguzga (21.10.2015 17:56)


+1 большое спасибо!

Alexstrigin (07.09.2015 20:55)


VELESTOR (26.08.2015 00:32)

Спасибо тебе добрый человек!!!

VELESTOR (26.08.2015 00:32)


Открываем 80-тый порт в Windows 7, 8, 10 за 5 секунд, нужно всего лишь перекинуть http.sys c IPv4 на IPv6.
Инструкция http://velestor.com/q/port80/
У меня Windows 10, помог только этот способ!

Понравилась статья? Поделить с друзьями:
0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
  • Можно ли не активировать windows server
  • Какой word самый лучший для windows 10
  • Графический интерфейс windows позволяет проводить операции над файлами с помощью мыши с помощью
  • Где найти все драйвера на windows 10
  • Как объединить файлы в командной строке windows