
При запуске новой службы или приложения в Windows вы можете обнаружить, что другая программа (процесс) уже заняла (прослушивает) порт, который вы хотите использовать. В этой статье мы расскажем вам, как узнать, какой процесс прослушивает определенный TCP- или UDP-порт в Windows.
Например, вы не можете запустить сайт IIS на стандартном порту 80, потому что этот порт в данный момент занят (если вы запускаете несколько сайтов в IIS, вы можете запускать их на одном или разных портах). Как же узнать, какая служба или процесс прослушивает порт, и уничтожить его?
Чтобы получить полный список TCP- и UDP-портов, которые прослушивает ваш компьютер, выполните следующую команду:
netstat -aon| find "LIST"
Или введите номер искомого порта:
netstat -aon | findstr ":80" | findstr "LISTENING"
- a — показать сетевые подключения и открытые порты
- o — показать идентификатор процесса (PID) для каждого соединения
- n — показать адреса и номера портов в числовом формате
Вывод этой команды показывает, что прослушивается TCP-порт 80 (LISTENING
состояние) процессом с PID 16124.
Вы можете определить исполняемый файл процесса по его PID с помощью диспетчера задач или следующей команды:
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
В нашем случае процесс tiny.exe прослушивает порт 80.
Определив процесс, вы можете немедленно завершить его, передав результаты в файл 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
.