Как узнать, какой процесс прослушивает порт в Windows? - PullRequest
1808 голосов
/ 07 сентября 2008

Как узнать, какой процесс прослушивает порт в Windows?

Ответы [ 28 ]

5 голосов
/ 11 августа 2013

Используйте следующие инструменты: - Из cmd : - C:\> netstat -anob с привилегией Администратор .

http://technet.microsoft.com/en-us/sysinternals/bb896653 - Process Explorer

http://technet.microsoft.com/en-us/sysinternals/bb896645 - дамп процесса

http://technet.microsoft.com/en-us/sysinternals/bb896644 - Монитор порта

Все от sysinternals.com

Если вы просто хотите узнать, какой процесс запущен и какие потоки находятся под каждым процессом, я рекомендую узнать о wmic. Замечательный инструмент cmd line, который дает вам гораздо больше, чем вы можете знать.

Экзамен: -

c:\> wmic process list brief /every:5

Приведенная выше команда будет показывать весь список процессов кратко каждые 5 секунд. Чтобы узнать больше, вы можете просто набрать команду /? windows, например, E.g,

c:\>wmic /?
c:\>wmic process /?
c:\>wmic prcess list /?

и так далее и тому подобное. :)

5 голосов
/ 25 августа 2016

Для тех, кто использует Powershell, попробуйте Get-NetworkStatistics:

> Get-NetworkStatistics | where Localport -eq 8000


ComputerName  : DESKTOP-JL59SC6
Protocol      : TCP
LocalAddress  : 0.0.0.0
LocalPort     : 8000
RemoteAddress : 0.0.0.0
RemotePort    : 0
State         : LISTENING
ProcessName   : node
PID           : 11552
4 голосов
/ 03 февраля 2019

Мне поможет решение с одной линией, просто замените 3000 своим портом

$P = Get-Process -Id (Get-NetTCPConnection -LocalPort 3000).OwningProcess; kill $P.Id

4 голосов
/ 05 ноября 2018

Программно вам нужны файлы из iphlpapi.h , например GetTcpTable2 (). Структуры типа MIB_TCP6ROW2 содержат PID владельца.

4 голосов
/ 28 декабря 2017

Использование Powershell ...
... это будет ваш друг (замените 8080 на номер вашего порта):

 netstat -abno | Select-String -Context 0,1 -Pattern 8080

Пример вывода

>   TCP    0.0.0.0:8080           0.0.0.0:0              LISTENING         2920
   [tnslsnr.exe]
>   TCP    [::]:8080              [::]:0                 LISTENING         2920
   [tnslsnr.exe]

Так что в этом примере tnslsnr.exe (база данных OracleXE) прослушивает порт 8080.

Быстрое объяснение
Select-String используется для фильтрации длинного вывода netstat для соответствующих строк.
-Pattern проверяет каждую строку на соответствие регулярному выражению.
-Context 0,1 будет выводить 0 начальных и 1 заднюю строки для каждого совпадения паттерна.

2 голосов
/ 09 мая 2019
  1. Открыть command prompt - start » run » cmd or start » All Programs » Accessories » Command Prompt.

  2. Тип

    netstat -aon | findstr '[port_number]'

Замените [номер_порта] фактическим номером порта, который вы хотите проверить, и нажмите Enter.

  1. Если порт используется каким-либо приложением, то будут показаны подробности этого приложения. Номер, который показан в последнем столбце списка, представляет собой PID (идентификатор процесса) этого приложения. Запишите это.
  2. Тип

    tasklist | findstr '[PID]'

Замените [PID] числом из вышеприведенного шага и нажмите ввод.

  1. Вам будет показано имя приложения, которое использует номер вашего порта.
1 голос
/ 04 мая 2018

Используйте ниже пакетный скрипт, который принимает имя процесса в качестве аргумента и выдает вывод netstat для процесса.

@echo off
set procName=%1
for /f "tokens=2 delims=," %%F in ('tasklist /nh /fi "imagename eq %1" /fo csv') do call :Foo %%~F
goto End

:Foo
set z=%1
echo netstat for : "%procName%" which had pid "%1"
echo ----------------------------------------------------------------------

netstat -ano |findstr %z%
goto :eof

:End
1 голос
/ 25 января 2017

Для Windows, если вы хотите найти материал, прослушивающий или подключенный к порту 1234, выполните следующее в командной строке:

netstat -na | find "1234"
...