Как узнать, какой процесс использует порт в Linux

Для диагностики сети и отладки приложений важно знать, какие открытые порты используются. В Linux есть несколько способов это узнать.

Использование командной строки

Команда netstat показывает активные соединения и прослушивание порта. Например, `netstat -tulnp`.

Команда ss (socket statistics) ⏤ более современная замена netstat. `ss -tulnp` покажет TCP и UDP порт.

Утилита lsof (list open files) позволяет найти идентификатор процесса (PID) по сетевому порту. `lsof -i :[номер порта]`.

Анализ вывода

В выводе команд ищите строку с нужным портом. Обратите внимание на вывод списка процессов и информацию о процессах, чтобы определить, какое application использует системный порт;

Помните, что firewall (например, iptables) может блокировать трафик. Проверьте сетевые настройки, если не видите нужный сетевой порт.

Более детальный анализ и примеры

Рассмотрим подробнее использование каждой утилиты для проверки порта и выявления использующих его application.

Команда netstat

Команда netstat с опцией `-tulnp` выводит список активных соединений (active connections) и прослушивание порта (listening port) для TCP и UDP протоколов. Опция `-n` предотвращает разрешение имен хостов, что ускоряет вывод списка процессов. Столбец «Local Address» показывает сетевой порт, который слушает сетевая служба. Последний столбец показывает PID и имя process, использующего этот системный порт.

Пример:

netstat -tulnp | grep 8080

Эта команда покажет все процессы, слушающие TCP порт 8080.

Команда ss

Команда ss, как более современная альтернатива, также предоставляет информацию об открытых портах. Опция `-l` показывает только listening port, `-t` и `-u` ⏤ TCP порт и UDP порт соответственно, `-n` отключает разрешение имен, а `-p` показывает идентификатор процесса (PID) и имя process. Команда ss часто работает быстрее, чем команда netstat, особенно при большом количестве активных соединений. как посмотреть на каком порту работает приложение linux

Читайте также  Фальш камин своими руками

Пример:

ss -tulnp | grep 22

Эта команда покажет, что слушает сетевой порт 22 (обычно SSH).

Утилита lsof

Утилита lsof ⏤ мощный инструмент для поиска файлов, открытых портов и многого другого. Для поиска process, использующего определенный сетевой порт, используйте опцию `-i :[номер порта]`. Например, `lsof -i :53` покажет все процессы, использующие системный порт 53 (обычно DNS). Информация о процессах включает в себя PID, имя команды и другие детали.

Пример:

lsof -i :80

Эта команда покажет все процессы, использующие сетевой порт 80 (обычно HTTP).

Когда ничего не видно: Firewall и сетевые настройки

Если ни одна из команд не показывает ожидаемый listening port, проверьте firewall. Например, если используется iptables, убедитесь, что трафик на нужный сетевой порт разрешен. Команды для управления iptables требуют прав суперпользователя (root).

Пример (разрешение трафика на TCP порт 8080):

sudo iptables -A INPUT -p tcp --dport 8080 -j ACCEPT

Также убедитесь, что сетевые настройки вашего server или application правильно сконфигурированы. Возможно, application пытается слушать сетевой порт, который уже занят другим process, или неправильно настроен listening port.

Использование в скриптах и мониторинг сети

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

Знание того, как найти идентификатор процесса (PID) и listening port, используемые application, является важным навыком для отладки приложений и управления сетевыми службами в терминал linux и командная строка. Команда netstat, команда ss и утилита lsof ⎻ мощные инструменты для этой задачи. Не забывайте учитывать влияние firewall (например, iptables) и сетевые настройки при проверке порта и активных соединениях.

Читайте также  Как выбрать обои в классическом стиле для дома?

Ссылка на основную публикацию