Существуют разные способы решения этой задачи. Мы расскажем о двух: с помощью командной строки и Диспетчера задач (Task Manager) либо с использованием прекрасного бесплатного приложения с полным набором нужных функций.
Способ 1: командная строка и Диспетчер задач
Для начала нужно с помощью командной строки узнать, какие порты используются в данный момент. При этом для каждого порта указывается идентификатор процесса, которым он занят. С помощью этого идентификатора можно затем выяснить, что за приложение использует нужный порт.
Откройте командную строку (желательно от имени администратора, чтобы увидеть все процессы) и введите следующую команду:
netstat -aon | more
Справа показаны PID – идентификаторы процессов (на скриншоте ниже они выделены белым). Найдите нужный вам порт и посмотрите, с каким идентификатором он связан. Например, на нашем скриншоте адрес 0.0.0.0:80, т. е. порт 80, связан с процессом 4708.
Как посмотреть открытые порты в Linux / какие прослушиваются порты в Linux
Теперь просто откройте Диспетчер задач и найдите в списке нужный ИД процесса. Возможно, для этого придется использовать опцию «Отображать процессы всех пользователей» (Show Processes for All Users). Определив нужный процесс, можно его завершить (End Process), открыть расположение файла (Open File Location) или перейти к службам (Go to Service(s)).
Способ 2: утилита CurrPorts
Если вы не любитель командной строки и предпочли бы выяснить всю нужную информацию с помощью одной программы, рекомендуем прекрасную бесплатную утилиту CurrPorts от NirSoft – одного из наших любимых разработчиков свободного ПО.
Просто запустите программу – и увидите все необходимые данные: процессы с полными адресами соответствующих файлов, занятые ими локальные и удаленные порты.
Можно дважды щелкнуть на любом пункте, чтобы посмотреть подробные сведения.
С помощью CurrPorts также можно завершить процесс, не заглядывая ради этого в Диспетчер задач.
Оцените статью: Голосов
Источник: www.winblog.ru
Найти процесс по номеру порта в Linux
При работе в Unix-системах мне частенько приходится определять, какой процесс занимает порт, например, чтобы остановить его и запустить на нём другой процесс. Поэтому я решил написать эту небольшую статью, чтоб каждый, прочитавший её, мог узнать, каким процессом занят порт в Ubuntu, CentOS или другой ОС из семейства Linux.
Как сменить номер COM порта
Как же вычислить, какие запущенные процессы соотносятся с занятыми портами? Как определить, что за процесс открыл udp-порт 2222, tcp-порт 7777 и т.п.? Получить подобную информацию мы можем нижеперечисленными методами:
netstat утилита командной строки, показывающая сетевые подключения, таблицы маршрутизации и некоторую статистику сетевых интерфейсов; fuser утилита командной строки для идентификации процессов с помощью файлов или сокетов; lsof утилита командной строки, отображающая информацию об используемых процессами файлах и самих процессах в UNIX-системе; /proc/$pid/ в ОС Linux /proc для каждого запущенного процесса содержит директорию (включая процессы ядра) в /proc/$PID с информацией об этом процессе, в том числе и название процесса, открывшего порт.
Использование вышеперечисленных способов может потребовать права супер-пользователя.
Теперь давайте рассмотрим каждый из этих способов по отдельности.
Пример использования netstat
Введём в командную строку команду:
$ netstat -tulpn
Получим примерно такой результат:
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 0.0.0.0:10843 0.0.0.0:* LISTEN 7023/node tcp 0 0 127.0.0.1:4942 0.0.0.0:* LISTEN 3413/java .
Из вывода видно, что 4942-й порт был открыт Java-приложением с PID’ом 3413. Проверить это можно через /proc :
$ ls -l /proc/3413/exe
Примерный результат выполнения команды:
lrwxrwxrwx. 1 user user 0 Nov 10 20:31 /proc/3413/exe -> /opt/jdk1.8.0_60/bin/java
При необходимости получения информации по конкретному порту (например, 80-му, используемого обычно для HTTP) вместо отображения всей таблицы можно grep -ануть результат:
$ netstat -tulpn | grep ‘:80 ‘
Результат будет примерно такой:
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 1607/apache2
Пример использования fuser
Для того, чтобы вычислить процесс, занимающий порт 5050, введём команду:
$ fuser 5050/tcp
И получим результат:
5050/tcp: 3813
Аналогичным образом, как мы делали выше, можно посмотреть процесс в его директории /proc/$PID , в которой можно найти много интересной дополнительной информации о процессе, такую как рабочая директория процесса, владелец процесса и т.д., но это выходит за рамки этой статьи.
Пример использования lsof
При использовании lsof введите команду по одному из шаблонов:
lsof -i :$portNumber lsof -i tcp:$portNumber lsof -i udp:$portNumber
Пример реального использования:
lsof -i :80 | grep LISTEN
apache2 2123 root 3u IPv4 6472 0t0 TCP *:www (LISTEN) apache2 2124 www-data 3u IPv4 6472 0t0 TCP *:www (LISTEN) apache2 2125 www-data 3u IPv4 6472 0t0 TCP *:www (LISTEN) apache2 2126 www-data 3u IPv4 6472 0t0 TCP *:www (LISTEN)
После этого мы можем получить более полную информацию о процессах с PID’ами 2123, 2124 и т.д..
$ ps aux | grep 2124
На выходе получим примерно следующее:
www-data 2124 0.0 0.0 36927 4991 ? S 10:20 0:00 /usr/sbin/apache2 -k start
Получить информацию о процессе также можно следующим проверенным способом:
$ ps -eo pid,user,group,args,etime,lstart | grep ‘2727’
2727 www-data www-data /usr/sbin/apache2 -k start 14:27:33 Mon Nov 30 21:21:28 2015
В этом выводе можно выделить следующие параметры:
- 2727 — PID;
- www-date — имя пользователя владельца;
- www-date — название группы;
- /usr/sbin/apache2 -k start — название команды с аргументами;
- 14:27:33 — время работы процесса в формате [[дд-]чч:]мм:сс;
- Mon Nov 30 21:21:28 2015 — время старта процесса.
Надеюсь, у меня получилось доступно объяснить, как определить процесс по порту в Linux-системах, и теперь у вас ни один порт не останется неопознанным!
Источник: antenko.ru
Как определить, какая программа использует или блокирует определенные порты протокола управления передачей в Windows Server 2003
В этой пошаговой статье описывается, как определить, какая программа использует или блокирует определенные порты TCP.
Версию этой статьи для Microsoft Windows XP см. в разделе 281336.
Применяется к: Windows Server 2003
Исходный номер базы знаний: 323352
Аннотация
Служебная программаNetstat.exe имеет новый переключатель, -o коммутатор, который может отображать идентификатор процесса (ID), связанный с каждым подключением. Эти сведения можно использовать для определения того, какой процесс (программа) прослушивает определенный порт. Например, netstat -ano команда может получить следующие выходные данные:
Proto Local Address Foreign Address State PID TCP 0.0.0.0:80 0.0.0.0:0 Listening 888
При использовании диспетчера задач можно сопоставить идентификатор процесса, указанный в списке, с именем процесса (программа). С помощью этой функции можно найти конкретный порт, используемый программой в настоящее время. Так как программа уже использует этот конкретный порт, другой программе запрещено использовать этот же порт.
Сопоставление идентификатора процесса с программой
Чтобы сопоставить идентификатор процесса с программой, выполните следующие действия:
- Нажмите клавиши CTRL + SHIFT + ESC , чтобы открыть диспетчер задач.
- Перейдите на вкладку Процессы .
- Если у вас нет столбца PID, выберите Вид>Выбрать столбцы, а затем установите флажок PID (идентификатор процесса).
- Выберите заголовок столбца с меткой PID, чтобы отсортировать процесс по ИДЕНТИФИКАТОРАм. Вы сможете легко найти идентификатор процесса и сопоставить его с программой, которая указана в диспетчере задач.
Получение дополнительных сведений о служебной программе Netstat.exe
Чтобы получить дополнительные сведения о служебной программеNetstat.exe , выполните следующие действия.
- Щелкните последовательно Пуск>Выполнить.
- В поле Открыть введите cmd и нажмите кнопку ОК.
- В командной строке введите netstat /? .
Обратная связь
Были ли сведения на этой странице полезными?
Источник: learn.microsoft.com