Как узнать, какой компонент использует порт?

Как узнать с помощью командной строки, какой именно компонент использует определенный порт в Linux-системах?

 

Чтобы найти компонент, использующий к примеру TCP|UDP-порт 80 в операционных системах Linux, можно выполнить одну из следующих команд:

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

fuser - инструмент командной строки, идентифицирующий процессы, использующие файлы или сокеты.

lsof - инструмент командной строки, который выводит список открытых файлов в системе Linux/UNIX и список всех открытых файлов и процессов, открывших указанные файлы.

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

 

Определение компонента использующего порт

Подключитесь к серверу через PuTTY (или любой другой клиентский терминал)

Выполните следующую команду:

# netstat -tulpn | grep :80

Пример вывода данных:

tcp        0      0 0.0.0.0:80                  0.0.0.0:*                   LISTEN      1222/nginx

Где

0 0.0.0.0:80 - Source IP:Port

1222/nginx - PID/Process name

 

Определение компонента, использующего порт с помощью pid

Сначала необходимо найти PID процесса, открывшего порт.

# fuser 80/tcp

Пример вывода данных:

80/tcp:              12161 21776 25250 25393

После чего необходимо выяснить имя процесса, связанного с pid

# ls -l /proc/12161/exe

Пример вывода данных:

lrwxrwxrwx. 1 root root 0 Aug  9 14:12 /proc/12161/exe -> /usr/sbin/nginx

 

Определение компонента, с помощью lsof

Выполните команду:

# lsof -i :80 | grep LISTEN

Пример вывода данных:

apache2   1807     root    3u  IPv4   6372      0t0  TCP *:www (LISTEN)
apache2   1816 www-data    3u  IPv4   6372      0t0  TCP *:www (LISTEN)
apache2   1817 www-data    3u  IPv4   6372      0t0  TCP *:www (LISTEN)

 

 

 

  • 3 Пользователи нашли это полезным

Помог ли вам данный ответ?