После настройки сетевых служб важно обратить внимание на порты, принимающие подключения на сетевых интерфейсах. Любые открытые порты могут быть доказательством вторжения. Просмотреть открытые порты можно двумя способами. Менее надёжный способ — опросить сетевой стек с помощью команды netstat -an или lsof -i.
Этот способ не очень надёжен, так как эти программы не подключаются к компьютеру по сети, а просто определяют, что происходит в системе. По этой причине, эти приложения часто подменяются нападающими. Таким способом взломщики пытаются скрыть свои следы, если они незаконно открыли порты. Другим более надёжным способом проверки открытых портов является использование сканера портов, например nmap. Все команды netstat, ss, netcat относится к сетевым утилитам и доступны по-умолчанию в большинстве linux-дистрибутивах.
Проверка открытых портов в Linux может понадобиться, чтобы убедиться, что в системе не запущены лишние службы.
Если вы помните, порт это число, которое приложение будет использовать для связи с другой программой, предоставлять сервис и т.д. Чтобы получить представление о том, какие службы работают в системе, необходимо проверить открытые порты системы. Часто мы устанавливаем программу, которая является сервисом, а потом забываем о ней, поэтому наша машина может прослушивать порты в ожидании соединения. Злоумышленники любят, когда порты открыты, так как приложения, прослушивающие эти порты, являются простыми целями. Чтобы обеспечить нашей системе Ubuntu Linux (или любой другой системе в этом отношении) максимальную безопасность, мы должны знать о том, какие порты открыты и для каких служб.
Ubuntu. Как проверить открытые порты? NMAP
Определить открытых портов в Linux через nmap
Многие системные администраторы и администраторы сетей также находят её полезной для таких задач как инвентаризация сети, управления расписанием служб обновлений и мониторинга аптайма хостов или служб. Возможно, это не лучший вариант перевода на русский язык, но он довольно точно отображает суть — инструмент для исследования сети и проверки безопасности.
Nmap («Network Mapper») — это утилита с открытым исходным кодом для исследования сети и проверки безопасности.
Утилита кроссплатформенна, бесплатна, поддерживаются операционных системы Linux, Windows, FreeBSD, OpenBSD, Solaris, Mac OS X. Nmap умеет сканировать различными методами — например, UDP, TCP connect(), TCP SYN (полуоткрытое), FTP proxy (прорыв через ftp), Reverse-ident, ICMP (ping), FIN, ACK, SYN и NULL-сканирование. Выбор варианта сканирования зависит от указанных ключей, вызов nmap выглядит следующим образом:
nmap цель
Следующая команда, запущенная с консоли, определяет, какие порты ждут TCP-соединений из сети:
nmap -sT -O localhost
Сканирование всех TCP-порты целевого IP-адреса
nmap –sT 192.168.75.131
UDP-сканирование – сканирование хоста на наличие UDP-служб. Это сканирование используется для просмотра открытых UDP-портов.
Работа с COM-портом (RS-232) в Linux
nmap –sU 192.168.75.131
Статистика открытых портов в Linux через netstat
Команда NETSTAT предназначена для получения сведений о состоянии сетевых соединений и слушаемых на данном компьютере портах TCP и UDP, а также, для отображения статистических данных по сетевым интерфейсам и протоколам. Эта команда предоставляет много данных, помогающих специалисту диагностировать и устранять сложные проблемы с сетью.
Команда netstat позволяет просматривать сетевые подключения, таблицы маршрутизации, сведения об интерфейсах и дополнительную информацию о сети.
Однако они окажутся полезными и для оценки сетевого трафика, и для определения наиболее интенсивно используемых интерфейсов. В системах с несколькими сетевыми интерфейсами такие данные могут быть полезными для выявления чрезмерно загруженных интерфейсов и интерфейсов, которые не должны быть активными.
Формат командной строки:
NETSTAT [-a] [-b] [-e] [-f] [-n] [-o] [-p протокол] [-r] [-s] [-t] [интервал]
Команда netstat умеет показывать сетевые соединения (входящие/исходящие), таблицу маршрутизации, статистику по сетевым интерфейсам и т.д. Список всех открытых портов (TCP):
netstat -at
Список всех открытых портов (UDP)
netstat -au
Список только прослушиваемых портов (TCP)
netstat -lt
Статистика по всем открытым портам
netstat -s
Подробное отображение списка с открытыми портами — добавлен PID и имя процессов
netstat -p
Объединим все ключи в полезную команду для просмотра открытых TCP/UDP портов с именами процессов (может понадобиться root-доступ)
netstat -ltupn
Список подключенных хостов
netstat -lantp | grep ESTABLISHED |awk » | awk -F: » | sort -u
Узнать открытые порты в Linux через lsof
Утилита lsof позволяет посмотреть все открытые в системе соединения, в том числе и сетевые, для этого нужно использовать опцию i.
Утилита командной строки lsof (List Open Files) используется для получения информации об открытых различными процессами файлах (а с точки зрения unix все является файлами — каталоги, устройства, сокеты и т. д.).
Давайте разберемся с практическим применением lsof. Если ввести команду lsof без аргументов, можно увидеть все файлы, принадлежащие процессам. Утилита lsof умеет отображать процессы, которые работают с определенным файлом или сокетом.
Список всех сетевых соединений
lsof -i
Список процессов, работающих с портом 80
lsof -i :80
Вы можете использовать следующую команду:
lsof -i -P |grep pid
Статистика открытых портов в Linux через ss
Однако, ss делает это проще и быстрее, чем netstat. Кроме того, ss даёт более подробные сведения о TCP-подключениях и о состояниях соединений, чем большинство других инструментов. Утилита ss позволяет просматривать информацию об используемых сокетах в системе.
Команда ss — это инструмент, используемый для вывода сетевой статистики в виде, похожем на тот, который выдаёт команда netstat.
Эта команда обладает схожим функционалом к netstat, но есть и уникальные возможности. Например можно фильтровать вывод по установленным соединениям с определенным портом.
Список процессов, использующие соединения в данный момент
ss -p
Список сокетов в режиме прослушивания
ss -l
Пример фильтра — список всех соединений к порту 80
ss -o state established ‘( dport = :www or sport = :www )’
Открытые порты в Linux через tcpdump
С помощью tcpdump легко снять трафик с вашего сетевого интерфейса, для дальнейшего разбора. Без tcpdump сложно разобрать ошибки, которые возникают при работе с сетью и IP телефонией в целом. Tcpdump, по умолчанию, принимает только первые 68 96 байт данных из пакета.
Tcpdump полезное и необходимое приложения для Linux/UNIX систем.
Если вы хотите, посмотреть более подробные пакеты, то добавьте опцию -s , где число обозначает количество байтов, которые вы хотите захватить. Если установить -s 0 (ноль)- это означает захватывать все пакеты.
proto — работает с протоколами tcp, udp и icmp. (Не надо писать proto)
tcpdump icmp
port — захватывает трафик по определенному порту
tcpdump port 5060
src, dst port — захватывает трафик по определенному порту от источника или к IP адресу назанчения
tcpdump src port 5060tcpdump dst port 5060
src/dst, port, protocol — сочетание всех трех выражений
tcpdump src port 5060 and tcp tcpdump udp and src port 5060
В конце статьи можно сформулировать следующий вывод: поскольку файл и процесс — два ключевых понятия в операционной системе, утилита lsof может оказаться незаменимым помощником администратора в тех случаях, когда надо разобраться, как работает система, а особенно в тех случаях, когда система скомпрометирована. И она тем полезнее, чем больше ваша система и чем больше вы с ней работаете, чем лучше вы понимаете, что она может. Когда вы освоите ее возможности, вы сможете создать отдельные скрипты для обработки тех огромных массивов информации, которые выдает эта программа. Можно, например, запускать команду lsof -i через определенные промежутки времени, чтобы сравнивать полученные данные. Если будут выявлены отличия в числе открытых процессов или другие отличия, удовлетворяющие заданному критерию, скрипт может сформировать сообщение администратору.
Источник: linux16.ru
4 способа узнать, какие порты прослушиваются в Linux (открыты)
В рамках нашей сегодняшней статьи Вы узнаете 4 способа найти открытые порты в Linux. Открытый порт сам по себе не представляет опасности. Однако вполне может стать угрозой безопасности операционной системы, как только его начнет использовать программа. Для определения того, какая именно программа слушает конкретный порт в данный момент, существуют специальные утилиты — netstat, ss, Nmap, lsof.
Прежде всего, данный материал расскажет о четырех инструментах для выявления открытых портов. И расскажет о том, как обнаружить программное обеспечение, прослушивающее конкретные порты в операционной системе Linux.
Содержание:
- Что такое порт
- Как узнать, какие порты прослушиваются / открыты в Linux
- Учимся использовать netstat
- Устанавливаем netstat
- Устанавливаем netstat в Debian / Ubuntu
- Устанавливаем netstat в CentOS / RHEL
- Устанавливаем netstat в OpenSuse
- Устанавливаем netstat в Arch Linux
- Выводим список открытых портов в Linux с помощью ss
- Узнаем с помощью ss значения pid процессов, которые прослушивают порты
- Устанавливаем nmap
- Устанавливаем nmap в Debian / Ubuntu
- Устанавливаем nmap в CentOS / RHEL
- Устанавливаем nmap в Fedora
- Выводим на экран все IP-сокеты
- Выводим список процессов, прослушивающих конкретный порт с помощью lsof
Что такое порт
Порт — это логический объект, который является конечной точкой связи в сетевых соединениях. Он непосредственно связан с процессом или службой в операционной системе целевого устройства. При этом, любой порт способен находиться в одном из четырех возможных состояний:
- открытом;
- закрытом;
- отфильтрованном (filtered);
- нефильтрованном (unfiltered).
В том случае, если порт открыт — программное обеспечение целевого оборудования занимается тем, что прослушивает его соединения и пакеты.
Как узнать, какие порты прослушиваются / открыты в Linux
Специально для Вас мы подобрали топ-4 решений, позволяющих быстро выявлять открытые порты в Linux. А также — находить любое связанное с ними программное обеспечение.
Учимся использовать netstat
Утилита netstat (от англ. Network Statistics) — это популярный инструмент, приспособленный для анализа данных о сети в Linux и других UNIX-подобных операционных системах. Сегодня любой сетевой и системный администратор должен уметь работать с этой утилитой. В том числе — выводить на экран список открытых портов.
Устанавливаем netstat
Чтобы установить netstat — воспользуйтесь командой, соответствующей Вашему дистрибутиву Linux.
Устанавливаем netstat в Debian / Ubuntu
Для установки netstat в дистрибутивах на основе Debian / Ubuntu введите с правами суперпользователя в командную строку команды apt update и apt install :
После введения команды — дождитесь завершения обновления списка доступных к скачиванию пакетов программного обеспечения, а также скачивания и установки файлов программы.
Устанавливаем netstat в CentOS / RHEL
В дистрибутивах Linux на основе CentOS / RHEL для установки Netstat введите с правами суперпользователя команду yum install :
После введения команды — дождитесь скачивания и установки пакетов программного обеспечения.
Устанавливаем netstat в OpenSuse
В дистрибутивах на основе OpenSuse введите в командную строку команду zypper install с root-правами:
После введения команды — дождитесь скачивания и установки пакетов программного обеспечения.
Устанавливаем netstat в Arch Linux
При использовании дистрибутива Arch Linux введите в командную строку команду pacman с правами root и опцией -S :
Выводим список открытых портов в Linux с помощью Netstat
Давайте попробуем вывести в командную строку список открытых портов с помощью утилиты netstat. Для этого вводим в командную строку команду netstat с правами суперпользователя и опциями -ltupan :
Давайте проанализируем значение выбранной комбинации опций:
- -l — выводит на экран все прослушивающиеся сокеты (сочетания IP-адреса и номера порта);
- -t — указывает, что нужно показать все TCP-соединения сетевой подсистемы;
- -u — указывает, что нужно показать UDP-соединения сетевой подсистемы;
- -a — показывает только активные соединения;
- -n — вместо названий служб показывает номера портов.
Расширяем возможности netstat с помощью команды grep
Пользователь может расширить возможности утилиты netstat за счет использования фильтрации вывода — с помощью команды grep . Например, таким образом можно выяснить, какое именно ПО занимается прослушиванием конкретного порта. Для этого введите в командную строку команду netstat с опцией -tulpan , поставьте символ конвейера (вертикальную черту — | ) и добавьте команду grep с аргументом «ssh» :
Также Вы можете найти все приложения, прослушивающие определенный порт. Для этого введите комбинацию команд как в прошлом примере, однако в качестве аргумента для команды grep — используйте двоеточие и номер интересующего Вас порта (к примеру, «:80» )
Учимся использовать команду ss
Команда ss (от англ. Socket Statistics) — это еще один инструмент для Linux, позволяющий получить подробную информацию о сокетах в операционной системе. Стоит отметить, что эта утилита во многом очень похожа на netstat по своим возможностям.
Выводим список открытых портов в Linux с помощью ss
Предположим, что Вам нужно определить, какие приложения занимаются прослушиванием соединений TCP или UDP. В таком случае введите в командную строку команду ss с правами суперпользователя и опциями -lntu :
Давайте проанализируем значение выбранной комбинации опций:
- -l — выводит на экран все прослушивающиеся сокеты;
- -n — вместо названий служб показывает номера портов;
- -t — указывает, что нужно показать все TCP-соединения сетевой подсистемы;
- -u — указывает, что нужно показать все UDP-соединения сетевой подсистемы.
В данном случае значения опций аналогичны тем, которые использовались выше с утилитой netstat .
Узнаем с помощью ss значения pid процессов, которые прослушивают порты
Утилита ss позволяет пользователю вывести на экран список значений pid процессов, которые открыли порты. Для этого введите от имени суперпользователя в командную строку команду ss с опциями, показанными в предыдущем примере. И добавьте к ним опцию -p :
- 12 примеров команд ss для мониторинга сетевых подключений.
- Введение в команду ss.
- Команда ss с примерами: отображение информации о сети/сокете TCP/UDP в Linux.
Учимся использовать nmap
Утилита nmap — это популярный инструмент для исследования сетевой подсистемы и проверки состояния портов в UNIX-подобных ОС. Стоит отметить, что данная утилита обладает большими возможностями. И потому часто используется специалистами в сфере сетевого и системного администрирования.
Устанавливаем nmap
Для установки nmap воспользуйтесь командами, соответствующими установленному на Ваш компьютер дистрибутиву Linux.
Устанавливаем nmap в Debian / Ubuntu
При использовании дистрибутивов на основе Debian / Ubuntu — введите в командную строку с правами root команды apt update и apt install :
После этого следует дождаться окончания процессов скачивания и установки пакетов программного обеспечения.
Устанавливаем nmap в CentOS / RHEL
Чтобы установить nmap при использовании дистрибутивов на основе CentOS / RHEL — введите в командную строку команду yum с правами суперпользователя:
После введения команды следует дождаться завершения скачивания и установки.
Устанавливаем nmap в Fedora
При использовании дистрибутива Fedora версии 22 и выше — введите с правами суперпользователя в командную строку команду dnf install :
После этого следует дождаться окончания процессов скачивания и установки пакетов программного обеспечения.
Выводим список открытых портов в Linux с помощью nmap
Давайте попробуем вывести на экран список всех портов, которые прослушиваются в операционной системе Linux, с помощью утилиты nmap. Для этого введите с root-правами в командную строку команду nmap и опции -sT -sU -sV , добавив Ваш IP-адрес в качестве аргумента:
Давайте проанализируем значение выбранной комбинации опций:
- -sT — указывает, что нужно показать все TCP-соединения;
- -sU — указывает, что нужно показать все UDP-соединения;
- -sV — указывает, что требуется включить обнаружение версий программного обеспечения.
Дополнительные опции утилиты nmap
C помощью опции -p Вы сможете просканировать конкретные порты.
- все порты с 1 по 65535 — -p- ;
- конкретный порт (например, 22) — -p22 ;
- диапазон портов — -p1-22 ;
- комбинацию списка UDP-портов и диапазона TCP-портов — p U:53,111,137,T:21-25 .
С помощью опции -n (запрет обратного просмотра DNS) можно сократить время сканирования, которое бывает довольно продолжительным.
- 32 примера использования команды Nmap для Linux-систем.
- 29 практических примеров команды Nmap для сетевых администраторов Linux.
Учимся использовать утилиту lsof
Утилита lsof (от англ. LiSt of Open Files) — это инструмент командной строки для UNIX-подобных операционных систем, предназначенный для обнаружения файлов, использующихся теми или иными процессами.
Выводим на экран все открытые IP-сокеты
С помощью данной утилиты можно вывести на экран все открытые соединения и инициировавшие их процессы в операционной системе. Для этого введите от имени суперпользователя в командную строку команду lsof с опцией -i :
Выводим список процессов, прослушивающих конкретный порт с помощью lsof
Зная конкретный порт — можно легко найти программу, которая его прослушивает. Для этого введите от имени суперпользователя в командную строку команду lsof с опцией -i и добавьте к ней в качестве аргумента номер порта после двоеточия (например, :80 ):
Важно: обратите внимание, что вывод команды по умолчанию уже содержит и значения PID, и названия соответствующих служб.
Выводы
Вам удалось без труда отследить открытые порты в Linux при помощи четырех различных утилит — netstat, ss, nmap и lsof. Также эти инструменты позволяют отслеживать приложения, прослушивающие порты. Надеемся, что использование советов из этого пошагового руководства поможет Вам решать целый спектр задач в сфере сетевого и системного администрирования.
Спасибо за время, которое Вы уделили прочтению статьи!
Если у Вас возникли вопросы — задавайте их в комментариях. А также подписывайтесь на обновления нашего блога и оставайтесь в курсе новостей мира инфокоммуникаций!
Курсы Cisco, Linux, кибербезопасность, DevOps / DevNet, Python с трудоустройством!
Спешите подать заявку! Группы стартуют 25 января, 26 февраля, 22 марта, 26 апреля, 24 мая, 21 июня, 26 июля, 23 августа, 20 сентября, 25 октября, 22 ноября, 20 декабря.
Что Вы получите?
- Поможем стать экспертом по сетевой инженерии, кибербезопасности, программируемым сетям и системам и получить международные сертификаты Cisco, Linux LPI, Python Institute.
- Предлагаем проверенную программу с лучшими учебниками от экспертов из Cisco Networking Academy, Linux Professional Institute и Python Institute, помощь сертифицированных инструкторов и личного куратора.
- Поможем с трудоустройством и стартом карьеры в сфере IT — 100% наших выпускников трудоустраиваются.
Как проходит обучение?
- Проведем вечерние онлайн-лекции на нашей платформе.
- Согласуем с вами удобное время для практик.
- Если хотите индивидуальный график — обсудим и реализуем.
- Личный куратор будет на связи, чтобы ответить на вопросы, проконсультировать и мотивировать придерживаться сроков сдачи экзаменов.
- Всем, кто боится потерять мотивацию и не закончить обучение, предложим общение с профессиональным коучем.
А еще поможем Вам:
- отредактировать или создать с нуля резюме;
- подготовиться к техническим интервью;
- подготовиться к конкурсу на понравившуюся вакансию;
- устроиться на работу в Cisco по специальной программе. Наши студенты, которые уже работают там: жмите на #НашиВCisco Вконтакте, #НашиВCisco Facebook.
Чтобы учиться на курсах Cisco, Linux LPI, кибербезопасность, DevOps / DevNet, Python, подайте заявку или получите бесплатную консультацию.
Опубликовано: 16:33, 27 февраля, 2019. Обновлено: 17:47, 20 февраля, 2023.
Рубрики:
Источник: blog.sedicomm.com
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.
Найти процесс по номеру порта в Linux
При работе в Unix-системах мне частенько приходится определять, какой процесс занимает порт, например, чтобы остановить его и запустить на нём другой процесс. Поэтому я решил написать эту небольшую статью, чтоб каждый, прочитавший её, мог узнать, каким процессом занят порт в Ubuntu, CentOS или другой ОС из семейства Linux.
Как же вычислить, какие запущенные процессы соотносятся с занятыми портами? Как определить, что за процесс открыл udp-порт 2222, tcp-порт 7777 и т.п.? Получить подобную информацию мы можем нижеперечисленными методами:
netstat утилита командной строки, показывающая сетевые подключения, таблицы маршрутизации и некоторую статистику сетевых интерфейсов; fuser утилита командной строки для идентификации процессов с помощью файлов или сокетов; lsof утилита командной строки, отображающая информацию об используемых процессами файлах и самих процессах в UNIX-системе; /proc/$pid/ в ОС Linux /proc для каждого запущенного процесса содержит директорию (включая процессы ядра) в /proc/$PID с информацией об этом процессе, в том числе и название процесса, открывшего порт.
Использование вышеперечисленных способов может потребовать права супер-пользователя.
Теперь давайте рассмотрим каждый из этих способов по отдельности.
Пример использования netstat
Введём в командную строку команду:
Получим примерно такой результат:
Из вывода видно, что 4942-й порт был открыт Java-приложением с PID’ом 3413. Проверить это можно через /proc :
Примерный результат выполнения команды:
При необходимости получения информации по конкретному порту (например, 80-му, используемого обычно для HTTP) вместо отображения всей таблицы можно grep -ануть результат:
Результат будет примерно такой:
Пример использования fuser
Для того, чтобы вычислить процесс, занимающий порт 5050, введём команду:
И получим результат:
Аналогичным образом, как мы делали выше, можно посмотреть процесс в его директории /proc/$PID , в которой можно найти много интересной дополнительной информации о процессе, такую как рабочая директория процесса, владелец процесса и т.д., но это выходит за рамки этой статьи.
Пример использования lsof
При использовании lsof введите команду по одному из шаблонов:
Пример реального использования:
После этого мы можем получить более полную информацию о процессах с PID’ами 2123, 2124 и т.д..
На выходе получим примерно следующее:
Получить информацию о процессе также можно следующим проверенным способом:
В этом выводе можно выделить следующие параметры:
- 2727 — PID;
- www-date — имя пользователя владельца;
- www-date — название группы;
- /usr/sbin/apache2 -k start — название команды с аргументами;
- 14:27:33 — время работы процесса в формате [[дд-]чч:]мм:сс;
- Mon Nov 30 21:21:28 2015 — время старта процесса.
Надеюсь, у меня получилось доступно объяснить, как определить процесс по порту в Linux-системах, и теперь у вас ни один порт не останется неопознанным!
Источник: onecomp.ru