Меню Рубрики

Узнать кто слушает порт linux

4 способа узнать, какие порты прослушиваются в Linux

Порт может в одном из следующих состояний: открыт (open), фильтруется (filtered), закрыт (closed), без фильтрации (unfiltered). Порт называется открытым если какое-либо приложение, служба на целевой машине прослушивает (listening) его в ожидании соединений/пакетов. Также по отношению к службе часто употребляют термин «привязка» (bind), который означает, что служба назначена к определённому порту, то есть после её запуска она будет прослушивать его, чтобы ответить на входящие запросы.

Термин «привязка» используют по отношению к службам, которые прослушивают порт на постоянной основе и готовы принять входящие соединения. Примером таких служб являются SSH, MySQL, веб-сервер. Некоторые приложения (например, веб-браузер) делают исходящие соединения. Для этих исходящих соединений обычно используется порт с номером в десятки тысяч, например, 37830 или 46392 или 54284 или что-то подобное. Но они используют порт на короткое время — только чтобы отправить запрос и получить ответ. Сразу после получения ответа программа освобождает порт. Если ей понадобится вновь сделать запрос, то она может выбрать любой другой незанятый порт — необязательно тот же самый. Такие порты не являются прослушивающими, то есть они не принимают внешние запросы на инициализацию соединения. Это состояние сокета называется ESTABLISHED, его нужно отличать от прослушивания порта (LISTENING), то есть от открытых портов.

В этой статье будут рассмотрены четыре способа проверить открытые порты, точнее говоря, какие порты прослушиваются в системе, а также показано вам как найти приложение (службу) прослушивающие определённый порт в Linux.

1. Используя команду netstat

Netstat — это широко применяемый инструмент для запроса информации о сетевой подсистеме Linux. Вы можете использовать её для показа всех открытых портов примерно так:

Флаг -l говорит netstat вывести все прослушивающие сокеты, -t означает показать все TCP соединения, -u для показа всех UDP соединений и -p включает показывать PID и имя программы/приложения, которое прослушивает порт.

Обратите внимание, что вместо номеров портов программа выводит имена популярных служб. Если вы хотите, чтобы порты были показаны как числа, то добавьте флаг -n.

Вы также можете использовать команду grep для определения, какое приложение прослушивает определённый порт, например:

Можно искать не по имени службы, а по номеру порта, с помощью этого можно определить, какая служба привязана к определённому порту:

Если вам нужно чтобы данные постоянно обновлялись, то используйте ключ -c, тогда новые данные будут выводиться каждую секунду.

2. Используя команду ss

ss — это другой полезный инструмент для отображения информации о сокетах. Её вывод выглядит похоже с тем, какую информацию даёт netstat. В документации netstat сказано, что она в основном устарела и её заменой является как раз ss.

Следующая команда покажет все прослушиваемые порты для TCP и UDP соединений в виде цифровых значений:

Опции имеют такое же значение:

  • -l означает показать только прослушивающие сокеты (по умолчанию они опускаются);
  • -t означает показать TCP сокеты;
  • -u означает показать UDP сокеты.

Если добавить ключ -p, то программа дополнительно покажет процессы, использующие сокет:

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

3. Используя программу Nmap

Nmap — это мощный и популярный инструмент исследования сети и сканер портов. Для установки nmap в вашу систему используйте стандартный менеджер пакетов как показано ниже.

На Debian/Ubuntu/Linux Mint:

На CentOS/RHEL:

На Fedora 22+:

На Arch Linux:

Для сканирования открытых/прослушиваемых портов на вашей системе Linux, запустите следующую команду (она может занять долгое время для завершения):

4. Используя команду lsof

Последний инструмент, который мы рассмотрим в этой статье, это команда lsof, которая используется для вывода списка открытых файлов в Linux. Поскольку в Unix/Linux всё является файлом, открытый файл может быть потоком или сетевым файлом.

Для вывода списка всех Интернет и сетевых файлов, используйте опцию -i. Помните, что эта команда показывает смесь имён служб и цифровых портов.

Чтобы найти, какое приложение прослушивает определённый порт, запустите lsof в следующей форме:

Вот и всё! В этой статье мы узнали четыре способа проверить открытые порты в Linux. Мы также показали, как проверить, какой процесс привязан к определённому порту.

О том, как правильно понимать вывод этих команд, смотрите статью «Что означают 0.0.0.0, :*, [::], 127.0.0.1. Как понять вывод NETSTAT».

Источник

3 способа узнать, какой процесс прослушивает определенный порт

Порт — логический объект, который представляет собой конечную точку связи и связан с данным процессом или службой в операционной системе. В предыдущих статьях мы объяснили, как узнать список всех открытых портов в Linux и как проверить доступность удаленных портов с помощью команды «nc».

В этой статье мы покажем три разных способа поиска процесса, прослушивающего конкретный порт в Linux.

1. Использование команды netstat

Команда netstat (network statistics) используется для отображения информации о сетевых подключениях, таблицах маршрутизации, статистике интерфейса и за ее пределами. Она доступна во всех Unix-подобных операционных системах, включая Linux, а также в ОС Windows.

Если netstat не установлен у вас по умолчанию, используйте следующую команду для его установки:

После установки вы можете использовать его с командой grep, чтобы найти процесс, прослушивающий конкретный порт в Linux, следующим образом:


В приведенной выше команде используются следующие опции:

  • l — указывает netstat, — на то, что необходимо показывать только прослушивающие сокеты.
  • t — указывает на отображение tcp-соединений.
  • n — указывает на то, что необходимо показывать ip-адреса.
  • p — позволяет показывать идентификатор процесса и имя процесса.
  • grep -w — показывает соответствие точной строки (‘:80’).

2. Используя команду lsof

Команда lsof (LiSt Open Files) используется для отображения всех открытых файлов в системе Linux. Чтобы установить её в свою систему, введите команду, приведенную ниже.

Чтобы найти процесс, прослушивающий конкретный порт, введите:

3. Использование команды fuser

fuser показывает PID процессов с использованием указанных файлов или файловых систем в Linux.

Вы можете установить его следующим образом:

Вы можете найти процесс, прослушивающий конкретный порт, выполнив приведенную ниже команду:

Затем найдите имя процесса с использованием номера PID, с командой ps — таким образом:

Вопросы по статье задавайте в комментариях ниже.

Спасибо за уделенное время на прочтение статьи!

Если возникли вопросы, задавайте их в комментариях.

Подписывайтесь на обновления нашего блога и оставайтесь в курсе новостей мира инфокоммуникаций!

Чтобы знать больше и выделяться знаниями среди толпы IT-шников, записывайтесь на курсы Cisco от Академии Cisco, курсы Linux от Linux Professional Institute на платформе SEDICOMM University.

Источник

4 способа узнать, какие порты прослушиваются в Linux

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

В этой статье мы объясним четыре способа проверки открытых портов, а также покажем вам, как найти, какое приложение прослушивает каждый конкретный порт в Linux.

1. Использование команды Netstat

Netstat — широко используемый инструмент для сбора информации о сетевой подсистеме Linux. Вы можете использовать его для вывода всех открытых портов следующим образом:

Флаг -l указывает netstat вывести все прослушивающие сокеты (сокет это ip + порт), -t показывает все TCP-соединения, -u отображает все соединения UDP, а -p позволяет выводить имя приложения/программы, прослушивающее порт.

Чтобы выводить числовые значения (номер порта), а не имена служб, добавьте флаг -n.

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

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

2. Использование команды ss

ss — еще один полезный инструмент для отображения информации о сокетах. Он в своём использовании похож на netstat. Следующая команда выведет все порты прослушивающие соединения TCP и UDP в числовом формате.

3. Использование команды Nmap

Nmap — мощный и популярный инструмент для исследования сети и сканирования портов. Чтобы установить nmap в вашу систему, используйте диспетчер пакетов по умолчанию:

Чтобы «отсканировать» все открытые/прослушивающие порты в вашей Linux-системе, выполните следующую команду (она займет много времени для своего выполнения).

4. Использование команды lsof

Конечным инструментом, который мы рассмотрим для поиска открытых портов, является команда lsof.

Чтобы вывести все интернет-файлы и сетевые файлы, используйте опцию -i. Обратите внимание, что эта команда показывает сочетание имен служб и числовых портов.

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

На этом всё! В этой статье мы объяснили четыре способа узнать какие порты прослушиваются в Linux. Мы также показали, как проверить, какие процессы связаны с конкретными портами.

Спасибо за уделенное время на прочтение статьи!

Если возникли вопросы, задавайте их в комментариях.

Подписывайтесь на обновления нашего блога и оставайтесь в курсе новостей мира инфокоммуникаций!

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

  • Узнать кто в системе linux
  • Узнать информацию о системе linux
  • Узнать значение переменной окружения linux
  • Узнать всех пользователей linux
  • Узнать в какие группы входит пользователь linux