Часто бывает такая ситуация, что какой-либо порт (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.
Добрый день! а как просмотреть какой ip из локальной сети занимает определенный порт на шлюзе? (тобишь есть шлюз от через который все клиенты локальной сети ходят в инет, зная порт-как посмотрть кот из сети на нем сидит?)
Приветствую! В общем случае маршрутизатор заменяет в исходящем пакете внутренний IP-адрес и внутренний порт (мы их и хотим узнать) на внешние (они нам ничего не говорят, если нет доступа к таблице соответствия), так что это весьма проблематично.