Как узнать, какие программы подключаются к Интернету через определенные порты в Windows

У меня в любой момент на моем компьютере открыто много программ, многие из которых подключаются к Интернету, а я даже не осознаю этого. Если я хочу знать, какие из этих программ подключаются к внешнему миру через порт 443, защищенный HTTPS, который шифрует все входящие и исходящие данные, как мне это сделать?

NetStat — это команда Windows -строка, отображающая активные сетевые подключения, порты, которые прослушивает локальный компьютер, статистику Ethernet, таблицу маршрутизации и т. д. С помощью переключателя -b в окне командной строки с повышенными привилегиями я могу найти исполняемый файл, участвующий в создании каждого подключения, и порт прослушивания.

 NetStat -b 

Но это трудно фильтровать вывод, чтобы узнать, что именно я ищу.

Get-NetTCPConnection, двоюродный брат NetStat PowerShell, также получает текущие TCP-соединения с дополнительными параметрами фильтрации, доступными прямо из коробки.

Чтобы получить список установленных подключений к удаленному порту 443,

 Get-NetTCPConnection -RemotePort 443 -State Established 

Единственная проблема, он не сообщает мне, какая программа использует какое соединение в списке.

Нам понадобится помощь от командлет Get-Process . Чтобы отобразить имя процесса, используйте следующее.

 (Get-Process -id $ id) .ProcessName 

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

 (Get-Process -id $ id) .Path 

Теперь, поскольку Select-Object поддерживает вычисленные properties на лету, мы можем определить переменную, которая вычисляет свойство из исходного свойства OwningProcess из командлета Get-NetTCPConnect . Благодаря совету PowerTips.

В следующем скрипте перечислены все программы, которые подключаются к Интернету по протоколу HTTPS.

  $ Process  = @ {Name = 'Process' Expression = {# return process path (Get-Process -Id $ _. OwningProcess -ErrorAction SilentlyContinue) .ProcessName}} # получить все подключения к порту 443 (HTTPS) Get-NetTCPConnection -RemotePort 443 -  Государство установлено |  # и разрешите IP и идентификатор процесса Select-Object -Property $ HostName, RemotePort, OwningProcess, $ Process  

Если вы хотите перечислить все программы, которые подключаются к Интернету, независимо от того, какие порты они проходят, удалите -RemotePort 443 из командлета Get-NetTCPConnection .

И если вы хотите увидеть, у вас есть какая-либо программа, использующая небезопасное HTTP-соединение, замените в команде 443 на 80. Вы можете получить сообщение об ошибке, в котором говорится, что CIM не обнаружил подходящих объектов MSFT_NetTCPConnection, что является хорошим признаком того, что у вас не было никаких программ, использующих небезопасное HTTP-соединение.

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