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

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


TCP

  Получить  -Process -Id (Get-NetTCPConnection -LocalPort YourPortNumberHere) .OwningProcess  

UDP

  Get-Process -Id (Get-  NetUDPEndpoint -LocalPort YourPortNumberHere) .OwningProcess  
  C: > netstat -a -b  

(Добавить -n , чтобы он не пытался разрешить имена хостов, что сделает его намного быстрее.)

Обратите внимание на рекомендацию Дэйна для TCPView. Выглядит очень полезным!

-a Отображает все подключения и порты прослушивания.

-b Отображает исполняемый файл, участвующий в создании каждого соединения или порта прослушивания. В некоторых случаях в хорошо известных исполняемых файлах размещается несколько независимых компонентов, и в этих случаях отображается последовательность компонентов, участвующих в создании соединения или порта прослушивания. В этом случае имя исполняемого файла находится в [] внизу, вверху — компонент, который он вызвал, и так далее, пока не будет достигнут TCP/IP. Обратите внимание, что этот параметр может занять много времени и завершится ошибкой, если у вас нет достаточных разрешений.

-n Отображает адреса и номера портов в числовой форме.

-o Отображает идентификатор процесса-владельца, связанный с каждым подключением.


2372

Есть собственный графический интерфейс для Windows:

  • Меню Пуск → Все Программы Стандартные Системные инструменты Монитор ресурсов

Или Запустите resmon.exe , или на вкладке производительности диспетчера задач .

Улучшите этот ответ
отредактировано 13 ноября ’19 в 9:32
Peter Mortensen
27.4k2121 золотых знака9393 серебряных знака123123 бронзовых знака
ответил 18 мая ’14 в 5:02
  • 42
    Также показывает привязку статус брандмауэра (последний столбец). Очень практично. — Рафаэль 02 июля ’14 в 17:34
  • 8
    Вы должны быть администратором (или входить в эту группу), чтобы запустить этот. — КришПрабакар, 04 янв., В 7:40
  • 2
    @bcorso, что значит привязка к «неуказанному адресу»? — Pacerier, 22 янв. ’16 в 14:36 ​​
  • 6
    Также может быть запущен из вкладки «Производительность» диспетчера задач, по крайней мере, в Windows 10. (Не проверял другие версии.) — Матье К. 9 окт. 55
  • 10
    Комментарий @ user4836454 выше НЕ является правильным: монитор ресурсов ДЕЙСТВИТЕЛЬНО показывает порты со слушателями, даже если нет сетевого подключения к этим портам. Просто загляните в раздел «Прослушивание портов» вместо раздела «TCP-соединения». — Jpsy 28 дек. ’17 в 09:27
| показать 5 дополнительных комментариев

Есть собственный графический интерфейс для Windows:

  • Меню «Пуск» → Все программы Стандартные Системные инструменты Ресурс Монитор

Или Запустить resmon.exe , или из Задачи Вкладка «Производительность» менеджера .


252

Используйте TCPView, если вам нужен графический интерфейс для этого. Это старое приложение Sysinternals, которое выкупила Microsoft.

Улучшите этот ответ
отредактировано 13 ноября ’19 в 9:21
Peter Mortensen
27.4k2121 золотой знак9393 серебряных знака123123 бронзовых знака
ответил 7 сентября ’08 в 06:38
  • 9
    На мой взгляд, это лучший вариант, тем более что все процессы находятся в одном списке, и вы можете закрыть процессы напрямую, щелкнув их правой кнопкой мыши. — Андреас Лундгрен, 18 янв., В 8:23
  • 8
    Кроме того, это не требует привилегий администратора! — Янак Мина 9 фев. ’18 в 18:34
добавить комментарий |

Используйте TCPView, если вам нужен графический интерфейс для этого. Это старое приложение Sysinternals, купленное Microsoft..


251

Для Windows:

  netstat -aon |  find/i "прослушивание"  

Улучшите этот ответ
отредактировано 9 августа ’19 в 20:30
xash
3,09388 серебряных знаков1919 бронзовых знаков
ответил 7 сентября ’08 в 06:32
  • 31
    +1 Но имейте в виду, если ваши окна работают на языке, отличном от английского, вы Придется поменять «слушание» на родной термин. Например. netstat -aon | find/i "abhören" для немецкого. — Левит, 30 июн. 2014, 10:29
  • 5
    В моем случае это не сработало, возможно, из-за знака кавычек, но решение netstat -aon | findstr LISTENING отлично работает! — Крестный отец 17 ноября 2015, 16:07
  • Это работает, не требуя повышенных привилегий. — Влад Шнаковски 02 окт. 2017, в 16:02
  • 1
    Я получаю сообщение об ошибке при попытке запустить эту команду на W10 15063.729 с помощью PowerShell: НАЙТИ: неверный формат параметра — Ник Манарин, 22 дек. ’17 в 18:05
  • 3
    Как этот ответ имеет отношение к «выяснению, какой процесс [имя] прослушивает порт в Windows?» — Павел Чох, 16 апр. ’19 в 19:56
| показать 1 дополнительный комментарий

Для Windows:

  netstat -aon |  find/i "прослушивание"  

166

Переключатель -b, упомянутый в большинстве ответов, требует, чтобы у вас были права администратора на машине. Вам действительно не нужны повышенные права для получения имени процесса!

Найдите pid процесса, запущенного в номере порта (например, 8080)

  netstat -ano |  findStr "8080"  

Найти имя процесса по pid

  tasklist/fi "  pid eq 2216 " 

Улучшите этот ответ
отредактировал 19 июля ’18 в 11:24
Jaywalker
2,84733 золотых значка 2727 серебра 4141 бронзовый знак
ответил 24 января ’18 в 3:50
добавить комментарий |

Переключатель -b, упомянутый в большинстве ответов, требует, чтобы у вас были права администратора на машине. На самом деле вам не нужны повышенные права для получения имени процесса!

Найдите pid процесса, запущенного в номере порта (например, 8080).

  netstat -ano | findStr "8080"  

Найдите имя процесса по pid

  tasklist/fi "pid eq 2216"  


89

Вы можете получить дополнительную информацию, если выполните следующую команду:

  netstat -aon |  find/i "прослушивание" | find "порт"  

с помощью команды «Найти» позволяет фильтровать результаты. find/i "прослушивание" отобразит только порты, которые «прослушивают». Обратите внимание, что для игнорирования регистра вам понадобится /i , иначе вы наберете find «LISTENING». | find «порт» ограничит результаты только теми, которые содержат конкретный номер порта. Обратите внимание, что при этом он также будет фильтровать результаты, которые имеют номер порта где угодно в строке ответа.

Улучшите этот ответ
отредактировано 13 ноября ’19 в 9:28
Peter Mortensen
27.4k2121 золотой знак9393 серебряных знака123123 бронзовых знака
ответил 08 октября 2013 в 18:56
  • 8
    Попытка FWIW запустить это в PowerShell v2.0 выдает ошибку НАЙТИ: неверный формат параметра . Вам нужно добавить пробел после критериев поиска. В результате вы получите netstat -aon | найти/я "слушаю" | найдите "1234" . — себя. 25 авг., 13:16
  • 2
    Замените «порт» на свой порт, например «5000» — jbooker 17 июня ’17 в 23:58
  • 1
    @self. Я все еще получаю эту ошибку с PS 5.1, даже после добавления пробела после трубы. Вы знаете, что происходит? — Ник Манарин, 22 дек. ’17 в 18:11
  • 3
    @NickeManarinin & @self либо сначала смените powershell на cmd (просто введите cmd и нажмите Enter, затем повторите команду), либо в PowerShell вместо этого используйте эту команду: netstat -aon | find/i « {обратная галочка} «прослушивание {обратная галочка} » «| найти» {обратная галочка} «порт {обратная галочка} «» ( обратная галочка , поскольку я не могу добавить фактический символ, поскольку он считает, что это обрезка) — Тристан ван Дам 05 мар. ’18 в 06:37
добавить комментарий |

Вы можете получить дополнительную информацию, если выполните следующую команду:

  netstat -  аон |  find/i "прослушивание" | find "порт"  

с помощью команды «Найти» позволяет фильтровать результаты. find/i "прослушивание" отобразит только порты, которые «прослушивают». Обратите внимание, что для игнорирования регистра вам понадобится /i , иначе вы наберете find «LISTENING». | find «порт» ограничит результаты только теми, которые содержат конкретный номер порта. Обратите внимание, что при этом он также будет фильтровать результаты, которые имеют номер порта где угодно в строке ответа.


79
  1. Откройте окно командной строки (как администратор). В «Пуск Поле поиска» введите «cmd», затем щелкните правой кнопкой мыши » cmd.exe «и выберите» Запуск от имени администратора «

  2. Введите следующий текст и нажмите Enter.

    netstat -abno

    -a Отображает все подключения и порты прослушивания.

    — b Отображает исполняемый файл, участвующий в создании каждого подключения или порта прослушивания. В некоторых случаях в хорошо известных исполняемых файлах размещается несколько независимых компонентов, и в этих случаях отображается последовательность компонентов, участвующих в создании соединения или порта прослушивания. В этом случае имя исполняемого файла находится в [] внизу, вверху — компонент, который он вызвал, и так далее, пока не будет достигнут TCP/IP. Обратите внимание, что использование этого параметра может занять много времени и завершится ошибкой, если у вас нет достаточных разрешений.

    -n Отображает адреса и номера портов в числовой форме..

    -o Отображает идентификатор процесса-владельца, связанный с каждым подключением.

  3. Найдите Порт, который вы слушаете под «Локальным адресом»

  4. Посмотрите на имя процесса прямо под ним.

ПРИМЕЧАНИЕ. Чтобы найти процесс в диспетчере задач

  1. Обратите внимание на PID (идентификатор процесса) рядом с портом, на который вы смотрите.

  2. Откройте диспетчер задач Windows.

  3. Выберите вкладку «Процессы».

  4. Найдите PID, который вы отметили, когда выполняли netstat на шаге 1.

    • Если вы не видите столбец PID, нажмите View/Select Columns. Выберите PID.

    • Убедитесь, что выбран параметр «Показать процессы от всех пользователей».

Улучшите этот ответ
отредактировано в мае 15 ’17 в 2:41
ответил 8 ноября ’12 в 1:49
добавить комментарий |

  1. Открыть окно командной строки (как администратор) из «Пуск Поле поиска» Enter » cmd «, затем щелкните правой кнопкой мыши» cmd.exe «и выберите» Запуск от имени администратора «

  2. Введите следующий текст и нажмите Enter.

    netstat -abno

    -a Отображает все подключения и порты прослушивания.

    -b Отображает исполняемый файл, участвующий в создании каждого соединения или прослушивающего порта. В некоторых случаях в хорошо известных исполняемых файлах размещается несколько независимых компонентов, и в этих случаях отображается последовательность компонентов, участвующих в создании соединения или порта прослушивания. В этом случае имя исполняемого файла находится в [] внизу, вверху — компонент, который он вызвал, и так далее, пока не будет достигнут TCP/IP. Обратите внимание, что этот параметр может занять много времени и завершится ошибкой, если у вас нет достаточных разрешений.

    -n Отображает адреса и номера портов в числовой форме.

    -o Отображает идентификатор процесса-владельца, связанный с каждым подключением.

  3. Найдите порт, который вы слушают под «Локальным адресом»

  4. Посмотрите на имя процесса прямо под ним.

ПРИМЕЧАНИЕ. Чтобы найти процесс в диспетчере задач

  1. Обратите внимание на PID (идентификатор процесса) рядом с портом, на который вы смотрите.

  2. Откройте диспетчер задач Windows.

  3. Выберите вкладку «Процессы».

  4. Найдите PID, который вы отметили при выполнении netstat на шаге 1.

    • Если вы не видите столбец PID, нажмите View/Select Columns. Выберите PID.

    • Убедитесь, что установлен флажок «Показать процессы от всех пользователей».


58

Получить PID и имя изображения

Используйте только одну команду:

  for/f "tokens = 5"% a in ('netstat -aon ^ | findstr 9000') do tasklist/FI "PID  eq% a " 

где 9000 следует заменить на номер вашего порта.

output будет содержать что-то вроде этого:

  Имя изображения PID Имя сеанса # Использование памяти ===============  ========== ======== ================ =========== =====  ======= java.exe 5312 Services 0 130 768 K  

Пояснение:

  • он выполняет итерацию по каждой строке вывода следующей команды:

      netstat -aon |  findstr 9000  
  • из каждой строки, PID (% a — имя здесь не важно) извлекается (PID — это элемент 5 th в этой строке) и передается следующей команде

      список задач/FI "PID eq 5312"  

Если вы хотите пропустить header и возврат командной строки , вы можете использовать:

  echo off & (для /f "tokens = 5"% a in ('netstat -aon ^ | findstr 9000') do tasklist/NH/FI "PID eq% a") и включить эхо  

  java.exe 5312 Services 0 130 768 K  

Улучшить этот ответ
отредактировал 10 февраля ’16 в 17:56
ответил 10 фев ’16 в 1 0:17
  • 2
    Хороший ответ, но вы должны изменить его на findstr: 9000 , если нет, вы даже найдете приложения, которые содержат номер (например, при поиске «80» вы найдете приложения и на портах 80, 800, 8000). — Radon8472 4 фев. ’19 в 14:16
добавить комментарий |

Получить PID и имя изображения

Используйте только одну команду:

   for/f "tokens = 5"% a in ('netstat -aon ^ | findstr 9000') do tasklist/FI "PID eq% a"  

где 9000 следует заменить на номер вашего порта.

вывод будет содержать что-то вроде этого:

  Имя изображения PID Имя сеанса Session # Mem Usage =  ======================== ======== ================ ==  ========= ============ java.exe 5312 Services 0 130 768 КБ  

Объяснение:

  • выполняется итерация по каждой строке вывода следующей команды:

      netstat -aon |  findstr 9000  
  • из каждой строки, PID (% a — имя здесь не важно) извлекается (PID — это элемент 5 th в этой строке) и передается следующей команде

      список задач/FI "PID eq 5312"  

Если вы хотите пропустить header и возврат командной строки , вы можете использовать:

  echo off & (для /f "tokens = 5"% a in ('netstat -aon ^ | findstr 9000') do tasklist/NH/FI "PID eq% a") и включить эхо  

  java.exe 5312 Services 0 130 768 K  

52

Сначала мы находим идентификатор процесса этой конкретной задачи, которую нам нужно устранить, чтобы получить порт свободен:

Тип

  netstat -n -a -o  

После выполнения этой команды в командной строке Windows (cmd) выберите pid, который, по моему мнению, является последним столбцом. Предположим, это 3312.

Теперь введите

  taskkill/F/PID 3312  

You теперь можно выполнить перекрестную проверку, набрав команду netstat .

ПРИМЕЧАНИЕ: иногда Windows не позволяет запускать эту команду непосредственно в CMD, поэтому сначала вам нужно выполните следующие действия:

Из меню «Пуск» -> командная строка (щелкните правой кнопкой мыши командную строку и запустите от имени администратора)

Улучшить этот ответ
отредактировал 13 ноября ’19 в 9:35
Питер Мортенсен
27,4k2121 золота 9393 серебряных знака123123 бронзовых знака
ответил 23 авг. # div>
добавить комментарий |

Сначала мы находим идентификатор процесса той конкретной задачи, которую нам нужно устранить, чтобы освободить порт:

Введите

  netstat -n -a -o  

После выполнения этой команды в командной строке Windows ( cmd), выберите pid, который я думаю, последний столбец. Предположим, это 3312.

Теперь введите

  taskkill/F/PID 3312  

Теперь вы можете перекрестную проверку набрав команду netstat .

ПРИМЕЧАНИЕ: иногда Windows не позволяет запускать эту команду непосредственно в CMD, поэтому сначала вам нужно выполнить следующие действия:

Из меню «Пуск» -> командная строка (щелкните правой кнопкой мыши командную строку и запустите от имени администратора)


33

Чтобы получить список всех идентификаторов процессов-владельцев, связанных с каждым подключением:

  netstat -ao | find/i "прослушивание"  

Если вы хотите убить любой процесс, укажите идентификатор и используйте эту команду, чтобы порт стал свободным

  Taskkill/F/IM PID процесса  

Улучшите этот ответ
отредактировано ноябрь 13 ’19, 9:30
Peter Mortensen
27.4k2121 золотых знака9393 серебряных знака123123 бронзовых знака
ответил 17 апр. ’14 в 17: 382014-04-17 17:38
  • 1
    это не учитывает прослушивание портов UDP — evandrix 2 декабря 2018 г., 20:30
добавить комментарий |

Чтобы получить список всех идентификаторов процессов-владельцев, связанных с каждым подключением:

  netstat -ao | find/i "прослушивание"  

Если вы хотите убить любой процесс, укажите идентификатор и используйте эту команду, чтобы порт стал свободным

  Taskkill/F/IM PID процесса  

29

Получить номер порта из PID в Windows очень просто.

Следующие шаги:

  1. Перейти к запуску → введите cmd → нажмите , введите .

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

      netstat -aon |  findstr [номер порта]  

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

  3. Нажмите Enter

  4. Затем cmd предоставит вам подробную информацию о службе, запущенной на этом порту, вместе с PID.

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

Улучшите этот ответ
отредактировано 13 ноября ’19 в 9:37
Peter Mortensen
27.4k2121 золотой знак9393 серебряных знака123123 бронзовых знака
ответил 30 мая ’16 в 06:36
добавить комментарий |

Получить номер порта из PID в Windows очень просто.

Следующие шаги:

  1. Перейти к запуску → введите cmd → нажмите , введите.

  2. Напишите следующую команду …

      netstat -aon | findstr [номер порта]  

    (Примечание: Don без квадратных скобок.)

  3. Нажмите , введите

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

  5. Откройте диспетчер задач и нажмите Сервисная вкладка и сопоставьте PID с идентификатором cmd, и все.


22

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

  netstat -  анон |  findstr 1234  

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

Улучшите этот ответ
отредактировано 13 ноября ’19 в 9:46
Peter Mortensen
27.4k2121 золотой знак9393 серебряных знака123123 бронзовых знака
ответил 14 декабря ’18 в 18:55
  • 2
    Следует отметить, что вам не нужно устанавливать дважды флаг -n . -ano достаточно. — mwieczorek 29 мар. ’19 в 18:56
добавить комментарий |

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

   netstat -anon |  findstr 1234  

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


22

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

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

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

      PS C: > Get-NetTCPConnection -LocalPort 443 |  Format-List LocalAddress: :: LocalPort: 443 RemoteAddress: :: RemotePort: 0 Состояние: 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 Слушать 4572 0.0.0.0 443 Слушать 4572  
  • Если вы хотите узнать имя процесса, запустите эту команду:

      PS C: > Get-Process -Id (Get-NetTCPConnection -LocalPort 443) .OwningProcess обрабатывает NPM (K) PM (K) WS (K  ) Идентификатор процессора (ов) SI Имя процесса ------- ------ ----- ----- ------ - - ---------  - 143 15 3448 11024 4572 0 VisualSVNServer  
Улучшите этот ответ

отредактировано 4 сентября ’20 в 10:00
ответил 2 ноября ’16 в 19:19
добавить комментарий |

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

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

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

      PS C: > Get-NetTCPConnection -LocalPort 443 |  Format-List LocalAddress: :: LocalPort: 443 RemoteAddress: :: RemotePort: 0 Состояние: 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 Слушать 4572 0.0.0. 0 443 Listen 4572  
  • Если вы хотите узнать имя процесса, запустите эту команду:

      PS C: > Get-Process -Id (Get-NetTCPConnection -LocalPort 443) .OwningProcess обрабатывает NPM (K) PM (K) WS (K) Идентификатор процессора (ов) SI ProcessName ----  --- ------ ----- ----- ------ - - ----------- 143 15 3448 11024 4572 0 VisualSVNServer  

19

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

  netstat -a -n -o |  найдите "123456"  

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

Заголовки:

  Proto Local Address Внешний адрес PID состояния TCP 0.0.0.0:37 0.0.0.0:0 LISTENING 1111  

Это как упомянуто здесь.

Улучшите этот ответ
отредактировал 13 ноября ’19 в 9:42
Питер Мортенсен
27.4k2121 золотой знак9393 серебряных знака123123 бронзовых знака
ответил 25 янв. 13
  • 1
    FYI/для всех, кто интересуется: это либо findstr 123456 (без кавычек) или find "123456" (в кавычках). (@Josh) — Кевин Кройссен, 13 июня ’18 в 15:05
добавить комментарий |

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

  netstat -a -n -o |  найдите "123456"  

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

Заголовки:

  Proto Local Address Внешний адрес PID состояния TCP 0.0.0.0:37 0.0.0.0:0 LISTENING 1111  

Это как упомянуто здесь.


16

Если вы хотите использовать для этого инструмент с графическим интерфейсом, есть TCPView от Sysinternals .

Улучшите это ответ
изменён 13 ноя ’19 в 9:21
Питер Мортенсен
27. 4k2121 золотой знак9393 серебряных знака123123 бронзовых знака
ответ дан 7 сен ’08 в 06:40
добавить комментарий |

Если вы хотите использовать для этого инструмент с графическим интерфейсом, есть TCPView от Sysinternals.


15

Netstat:

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

      netstat -bano |  findstr "7002" netstat -ano> ano.txt 

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

Улучшить этот ответ
отредактировал 13 ноября ’19 в 9:45
Питер Мортенсен
27.4k2121 золотых знака9393 серебряных знака123123 бронзовых знака
ответил 23 сен. 05
добавить комментарий |

Netstat:

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

      netstat -bano |  findstr "7002" netstat -ano> ano.txt 

Инструмент Currports помогает выполнять поиск и фильтрацию


15
  1. Откройте командную строку — start → Выполнить cmd или меню «Пуск» → Все программы Стандартные Командная строка .

  2. Тип

      netstat -aon |  findstr '[port_number]'  

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

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

      список задач |  findstr '[PID]'  

Замените [PID] номером из предыдущего шага и нажмите Enter .

  1. Вам будет показано имя приложения, которое использует ваш номер порта.
Улучшите этот ответ
отредактировал 13 ноября ’19 в 9:48
Peter Mortensen
27.4k2121 золотой знак9393 серебряных знака123123 бронзовых знака
ответил 9 мая ’19 в 12:18
  • 3
    В Win 10: ваша команда на шаге 2 и шаге 4 не будет работать, если вы не замените простые кавычки двойными кавычками . Следует сказать netstat -aon | findstr «[port_number]» — Леонардо Лопес 6 июня ’19 в 18:34
  • Это решение не требует повышенных разрешений. Ткс! — Totalys 24 апр. ’20 в 18:15
добавить комментарий |

  1. Откройте командную строку — запуск → Выполнить cmd или меню «Пуск» → Все программы Стандартные Командная строка .

  2. Тип

      netstat -aon |  findstr '[port_number]'  

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

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

      список задач |  findstr '[PID]'  

Замените [PID] номером из предыдущего шага и нажмите Enter .

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

14

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

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

Изначально этот ответ был опубликован на этот вопрос.

Улучшите этот ответ
отредактировано 13 ноября ’19 в 9:40
Peter Mortensen
27.4k2121 золотых знака9393 серебряных знака123123 бронзовых знака
ответил 22 ноября ’16 в 15:36
добавить комментарий |

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

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

Этот ответ изначально был опубликован на этот вопрос.


11

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

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

Улучшите этот ответ
отредактировано 13 ноября ’19 в 9:30
Питер Мортенсен
27,4k2121 золотых значков9393 серебряные знаки123123 бронзовых знака
13 марта ’14 в 22: 57
  • Если вы не администратор, вы не сможете использовать Process Проводник (или даже Диспетчер задач Windows> Диспетчер ресурсов), чтобы получить эту информацию из любого процесса, который вам не принадлежит. — Абель 25 янв., 2017 в 11:52
добавить комментарий |

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

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


10

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

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

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

Улучшите этот ответ
отредактировано 2 ноября ’17 в 17:37
ответил 29 июня 2015 в 22:07
добавить комментарий |

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

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

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


9

Это однострочное решение, которое мне помогает. Просто замените 3000 своим портом:

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

Edit: изменено kill на Stop-Process для большего количества PowerShell- как язык

Улучшить этот ответ
отредактировал 16 дек. ’19 в 21:27
ответил 03 февраля ’19 в 14:46
  • 6
    Вероятно, вы не захотите автоматически убивать процесс. Я бы отделил эту команду kill и объяснил ее. Не хочу, чтобы какой-то плохой пользователь скопировал это, не подумав внимательно. — TinkerTenorSoftwareGuy 19 фев., 20:27
  • 1
    А если вы собираетесь использовать полное решение PowerShell, измените kill на Stop-Process Get-Process -Id (Get-NetTCPConnection -LocalPort 3000) .OwningProcess | Остановить процесс — CubanX, 13 дек. ’19 в 16:02
добавить комментарий |

Это однострочное решение, которое мне помогает. Просто замените 3000 своим портом:

  $ P = Get-Process -Id (Get-NetTCPConnection -LocalPort 3000) .OwningProcess;  Остановить процесс $ P. Идентификатор  

Edit: изменен kill на Stop-Process для более похожего на PowerShell языка


8

Следуйте этим инструментам: Из cmd : C: > netstat -anob с правами администратора .

Process Explorer

Дамп процесса

Монитор порта

Все с sysinternals.com.

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

Пример:

  c: > wmic process  listrief/every: 5  

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

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

И так далее и тому подобное. 🙂

Улучшить этот ответ
отредактировано 26 авг. в 19:07
Вики сообщества

4 версии, 3 пользователя 63%
Perl Fanatic
  • PortMon (ссылка позади монитора портов) предназначен для мониторинга последовательных и параллельных портов, не сетевые порты. — Джеймс 02 июня ’20 в 23:35
добавить комментарий |

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

Process Explorer

Process Dump

Port Monitor

Все с sysinternals.com.

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

Пример:

  c: > wmic process  listrief/every: 5  

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

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

И так далее и тому подобное. 🙂


7

Используйте:

  netstat -a -o  

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

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

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

Улучшите этот ответ
отредактировал 13 ноября ’19 в 9:27
Peter Mortensen
27.4k2121 золотой знак9393 серебряных знака123123 бронзовых знака
ответил 13 августа 2013, 02:32
добавить комментарий |

Используйте:

  netstat -a -o  

Здесь отображается PID процесса, запущенного на определенном порту.

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

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


7

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

 > Get-NetworkStatistics |  где Localport -eq 8000ComputerName: DESKTOP-JL59SC6Protocol: TCPLocalAddress: 0.0.0.0LocalPort: 8000RemoteAddress: 0.0.0.0RemotePort: 0State: LISTENINGProcessName: nodePID: 11552  

div>
Улучшить этот ответ
отредактировал 13 ноября ’19 в 9:39
Питер Мортенсен
27.4k2121 золотые знаки9393 серебряных знака123123 бронзовых знака
ответ дан

25 авг.

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

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

  > Get-NetworkStatistics |  где Localport -eq 8000ComputerName: DESKTOP-JL59SC6Protocol: TCPLocalAddress: 0.0.0.0LocalPort: 8000RemoteAddress: 0.0.0.0RemotePort: 0State: LISTENINGProcessName: nodePID: 11552  

# div>

6

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

Улучшите этот ответ
ответил 05 ноя., 18:16
добавить комментарий |

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


6

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

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

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

 >  TCP 0.0.0.0:8080 0.0.0.0:0 ПРОСЛУШИВАНИЕ 2920 [tnslsnr.exe]> TCP [::]: 8080 [::]: 0 ПРОСЛУШИВАНИЕ 2920 [tnslsnr.exe]  

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

Краткое объяснение

  • Select-String используется для фильтрации длинного вывода netstat для соответствующих строк.
  • -Pattern проверяет каждую строку на соответствие регулярному выражению.
  • -Context 0,1 выводит 0 ведущих строк и 1 завершающую строку для каждой соответствие шаблону.
Улучшите этот ответ
отредактировал 13 ноября ’19 в 9:43
Питер Мортенсен
27,4k2 Ответ дан 121 золотой знак9393 серебряных знака123123 бронзовых знака
28 дек.’17 в 12:06
добавить комментарий |

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

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

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

 >  TCP 0.0.0.0:8080 0.0.0.0:0 ПРОСЛУШИВАНИЕ 2920 [tnslsnr.exe]> TCP [::]: 8080 [::]: 0 ПРОСЛУШИВАНИЕ 2920 [tnslsnr.exe]  

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

Краткое объяснение

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

4

Чтобы найти pid, который использует порт 8000

   netstat -aon |  findstr '8000'  

Чтобы убить этот процесс в Windows

  taskkill/pid pid/f  

, где pid — это идентификатор процесса, который вы получаете от первой команды

Улучшите этот ответ
ответил 14 июля ’20 в 6:13
  • 1
    netstat -aon | findstr 8000. Цитировать указывать не нужно. — Али Расули 11 окт. ’20 в 17:28
добавить комментарий |

Чтобы найти pid, использующий порт 8000

  netstat -aon |  findstr '8000'  

Чтобы убить этот процесс в Windows

  taskkill/pid pid/f  

, где pid — это идентификатор процесса, который вы получаете от первой команды


3

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

  netstat  -na |  найти "1234"  

Улучшите этот ответ
ответил 24 января ’17 в 21:10
добавить комментарий |

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

  netstat -na |  найти "1234"  

2

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

  @echo offset procName =% 1for/f "tokens = 2 delims =," %% F in ('tasklist/nh/fi "imagename eq% 1"/fo  csv ') do call: Foo %% ~ Fgoto End: Fooset z =% 1echo netstat для: "% procName%" с pid "% 1" echo ----------------  --------------------------------------------------  ---- netstat -ano | findstr% z% goto: eof: End  

Улучшите этот ответ
отредактировано 13 ноября ’19 в 9:45
Peter Mortensen
27.4k2121 золотой знак9393 серебряных знака123123 бронзовых знака
ответил 4 мая ’18 в 18:15
добавить комментарий |

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

  @echo offset procName =% 1for/f "tokens = 2 delims =," %% F in ('tasklist/nh/fi "imagename eq% 1" /fo csv ') do call: Foo %% ~ Fgoto End: Fooset z =% 1echo netstat для: "% procName%" с pid "% 1" echo --------------  --------------------------------------------------  ------ netstat -ano | findstr% z% goto: eof: End  

2

Если кому-то нужен эквивалент для macOS, вот он:

lsof -i tcp: 8080

После того, как вы получите PID процесса, вы можете убить его с помощью:

kill -9

Улучшите этот ответ

v>

отредактировано 18 декабря ’20 в 3:37
ответил 12 августа ’20 в 11:22
добавить комментарий |

Если кому-то нужен эквивалент для macOS, вот он:

lsof -i tcp: 8080

Получив PID процесса, вы можно убить его с помощью:

kill -9



В Windows как проверить, открыт ли удаленный порт с помощью командной строки?

Каков простой способ в Windows проверить, проходит ли трафик на определенный порт на удаленной машине?


На днях я обнаружил гем hiddem от Microsoft, предназначенный для тестирования портов:

Portqry.exe

«Portqry.exe — это служебная программа командной строки, которую можно использовать для устранения проблем с подключением TCP/IP. Portqry.exe запускается на компьютерах под управлением Windows 2000, на компьютерах под управлением Windows XP и на компьютерах под управлением Windows Server 2003. Утилита сообщает о состоянии портов TCP и UDP на выбранном вами компьютере. «


79

Какая версия Windows? Для Windows 8/Server 2012 и более поздних версий в PowerShell работает следующее:

  Test-NetConnection 128.159.1.1 -Port 80  

Некоторый поиск в Google также предложит альтернативы, которые напрямую используют .NET Framework (поскольку PowerShell позволяет это сделать) для систем, работающих под управлением более ранних версий Windows, в которых не будет Test-NetConnection доступно.

Если вы не прочь использовать сторонние утилиты, Nmap — тоже очень хороший друг, и он работает из командной строки.

Улучшить этот ответ
отредактировано 25 мая 2017 в 16:19
ответил 16 окт. 6:18
  • 2
    . Сетевой метод: $ connection = (Новый объект Net.Sockets.TcpClient) .Connect ($ target, $ port); Если ($ connection.Connected) {$ connection.Close ()} — xXhRQ8sD2L7Z, 9 дек. ’14 в 23:09
  • На Win7 это не работает 🙁 — Jonesome Reinstate Monica 5 ноя 2015 в 0:20
  • @samsmith Вы про команду в моем ответе или один комментарий ST8Z …? Тот, который в моем ответе only работает для Win8/2k12 и выше, и ответ говорит об этом. — Iszi Nov 5 ‘ 15 в 14:38
  • 1
    Похоже на Windows 8. 1 — Кажется, не могу найти его в Windows 8 — Энди Кроуэл, 7 дек., 10:16
  • 2
    Отлично работает в Windows 10, и мне не нужно устанавливать какие-либо программы или добавлять какие-либо функции. Благодаря! 🙂 — Стив Бауман 04 янв., 18:52
добавить комментарий |

Какая версия Windows? Для Windows 8/Server 2012 и более поздних версий в PowerShell работает следующее:

  Test-NetConnection 128.159.1.1 -Port 80  

Некоторые поисковые запросы в Google также будут предлагать альтернативы, которые напрямую используют .NET Framework (поскольку PowerShell позволяет это сделать) для систем, работающих под управлением более ранних версий Windows, в которых не будет доступен Test-NetConnection .

Если вы не прочь использовать сторонние утилиты, Nmap — тоже очень хороший друг, и он работает из командной строки.


25

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

Успех:

  $ telnet my_server 25220 my_server ESMTP Postfix  

Ошибка:

  $ telnet my_server 23632 Подключение к my_server ... Не удалось открыть c  при подключении к хосту через порт 23632: сбой подключения  

Улучшите этот ответ
02 июля 2009 г. в 18:05
  • 17
    не работает для UDP. — Адриано Вароли Пьяцца, 02 июля 2009 г., 20:23
  • 9
    UDP без установления соединения .. — Амальговинус 23 июня ’14 в 18:46
добавить комментарий |

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

Успех:

  $ telnet my_server 25220 my_server ESMTP Postfix  

Fail:

  $ telnet my_server 23632 Подключение к my_server ... Не удалось открыть соединение с хостом, на порту 23632: Ошибка подключения  

7

Telnet будет работать для TCP.

Netcat — лучший инструмент для такого рода вещей, включая UDP, будьте осторожны, некоторые антивирусные программы считают его «злым хакерским инструментом»

Улучшите этот ответ
ответил 02 июля ’09 в 18:07
добавить комментарий |

Telnet будет работать для TCP.

Netcat — лучший инструмент для такого рода вещей, включая UDP , будьте осторожны, некоторые антивирусные программы считают его «злым хакерским инструментом»


1

следующая команда выведет список всех портов, используемых на компьютере …

  netstat -a  

Вывод содержит протокол, локальный адрес, внешний адрес и текущее состояние

Документация Netstat на microsoft.com

Улучшите этот ответ
ответил 11 июля ’12 в 13:05
  • 12
    Вопрос спрашивает об открытых портах на удаленной машине е, не местный. — Chris S 26 июня ’13 в 13:04
добавить комментарий |

следующая команда выведет список всех портов, используемых на машине …

  netstat -a  

Вывод содержит протокол, локальный адрес, внешний адрес и текущее состояние

Документация Netstat на microsoft.com


0

Использовать порт Windows netcat :

 > nc -zvv www.google.com 80www.google.com [108.177.96.103] 80 (http) opensent 0, rcvd 0 >> nc -zvv  www.google.com 888www.google.com [108.177.96.147] 888 (?): TIMEDOUTsent 0, rcvd 0: NOTSOCK>  

Улучшите этот ответ
ответил 25 октября 2016 в 12:48
добавить комментарий |

Использовать порт Windows netcat :

   > nc -zvv www.google.com 80www.google.com [108.177.96.103] 80 (http) opensent 0, rcvd 0 >> nc -zvv www.google.com 888www.google.com [108.177.96. 147] 888 (?): TIMEDOUTsent 0, rcvd 0: NOTSOCK>  

-2

‘netstat’ — ваш друг.

Улучшите этот ответ
ответил 02 июля ’09 в 18:03
  • 3
    Локальная машина да, удаленная машина нет. — Джо 02 июля, 18:04
  • 3
    Этот ответ был опубликован до редактирования, в котором указывалось, что речь идет о порте на удаленном компьютере. — quosoo 02 июля ’09 в 18:11
добавить комментарий |

‘netstat’ — ваш друг.

Оцените статью
logicle.ru
Добавить комментарий