Какой процесс слушает порт в Windows
Чтобы вывести список TCP и UDP портов, которые прослушиваются, выполните команду:
netstat -aon| find "LIST"
Или вы можете сразу указать искомый номер порта:
netstat -aon | findstr ":80" | findstr "LISTENING"
Используемые параметры команды netstat:
- a – показывать сетевые подключения и открытые порты
- o – выводить идентфикатор професса (PID) для каждого подключения
- n – показывать адреса и номера портов в числовом форматер
По выводу данной команды можно определить PID процесса прослушивающего конкретный порт TCP
Можно определить файл процесса c конкретным PID при помощи диспетчера задач или с помощью комманды
tasklist /FI "PID eq 1820"
Можно заменить все указанные выше команды одной:
for /f "tokens=5" %a in ('netstat -aon ^| findstr :9400') 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
Можно сразу завершить этот процесс, отправив результаты через pipe в командлет Stop-Process:
Get-Process -Id (Get-NetTCPConnection -LocalPort 9400).OwningProcess| Stop-Process
Проверьте, что порт 9400 теперь свободен:
Test-NetConnection localhost -port 9400
Чтобы быстрой найти путь к исполняемому файлу процесса в Windows, используйте команды:
cd /
dir programm.exe /s /p
Или можно для поиска файла использовать встроенную команду where :
where /R C:\ programm
Также для просмотра списка процессов и используемых ими TCP портов в Windows можно использовать утилиту TCPView (https://learn.microsoft.com/en-us/sysinternals/downloads/tcpview).