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

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

вопрос задан 7.09.2008
Readonly
125002 репутация

25 ответов


  • 0 рейтинг
    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, нажмите «Просмотр /Выбор столбцов». Выберите PID.

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

    ответ дан Cyborg, с репутацией 843, 8.11.2012
  • 0 рейтинг

    Если смена порта не работает:

    Шаг 1. Перейдите в сервисы, выполнив поиск «служб» в Windows.

    Шаг 2: Закажите все услуги в алфавитном порядке (не обязательно)

    Шаг 3: Остановить любые службы, связанные с MYSQL.

    Шаг 4: Запустите mysql из xampp.

    ответ дан Dave, с репутацией 33, 27.04.2018
  • 0 рейтинг

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

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

    ответ дан Tony Delroy, с репутацией 82281, 13.03.2014
  • 0 рейтинг

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

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

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

    ответ дан Blue Clouds, с репутацией 1003, 23.09.2018
  • 0 рейтинг

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

    • Начало >> Все программы >> Аксессуары >> Системные инструменты >> Монитор ресурсов

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

    введите описание изображения здесь

    ответ дан bcorso, с репутацией 27788, 18.05.2014
  • 0 рейтинг
     C:\> netstat -a -b
     

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

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

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

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

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

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

    ответ дан Brad Wilson, с репутацией 45141, 7.09.2008
  • 0 рейтинг
    netstat -aon | find /i "listening"
    
    ответ дан aku, с репутацией 96429, 7.09.2008
  • 0 рейтинг

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

    ответ дан Dane, с репутацией 5917, 7.09.2008
  • 0 рейтинг

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

    ответ дан Dave Webb, с репутацией 152091, 7.09.2008
  • 0 рейтинг

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

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

     netstat -ano | findStr "8080"
     

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

     tasklist /fi "pid eq 2216"
     

    найти процесс через порт TCP /IP

    ответ дан Ram Sharma, с репутацией 627, 24.01.2018
  • 0 рейтинг

    Используйте ниже пакетный скрипт, который принимает имя процесса в качестве аргумента и дает вывод 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
     
    ответ дан deshapriya debesh, с репутацией 21, 4.05.2018
  • 0 рейтинг

    Для тех, кто использует 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
     
    ответ дан mikemaccana, с репутацией 39644, 25.08.2016
  • 0 рейтинг

    Просто откройте командную оболочку и введите: (если ваш порт равен 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
     

    это как упоминалось здесь

    ответ дан Tajveer Singh Nijjar, с репутацией 350, 25.01.2017
  • 0 рейтинг

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

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

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

    ответ дан Josh, с репутацией 828, 29.06.2015
  • 0 рейтинг

    Следуйте этим инструментам: - от 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, который дает вам гораздо больше, чем вы можете знать.

    Экзамен: -

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

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

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

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

    ответ дан Perl Fanatic, с репутацией 79, 11.08.2013
  • 0 рейтинг

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

     netstat -aon |find /i "listening" |find "port"
     

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

    ответ дан Nathan24, с репутацией 858, 8.10.2013
  • 0 рейтинг

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

    тип
    netstat -n -a -o

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

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

    taskkill /F /PID 3312

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

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

    ответ дан Pankaj Pateriya, с репутацией 376, 23.08.2014
  • 0 рейтинг

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

     netstat -ao |find /i "listening"
     

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

     Taskkill /F /IM pidof a process
     
    ответ дан Monis Majeed, с репутацией 779, 17.04.2014
  • 0 рейтинг

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

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

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

    ответ дан nisha, с репутацией 453, 13.08.2013
  • 0 рейтинг

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

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

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

    ответ дан Technotronic, с репутацией 4258, 22.11.2016
  • 0 рейтинг

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

    По умолчанию вывод Get-NetTCPConnection умолчанию не включает идентификатор процесса, и он немного запутан. Однако вы всегда можете получить его, форматируя вывод. Имущество, которое вы ищете, - 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
       
    ответ дан bahrep, с репутацией 21316, 2.11.2016
  • 0 рейтинг

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

     netstat -na | find "1234"
     
    ответ дан Zoomzoom, с репутацией 541, 24.01.2017
  • 0 рейтинг

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

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

    1) Перейдите в режим run -> type cmd -> нажмите enter.

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

     netstat -aon | findstr [port number]
     

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

    3) нажмите enter ...

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

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

    ответ дан Nishat Lakhani, с репутацией 498, 30.05.2016
  • 0 рейтинг

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

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

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

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

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

     Image Name                     PID Session Name        Session#    Mem Usage
    ========================= ======== ================ =========== ============
    java.exe                      5312 Services                   0    130,768 K
     

    Объяснение:

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

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

       tasklist /FI "PID eq 5312"
       

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

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

    Вывод:

     java.exe                      5312 Services                   0    130,768 K
     
    ответ дан ROMANIA_engineer, с репутацией 30975, 10.02.2016
  • 0 рейтинг

    Использование 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 трейлинг-линию для каждого совпадения шаблонов.

    ответ дан Jpsy, с репутацией 9959, 28.12.2017