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

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

Ответы [ 28 ]

22 голосов
/ 30 мая 2016

Очень просто получить номер порта из pid в windows.

Ниже приведены шаги:

1) Перейти к запуску -> введите cmd -> нажмите enter.

2) написать следующую команду ...

netstat -aon | findstr [port number]

(Примечание: не включайте квадратные скобки.)

3) нажмите ввод ...

4) Затем cmd сообщит вам подробности службы, работающей на этом порту, вместе с pid.

5) Откройте диспетчер задач, перейдите на вкладку службы и сравните pid с идентификатором команды cmd.

16 голосов
/ 25 января 2017

Просто откройте командную оболочку и введите: (скажем, ваш порт 123456)

netstat -a -n -o | find "123456"

Вы увидите все, что вам нужно

Заголовки:

 Proto  Local Address          Foreign Address        State           PID
 TCP    0.0.0.0:37             0.0.0.0:0              LISTENING       1111

это как указано здесь

13 голосов
/ 07 сентября 2008

Если вы хотите использовать инструмент GUI для этого, есть SysInternals TCPView .

12 голосов
/ 02 ноября 2016

В PowerShell 5 в Windows 10 или Windows Server 2016 выполните командлет Get-NetTCPConnection. Я думаю, что это также должно работать на старых версиях Windows.

Вывод по умолчанию Get-NetTCPConnection по какой-то причине не включает ID процесса, и это немного запутывает. Однако вы всегда можете получить его, отформатировав вывод. Недвижимость, которую вы ищете, это OwningProcess.

  • Если вы хотите узнать идентификатор процесса, который прослушивает порт 443, выполните эту команду:

    PS C:\> Get-NetTCPConnection -LocalPort 443 | Format-List
    
    LocalAddress   : ::
    LocalPort      : 443
    RemoteAddress  : ::
    RemotePort     : 0
    State          : Listen
    AppliedSetting :
    OwningProcess  : 4572
    CreationTime   : 02.11.2016 21:55:43
    OffloadState   : InHost
    
  • Отформатируйте вывод в таблицу со свойствами, которые вы ищете:

    PS C:\> Get-NetTCPConnection -LocalPort 443 | Format-Table -Property LocalAddress, LocalPort, State, OwningProcess
    
    LocalAddress LocalPort  State OwningProcess
    ------------ ---------  ----- -------------
    ::                 443 Listen          4572
    0.0.0.0            443 Listen          4572
    
  • Если вы хотите узнать имя процесса, выполните эту команду:

    PS C:\> Get-Process -Id (Get-NetTCPConnection -LocalPort 443).OwningProcess
    
    Handles  NPM(K)    PM(K)      WS(K)     CPU(s)     Id  SI ProcessName
    -------  ------    -----      -----     ------     --  -- -----------
    143      15     3448      11024              4572   0 VisualSVNServer
    
10 голосов
/ 14 декабря 2018

Чтобы узнать, какой конкретный процесс (PID) использует какой порт:

netstat -anon | findstr 1234

Где 1234 - PID вашего процесса. [Перейдите в диспетчер задач -> вкладка «Службы / процессы», чтобы узнать PID вашего приложения]

9 голосов
/ 13 марта 2014

netstat -ao и netstat -ab сообщают вам приложение, но если вы не являетесь администратором, вы получите «Запрошенная операция требует повышения прав».

Это не идеально, но если вы используете sysinternals Process Explorer, вы можете перейти к свойствам определенных процессов и посмотреть на вкладке TCP, чтобы увидеть, используют ли они интересующий вас порт. , но, может быть, это кому-нибудь поможет ...

9 голосов
/ 22 ноября 2016

Введите команду: netstat -aon | findstr :DESIRED_PORT_NUMBER

Например, если я хочу найти порт 80: netstat -aon | findstr :80

Этот ответ был первоначально отправлен в этой теме .

8 голосов
/ 23 сентября 2018

Netstat

  • -a отображает все порты подключения и прослушивания
  • -b отображает исполняемые файлы
  • -n стоп разрешить имена хостов (числовая форма)
  • - процесс владения

    netstat -bano | findstr "7002"

    netstat -ano> ano.txt

Currports инструмент помогает искать и фильтровать

8 голосов
/ 30 июня 2015

Я рекомендую CurrPorts от NirSoft.

CurrPorts может фильтровать отображаемые результаты. TCPView не имеет этой функции.

Примечание. Вы можете щелкнуть правой кнопкой мыши соединение сокета процесса и выбрать «Закрыть выбранные TCP-соединения» (Вы также можете сделать это в TCPView). Это часто устраняет проблемы с подключением к Outlook и Lync после переключения VPN. С помощью CurrPorts вы также можете закрывать соединения из командной строки с помощью параметра "/ close".

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

netstat -a -o Показывает PID процесса, запущенного на определенном порту.

Имейте в виду идентификатор процесса, перейдите на Диспетчер задач и вкладку служб или сведений и завершите процесс с тем же PID.

Таким образом, вы можете завершить процесс, запущенный на конкретном порту в Windows.

...