Какой процесс слушает порт в Linux?

В этой статье мы рассмотрим, как найти процесс, который слушает определенный порт в Linux.

Можно получить информацию о процесс, который слушает определенный порт командой:

$ sudo lsof -i :8000

В этом примере видно, что порт 8000 занят процессом python3.

lsof - найти процесс, который занял порт в linux

Можно вывести список всех запущенных процессов Linux, который используют любые TCP/UDP порты:

$ sudo netstat -lntup| grep LISTEN

Мы используем следующие ключи:

  • -l – показать тольо прослушиваемые порты
  • -n – показать IP адреса и номера портов в числовом виде и не пытаться их резолвить (соответствие номеров портов и название служб содержится в файле /etc/services)
  • -t – показать открытые TCP порты
  • -u – показать UDP порты
  • -p – показать название процесс, который прослушивает порт

netstat -lntup- список открытых сокетов в linux

Мы нашли PID процесса ( 72005 ), который использует порт и теперь можно вывести информацию о том, как он запущен:

$ ps -aux | grep 72005

В этом примере видно, что процесс запущен вручную пользователем root с помощью команды python3 -m http.server (используется для запуска простого HTTP сервера на python для публикации текущего каталога). найти команду, которая запустила процесс

Чтобы быстро завершить процесс, который слушает нужный вам порт и освободить его, выполните:

$ sudo kill -9 72005

Проверьте, что порт теперь свободен:

$ sudo lsof -i :8000

EnglishRussianUkrainian