Skip to content

Как определить, какие процессы используют порт 21

При работе с сетевыми сервисами на сервере часто возникает необходимость выяснить, какой процесс прослушивает определённый порт. Это может понадобиться при диагностике проблем, настройке брандмауэра или расследовании подозрительной активности.

Одним из удобных инструментов для этой задачи в Linux является команда fuser.


Описание команды

fuser 21/tcp

Эта команда показывает список идентификаторов процессов (PID), которые в данный момент используют TCP-порт 21.

Порт 21/ TCP обычно ассоциируется с протоколом FTP — сервером файлового обмена. Поэтому такая проверка особенно полезна при анализе работы FTP-сервиса.


Пример вывода

21/tcp:              1234

Это означает, что порт 21 используется процессом с PID 1234.


Дополнительные флаги для расширенного анализа

Можно уточнить вывод, добавив флаги:

1. Показать подробную информацию о процессах:

fuser -v 21/tcp

Выводит таблицу с информацией о пользователе, PID и названии процесса.

2. Завершить процесс, использующий порт:

⚠️ Используйте с осторожностью!

fuser -k 21/tcp

Эта команда отправляет сигнал SIGKILL процессу, занимающему порт 21.


Как это работает?

Команда fuser сканирует пространство процессов и определяет, какие из них имеют открытым указанный сокет (в данном случае — TCP-порт 21). Это позволяет быстро диагностировать конфликты портов или найти "захватчиков" ресурсов.


Где применяется?

  • Если FTP-сервер не запускается из-за занятого порта.
  • Выявление несанкционированных или неожидаемых процессов, слушающих порт.
  • Понимание, какой именно процесс мешает запуску другого приложения.

Альтернативы

Вместо fuser можно использовать и другие команды:

  • lsof -i :21
  • netstat -tulnp | grep :21
  • ss -tulnp | grep :21

Все они дают похожую информацию, но fuser остаётся одним из самых лаконичных и быстрых способов получить PID нужного процесса.