Как узнать, какое приложение занимает какой-либо порт?

Часто бывает такая ситуация, что какой-либо порт (80, 8080 и т.п.) занят неизвестным приложением. Чтобы освободить порт, надо снять эту задачу. Но как узнать, какой именно процесс необходимо завершить?

Разберемся по шагам, как же решить эту проблему на примере занятого порта 8080.
как узнать процесс, занимающий порт

Сначала узнаем идентификатор процесса (PID), занимающего этот порт, с помощью команды netstat, отображающей статистику протокола и текущих сетевых подключений TCP/IP:

netstat -o -n -a | findstr 0.0:8080

ключ -o — отображение ИД процесса каждого подключения;
ключ -n — отображение адресов и номеров портов в числовом формате;
ключ -a — отображение всех подключений и портов прослушивания.
Отфильтровать содержимое ответа можно с помощью команды findstr.
Ответом на эту команду было:

TCP  0.0.0.0:8080  0.0.0.0:0  LISTENING  3152

В ответе мы видим число 3152 — это и есть PID-идентификатор таинственного процесса, занимающего порт 8080.
Затем узнаем имя приложения, соответствующего процессу с этим PID, с помощью команды tasklist, отображающей список процессов, которые сейчас выполняются на локальном или удаленном компьютере:

tasklist /FI "PID eq 3152"

ключ /FI  <фильтр> — выводит список задач, которые соответствуют заданным в фильтре условиям, фильтр — «PID eq 3152»PID процесса равен 3152.
В ответ получаем:

Имя образа                 PID Имя сессии     № сеанса    Память
========================= ==== =========== =========== =========
ApplicationWebServer.exe  3152 Services              0  6 816 КБ

Итак, выяснено, что порт 8080 занят приложением по имени ApplicationWebServer.exe.
Осталось узнать путь к этому приложению с помощью команды wmic:

wmic process where "name='ApplicationWebServer.exe'" get ExecutablePath

В результате видим:

C:\Program Files (x86)\National Instruments\Shared\NI WebServer\ApplicationWebServer.exe

Итак, порт 8080 был занят приложением ApplicationWebServer.exe, входящим в состав программного пакета LabView компании National Instruments.



Как узнать, какое приложение занимает какой-либо порт?: 2 комментария

  1. Сергей

    Добрый день! а как просмотреть какой ip из локальной сети занимает определенный порт на шлюзе? (тобишь есть шлюз от через который все клиенты локальной сети ходят в инет, зная порт-как посмотрть кот из сети на нем сидит?)

    1. foxylab Автор записи

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

Добавить комментарий для foxylab Отменить ответ

Ваш адрес email не будет опубликован. Обязательные поля помечены *