Как узнать кто занимает порт

Как узнать кто занимает порт

Требования.
Статья применима для Windows 2000/XP/Vista/7.

Информация.
При установке некоторых программ иногда возникает проблема с доступностью порта. Т.е. вы устанавливаете программу, а она вам говорит: "Извините, но предпочитаемый порт номер занят!". И самое интересное программа не говорит чем или кем занят порт.

Как определить каким процессом (программой) занят порт.
1. В меню "Пуск" выберите пункт "Выполнить";
2. В поле "Открыть" наберите команду cmd и нажмите кнопку "ОК";

Откроется окно командной строки, примерно такого вида:

3. Наберите команду netstat -ano и нажмите кнопку "Ввод" (Enter) на клавиатуре;

Результатом выполнения данной команды, должен быть список всех активных подключений, с ip-адресами и номерами портов.

4. Теперь в колонке "Локальный адрес", находим нужный нам порт и записываем его идентификатор в колонке "PID";

Например порт номер 80, его идентификатор 440.

5. Снова открываем меню "Пучк" и выбираем пункт "Выполнить";
6. В поле "Открыть" вводим команду taskmgr и нажимаем кнопку "ОК";
7. В окне "Диспетчер задач Windows" переходим на вкладку "Процессы";
8. В главном меню открываем пункт "Вид" и выбираем пункт "Выбрать столбцы. ";
9. В окне "Выбор столбцов" находим пункт "Идентиф. процесса (PID)" и ставим рядом с ним галочку;
10. Нажимаем кнопку "ОК";
11. Теперь в окне "Диспетчер задач Windows", нажимаем на заголовок столбца "PID", для сортировки процессов по возрастанию;
12. Находим номер нашего процесса 440 и в столбце "Имя образа", смотрим какой процесс занимает наш порт;

При работе в Unix-системах мне частенько приходится определять, какой процесс занимает порт, например, чтобы остановить его и запустить на нём другой процесс. Поэтому я решил написать эту небольшую статью, чтоб каждый, прочитавший её, мог узнать, каким процессом занят порт в Ubuntu, CentOS или другой ОС из семейства Linux.

Читайте также:  Как скопировать картинку в пдф документе

Как же вычислить, какие запущенные процессы соотносятся с занятыми портами? Как определить, что за процесс открыл udp-порт 2222, tcp-порт 7777 и т.п.? Получить подобную информацию мы можем нижеперечисленными методами:

netstat утилита командной строки, показывающая сетевые подключения, таблицы маршрутизации и некоторую статистику сетевых интерфейсов; fuser утилита командной строки для идентификации процессов с помощью файлов или сокетов; lsof утилита командной строки, отображающая информацию об используемых процессами файлах и самих процессах в UNIX-системе; /proc/$pid/ в ОС Linux /proc для каждого запущенного процесса содержит директорию (включая процессы ядра) в /proc/$PID с информацией об этом процессе, в том числе и название процесса, открывшего порт.

Использование вышеперечисленных способов может потребовать права супер-пользователя.

Теперь давайте рассмотрим каждый из этих способов по отдельности.

Пример использования netstat

Введём в командную строку команду:

Получим примерно такой результат:

Из вывода видно, что 4942-й порт был открыт Java-приложением с PID’ом 3413. Проверить это можно через /proc :

Примерный результат выполнения команды:

При необходимости получения информации по конкретному порту (например, 80-му, используемого обычно для HTTP) вместо отображения всей таблицы можно grep -ануть результат:

Результат будет примерно такой:

Пример использования fuser

Для того, чтобы вычислить процесс, занимающий порт 5050, введём команду:

И получим результат:

Аналогичным образом, как мы делали выше, можно посмотреть процесс в его директории /proc/$PID , в которой можно найти много интересной дополнительной информации о процессе, такую как рабочая директория процесса, владелец процесса и т.д., но это выходит за рамки этой статьи.

Пример использования lsof

При использовании lsof введите команду по одному из шаблонов:

Пример реального использования:

После этого мы можем получить более полную информацию о процессах с PID’ами 2123, 2124 и т.д..

Читайте также:  Как установить фильтр арагон на аквафор

На выходе получим примерно следующее:

Получить информацию о процессе также можно следующим проверенным способом:

В этом выводе можно выделить следующие параметры:

  • 2727 — PID;
  • www-date — имя пользователя владельца;
  • www-date — название группы;
  • /usr/sbin/apache2 -k start — название команды с аргументами;
  • 14:27:33 — время работы процесса в формате [[дд-]чч:]мм:сс;
  • Mon Nov 30 21:21:28 2015 — время старта процесса.

Надеюсь, у меня получилось доступно объяснить, как определить процесс по порту в Linux-системах, и теперь у вас ни один порт не останется неопознанным!

Когда приложению требуется доступ к сети, оно использует порт TCP/IP. Занятый порт, естественно, недоступен для других программ. Как же узнать, какой процесс занимает порт, если его необходимо освободить для других целей?

Существуют разные способы решения этой задачи. Мы расскажем о двух: с помощью командной строки и Диспетчера задач (Task Manager) либо с использованием прекрасного бесплатного приложения с полным набором нужных функций.

Способ 1: командная строка и Диспетчер задач

Для начала нужно с помощью командной строки узнать, какие порты используются в данный момент. При этом для каждого порта указывается идентификатор процесса, которым он занят. С помощью этого идентификатора можно затем выяснить, что за приложение использует нужный порт.

Откройте командную строку (желательно от имени администратора, чтобы увидеть все процессы) и введите следующую команду:

Справа показаны PID – идентификаторы процессов (на скриншоте ниже они выделены белым). Найдите нужный вам порт и посмотрите, с каким идентификатором он связан. Например, на нашем скриншоте адрес 0.0.0.0:80, т. е. порт 80, связан с процессом 4708.

Теперь просто откройте Диспетчер задач и найдите в списке нужный ИД процесса. Возможно, для этого придется использовать опцию «Отображать процессы всех пользователей» (Show Processes for All Users). Определив нужный процесс, можно его завершить (End Process), открыть расположение файла (Open File Location) или перейти к службам (Go to Service(s)).

Читайте также:  Звуковые кодеки для виндовс 7

Способ 2: утилита CurrPorts

Если вы не любитель командной строки и предпочли бы выяснить всю нужную информацию с помощью одной программы, рекомендуем прекрасную бесплатную утилиту CurrPorts от NirSoft – одного из наших любимых разработчиков свободного ПО.

Просто запустите программу – и увидите все необходимые данные: процессы с полными адресами соответствующих файлов, занятые ими локальные и удаленные порты.

Можно дважды щелкнуть на любом пункте, чтобы посмотреть подробные сведения.

С помощью CurrPorts также можно завершить процесс, не заглядывая ради этого в Диспетчер задач.

Ссылка на основную публикацию
Как удалить повторяющиеся значения в столбце excel
Доброго времени суток! С популяризацией компьютеров за последние 10 лет — происходит и популяризация создания отчетов (документов) в программе Excel....
Как убрать пароль с компьютера windows 8
Пароль, при входе в операционную систему – очень полезная, для многих пользователей, функция. Вы можете быть уверены, что на рабочем...
Как убрать подтверждение я не робот
Технология «капчи» (CAPTCHA) представляет собой автоматизированный тест, предназначенный для выявления машинизированных пользователей, иначе ботов. Его целью становится постановка такой задачи,...
Как удалить поиск в windows 10
Привет ребята Значит если вам надоел процесс SearchUI.exe, то пора от него избавляться. Как остановить службу SearchUI.exe? Вот тут к...
Adblock detector