Как пользователям Linux, нам иногда нужно знать, какой номер порта прослушивает тот или иной процесс. Все порты связаны с идентификатором процесса или службы в операционной системе. Как же найти этот порт? В этой статье мы представим три различных метода, которые вы можете использовать, чтобы узнать, какой порт прослушивает процесс.
Способ 1: Использование команды netstat
Netstat, утилита сетевой статистики, используется для отображения информации о сетевых подключениях. Сюда входит информация о статистике интерфейсов, таблицы маршрутизации и многое другое. Эта утилита доступна в большинстве систем Linux, поэтому мы используем ее, чтобы узнать, какие порты используют определенные процессы в системе.
Чтобы использовать команду netstat, необходимо установить утилиту net-tools, если она еще не установлена в вашей системе, с помощью следующей команды:
1 | sudo apt install net-tools |
Затем выполните следующую команду:
1 | sudo netstat -ltnp |
Приведенная выше команда выдает информацию netstat, основанную на следующих характеристиках:
- l: отображать только прослушиваемые сокеты
- t: отображение tcp-соединения
- n: отображение адресов в числовом виде
- p: отображение идентификатора процесса/имени программы
Например, в приведенном выше выводе команды netstat, программа sshd с идентификатором процесса 2118 запущена на порту номер 22.
Вы также можете отфильтровать статистику для определенного порта, включив в команду функцию grep.
Пример:
1 | sudo netstat -ltnp | grep -w ':22' |
Эта команда подскажет вам, какой именно процесс запущен на порту номер 22.
Метод 2: Использование команды lsof
Утилита lsof или List of Open Files помогает перечислить все открытые файлы в системе Linux. Мы можем использовать эту утилиту для просмотра всех процессов, открытых на определенном порту.
Для использования команды lsof необходимо установить утилиту lsof, если она еще не установлена в вашей системе, выполнив следующую команду:
1 | sudo apt install lsof |
Давайте воспользуемся lsof для просмотра служб, прослушивающих определенный порт.
Пример:
1 | sudo lsof -i :22 |
Эта команда выведет список всех процессов, использующих TCP-порт номер 22.
Метод 3: Использование команды fuser
Команда fuser показывает, какие идентификаторы процессов используют названные файлы, сокеты или файловые системы. Мы можем использовать эту команду для просмотра идентификаторов процессов, запущенных на определенном TCP-порту.
Для использования команды fuser необходимо установить утилиту psmisc, если она еще не установлена в вашей системе, выполнив следующую команду:
1 | sudo apt install psmisc |
Давайте просмотрим все идентификаторы процессов, запущенных на TCP-порту 22, с помощью следующей команды:
1 | sudo fuser 22/tcp |
Вы можете указать любой номер порта в этой команде для просмотра прослушивающих его процессов.
В приведенном выше выводе видно, что процесс ID 2118 прослушивается на TCP 22.
Чтобы посмотреть, какой программе соответствует этот идентификатор процесса, выполните следующую команду:
Синтаксис:
1 | ps -p [processID] -o comm= |
В нашем случае:
1 | ps -p 2118 -o comm= |
Вывод показывает, что ID процесса 2118 соответствует имени программы sshd. Таким образом, процесс ID 2118 программы sshd прослушивает порт номер 22.
Заключение
С помощью трех методов, которые вы изучили в этой статье, вы можете легко посмотреть, какой TCP порт прослушивает определенный процесс в Linux.