Поиск приложений, которыми заняты порты
Чтобы узнать, какие приложения занимают порты (например, порт 5558, который необходим для работы веб-сервера Apache, (см. Порты, используемые при работе Business Studio), для каждого из таких портов запустите из командной строки следующую команду:
netstat -a -o | find «:НомерПорта»
НомерПорта — номер порта, для которого ищем приложение, занявшее его.
В ответ Вы получите список, в последнем столбце которого будут указаны PID приложений (ID процессов), по котором можно найти само приложение в диспетчере задач.
Как узнать, какой процесс использует тот или иной порт
Иногда полезно знать, какой процесс занял тот или иной порт, например, порт 80. В этой статье будет рассказано, как это сделать в Linux.
Решить поставленную задачу можно с помощью одной из команд — netstat, fuser и lsof. Также можно использовать псевдофайловую систему /proc (однако это менее удобный способ и мы его рассматривать не будем). Далее будут показаны примеры использования этих команд.
Использование netstat
Представим, что нам нужно найти процесс, использующий порт 80. Попробуем сделать это с помощью netstat.
Определяем процесс, использующий порт 80 с помощью netstat
В данном случае видно, что порт 80 используется процессом apache2. 11681 — это PID процесса. Получить дополнительную информацию о процессе можно командами:
Информация о процессе
Можно также ввести команду ps -ax | grep apache2 для того, чтобы узнать, какие процессы с именем apache2 еще запущены.
Список процессов apache2
Кто слушает порт в Linux
Открытый доступ к порту хоть и является угрозой безопасности системы, но по сути ничего плохого не представляет до тех пор, пока его не начинает использовать программа. А чтобы выяснить какая программа слушает какой порт можно использовать утилиты «netstat» (или «ss») и «lsof».
Чтобы узнать информацию о программе, которая прослушивает определённый порт, можно воспользоваться командой «lsof» со следующими ключами:
sudo lsof -i :номер_порта
Здесь «номер_порта» — это цифра.
Пример результата выполнения команды с 53 портом:
$: sudo lsof -i :53 COMMAND PID USER TYPE NODE NAME systemd-r 818 systemd-resolve IPv4 UDP localhost:domain systemd-r 818 systemd-resolve IPv4 TCP localhost:domain (LISTEN)
Но рекомендуем чаще запускать команду для получения списка программ, которые используют какие-либо tcp/udp порты. В этом помогает «netstat» или «ss»:
sudo netstat -lntup
- -l показать только прослушиваемые «LISTEN» порты.
- -n показывать адреса как ip, а не пытаться определять домены.
- -t показывать TCP порты.
- -u показывать UDP порты.
- -p показать название программы, которая слушает порт.
$: sudo netstat -lntup Prt Local Addr State PID/Program tcp 0.0.0.0:443 LISTEN 204/nginx tcp 0.0.0.0:80 LISTEN 202/nginx tcp 0.0.0.0:22 LISTEN 174/sshd udp 127.0.0.1:323 233/chronyd
По результату можно заметить какая программа прослушивает какой порт. Если ip в секции «Local Address» равен «127.0.0.1», то это локальное обращение. Такой порт можно не закрывать фаерволом — он и так не будет доступен извне. Но ip с нулями «0.0.0.0» говорят о том, что программа слушает все адреса. То есть она примет любой запрос, в том числе внешний.
Блог Алексея Воронина
История, краеведение, сельское хозяйство, лесоводство, биология, IT…

Как узнать, какое приложение занимает какой-либо порт?
Часто бывает такая ситуация, что какой-либо порт (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.