Узнайте, какой процесс прослушивает определенный порт в Windows

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

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

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

netstat -aon| find "LIST"

Или введите номер искомого порта:

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

Параметры, используемые в команде netstat:

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

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

netstat - список открытых портов в windowsnetstat - список открытых портов в windows

Вы можете определить исполняемый файл процесса по его PID с помощью диспетчера задач или следующей команды:

tasklist /FI "PID eq 16124"

найти имя процесса по PIDнайти имя процесса по PID

Вы можете заменить все вышеперечисленные команды одним предложением:

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

В нашем случае процесс tiny.exe прослушивает порт 80.

powershell -find out which process is listening on a TCP or UDP portpowershell -find out which process is listening on a TCP or UDP port

Прочитайте статью о том, как использовать PowerShell для просмотра сетевых подключений в Windows.

Определив процесс, вы можете немедленно завершить его, передав результаты в файл 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найти exe файл в windows

Вы также можете использовать TCPView инструмент для просмотра списка процессов и TCP-портов, которые они прослушивают в Windows (https://learn.microsoft.com/en-us/sysinternals/downloads/tcpview).

TCPView - поиск процессов, прослушивающих порт в WindowsTCPView - поиск процесса, прослушивающего порт в Windows

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *