Используйте Netstat для просмотра портов прослушивания и PID в Windows

В другой статье мы объяснили компьютерные порты и для чего они используются(explained computer ports and what they’re used for) . Кроме этого, что мы можем сделать с информацией о порте? Поскольку весь входящий и исходящий трафик компьютера проходит через порты, мы можем проверить их, чтобы увидеть, что они делают. Может быть, порт не прослушивает трафик? Может быть, что-то использует порт, который не должен быть? 

Мы собираемся использовать команду Windows netstat (Windows),(netstat) чтобы увидеть наши прослушиваемые порты и PID ( идентификатор процесса(Process ID) ). Мы также собираемся посмотреть, что мы можем сделать с этой информацией.

Что такое Нетстат?(What Is Netstat?)

Команда netstat представляет собой комбинацию слов «сеть» и «статистика». Команда netstat работает во всех версиях Windows от Windows XP вплоть до Windows 10 . Он также используется в других операционных системах (ОС), таких как Unix и Linux , но здесь мы остановимся на Windows .

Netstat может предоставить нам:

  • Имя протокола, который использует порт ( TCP или UDP ).
  • Локальный IP-адрес и имя компьютера, а также номер используемого порта.
  • IP-адрес и номер порта, к которому мы подключаемся.
  • Состояние TCP - соединения. Подробнее об этих состояниях см . в разделе «Обработка событий» RFC 793(Event Processing section of RFC 793) .

Использование Netstat для просмотра портов прослушивания и PID(Using Netstat To See Listening Ports & PID)

  • Используйте комбинацию клавиш Win Key + Win Key + XВ открывшемся меню выберите « Командная строка(Command Prompt) » .

  • Введите(Enter) команду
    netstat -a -n -o
    . Перед параметрами netstat ставится дефис, а не косая черта, как во многих других командах. Параметр -a сообщает ему показать нам все активные соединения и порты, которые прослушивает компьютер.

    Параметр -n указывает netstat отображать IP-адреса и порты только в виде чисел. Мы говорим ему не пытаться разрешать имена. Это делает отображение более быстрым и аккуратным. -o указывает netstat включить PID . Позже мы воспользуемся PID , чтобы узнать, какой процесс использует определенный порт.

  • Просмотрите(View) результаты и запишите адреса, номера портов, состояние и PID . Допустим, мы хотим знать, что использует порт 63240. Обратите внимание, что его PID — 8552, и он подключается к IP-адресу 172.217.12.138 через порт 443.

Что использует этот порт?(What’s Using That Port?)

  • Откройте диспетчер задач(Task Manager) . Это проще всего сделать с помощью комбинации Ctrl + Shift + Esc .

  • Нажмите на вкладку Подробности(Details ) . Чтобы упростить поиск, щелкните заголовок столбца PID , чтобы отсортировать PID(PIDs) в числовом виде.

  • Прокрутите вниз до PID 8552 и посмотрите, что это за процесс. В данном случае это googledrivesync.exe . Но так ли это на самом деле? Иногда вирусы могут выглядеть как законные процессы.

  • В веб-браузере перейдите на ipinfo.io . Введите IP-адрес 172.217.12.138 . Как мы видим, IP-адрес зарегистрирован в Google . Так что этот googledrivesync.exe является законным.

Как получить порт, PID и имя процесса в PowerShell(How To Get Port, PID, & Process Name In PowerShell)

PowerShell — это новый способ Microsoft использовать интерфейс командной строки с Windows . Мы говорим новее, но существует несколько версий. Вы должны изучить PowerShell, даже если вы домашний пользователь(learn PowerShell even if you’re a home user) .

Большинство команд Windows также работают в (Windows)PowerShell , плюс мы можем комбинировать их с командлетами PowerShell — произносится как command-lets . Джо из Winteltools.com предоставляет сценарий для этого метода.

  • Откройте Блокнот(Notepad ) и введите следующий код:
$netstat = netstat -aon | Select-String -pattern "(TCP|UDP)"
$processList = Get-Process

foreach ($result in $netstat) {
   $splitArray = $result -split " "
   $procID = $splitArray[$splitArray.length – 1]
   $processName = $processList | Where-Object {$_.id -eq $procID} |    select processname
   $splitArray[$splitArray.length – 1] = $procID + " " +      $processName.processname
   $splitArray -join " "
}

  • Сохраните файл как get-NetstatProcessName.ps1 . Не забудьте отметить, где он сохраняется. Важно изменить тип Сохранить как:(Save as type: ) на All Files (*.*) , иначе он будет сохранен как get-NetstatProcessName.ps1 .txt , и он не будет работать для нас.

  • Откройте PowerShell и перейдите в папку, в которой был сохранен скрипт. В данном случае это <pre>cd C:Scripts</pre>. Нажмите Enter , чтобы запустить команду.

  • Запустите скрипт, используя точечный источник, чтобы заставить его работать. Это означает использование ./ перед именем файла. Команда будет
    ./get-NetstatProcessName.ps1< /pre

  • Теперь мы можем видеть всю традиционную информацию netstat плюс имя процесса. Больше не нужно открывать диспетчер задач(Task Manager) .

Иди и возьми их(Go Get Them)

Мы рассмотрели два способа использования команды netstat для просмотра прослушиваемых портов. Его можно использовать либо в старой командной строке(Command Prompt) , либо в сценарии PowerShell . С помощью информации, которую он может нам дать, мы рассмотрели, как он может помочь нам понять, что делает наш компьютер. 

Если вы считаете, что netstat — отличная утилита, взгляните на некоторые другие утилиты Windows TCP/IP, такие как tracert, ipconfig и nslookup . Или используйте Монитор ресурсов, чтобы лучше изучить скрытые веб-сайты и подключения к Интернету(use Resource Monitor to get a better look into hidden website and Internet connections) . Вы можете многое сделать, чтобы увидеть, что именно делает ваш компьютер.

Вы использовали netstat для решения проблемы? Пожалуйста(Please) , расскажите нам, что вы сделали. Есть вопросы по использованию netstat? Пожалуйста(Please) , спросите нас в комментариях ниже.



About the author

Я инженер-конструктор со стажем работы более 10 лет. Я специализируюсь на USB-контроллерах и кабелях, а также на обновлении BIOS и поддержке ACPI. В свободное время я также люблю вести блог на различные темы, связанные с технологиями и инженерией.



Related posts