Как посмотреть на Linux открытые порты — описание способов

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

Как посмотреть открытые порты Linux через «nmap»

Если сетевой порт открыт, то это значит, что та или иная программа (служба или сервис) использует его для взаимодействия с другими приложениями или серверами разработчика посредством глобальной сети Интернет или локальной вычислительной сети. Для понимания сути портов обычно новичкам приводят в пример обычный дом, в который почтальон приносит посылку. Сотрудник почты доносит конверт или ящик до дома — это компьютер, а точнее его айпи-адрес. Далее жильцы дома должны посмотреть, кому именно доставлена посылка, и отнести ее в соответствующую комнату. Эта комната и будет портом.

В Linux порты можно проверить альтернативной командой «zenmap»

Обратите внимание! Способов произвести просмотр открытых портов Linux множество, так как в этой операционной системе существуют не одна команда и утилита, позволяющие это делать. Ниже описана команда «nmap», являющаяся наиболее популярной.

В операционной системе Linux список открытых портов можно узнать, набрав в терминале команду «nmap». Она вызывает утилиту с аналогичным названием, которая является многофункциональным сетевым сканером для поиска и тестирования удаленных узлов в Глобальной сети, но ее также можно использовать и локально.

«Nmap» дает возможность не только на ОС Linux проверить порт, но и просмотреть службы, которые их используют, а также выявить возможные уязвимости. Для начала работы утилиту следует инсталлировать с помощью простой команды «$ sudo apt install nmap». После загрузки и установки из стандартного репозитория ПО будет готово к работе. Для запуска сканирования набирают команду «$nmap localhost».

Простое сканирование возможно и без опций, но если требуется задать ряд параметров, то рекомендуется сперва изучить их значение. Кстати, для поиска открытых внешних портов используют команду «$ wget -O — -q eth0.me», а затем «$nmap 185.29.237.91».

«Nmap» может открывать данные обо всех портах, имеющихся в операционной системе

Статистика открытых сетевых соединений в Linux через команду «netstat»: описание ее атрибутов

Это базовая утилита линукс, которая не требует скачивания и установки, так как имеется практически во всех дистрибутивах операционной системы. Она позволяет быстро проверить доступность порта на Linux и показать открытие сетевые соединения.

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

  • «-l / —listening» — проверка прослушиваемых соединений;
  • «-p / —program» — отображение названия программы и ее PID’а;
  • «-t / —tcp» — отображение TCP-соединений;
  • «-u / —udp» — отображение UDP-соединений;
  • «-n / —numeric» — показ IP-адресов в виде чисел.

Важно! Если соединение открытое и ожидает подключения, то оно обладает типом «listen» и рядом с ним будет указан айпи-адрес, используемый для выполнения этого подключения. Значение IP может быть любым (*/0.0.0.0) или конкретным (в этом случае оно будет указано).

Пример использования «netstat»

Узнать, кто слушает порт в Linux через «lsof»: описание атрибутов команды

Еще одна стандартная программа операционной системы, позволяющая определить прослушиваемые порты на Linux. Помимо этого, она выводит в консоль все открытие в ОС соединения, включая сетевые (для этого ее выполняют с атрибутом «—i»). Для просмотра именно соединений, а не сетевых служб «lsof» запускается с параметром «—P». Команда выглядит следующим образом: «$ sudo lsof -i —P». Если нужно узнать, какие процессы и службы пользуются, например, семидесятым (70) соединением, следует набрать строку «$sudo lsof -i -P | grep :80».

Обратите внимание! Если нужно найти именно TCP соединения, то прописывают «lsof -i tcp:$portNumber», а если UDP, то «lsof -i udp:$portNumber». В данном случае параметр «$portNumber» означает номер соединения.

Еще один способ взаимодействовать с портами — «lsof»

Статистика открытых портов в Linux через ss и описание ее атрибутов

Команда «ss» — это более функциональная и современная замена утилите «netstat». Последняя получает данные из специальной папки «/proc», а «ss» запрашивает информацию у подсистемы ядра линукс. Вследствие этого «ss» функционирует более быстро и точно. Она обладает аналогичными опциями и атрибутами. Запуск производится по команде «$sudo ss —tulpn». Она отображает тип соединения, его состояние, локальный адрес и т. д.

Если нужно проверить, какие именно процессы работают, к примеру, на 80-м соединении, необходимо прописать или скопировать фразу «$ sudo ss -tulpn | grep :80» и нажать на клавишу «Ввод».

Системная утилита «ss» является более современной альтернативой «netstat»

Просмотр открытых портов в Linux через «tcpdump» и описание атрибутов утилиты

Команда «tcpdump» — это один из самых важных инструментов для специалистов, работающих с информационной безопасностью компьютерных сетей, основанных на линуксе. Если пользователь хочет овладеть всеми тонкостями настройки протоколов TCP и IP, то он должен быть хорошо знаком с функциями «tcpdump».

Далее приведено несколько важных атрибутов этой утилиты, позволяющие проверять свободные портовые соединения и узнавать айпи-адреса служб, использующих их:

  • «-nn» — отображение айпи-адресов и номеров портов вместо имени хоста и названия используемого протокола передачи данных;
  • «-i any» — прослушивание всем интерфейсов для поиска скрытого тарифа, если таковой имеется;
  • «-q» — показ минимальных данных о пакете трафика.

Также есть три выражения: «type», «dir» и «prito». Опции тоже три: хосты, сети и порты. Комбинации для выполнения директорий: «src» и «dst». Протоколы по запросу: TCP, UDP, ICMP, AH и т. д. К примеру, для показа интернет-трафика, который связан с тем или иным портом, необходимо выполнить команду «# tcpdump port 3389», а затем «tcpdump src port 1025». Показ трафика одного протокола выполняется так: «# tcpdump icmp».

Пример использования «tcpdump»

Как в Linux посмотреть занятые порты

Занятые порты — это те сетевые соединения, которые уже используются какими-либо программами или службами. Вообще портовые связи могут находиться в различных состояниях: открытом, закрытом, отфильтрованном и неотфильтрованном. Если сказано, что соединение открыто, то имеется в виду, что использующая его программа или служба на проверяемом персональном компьютере выполняет прослушивание входящих пакетов. Узнать, занят ли port на Linux, можно с помощью следующих способов.

В первом из них используется команда «netstat», которая уже была описана в этом материале. Она идеально подходит для сбора любой сетевой информации об операционной системе. Вывод всех портовых соединений осуществляется по команде «$ sudo netstat —ltup». Атрибут «l» указывает на то, что нужно вывести сокеты, «t» работает с TCP-соединениями, а «u» — с UDP. Последний параметр «p» выводит имена процессов, которые прослушивают порты в данный момент времени.

Второй способ заключается в использовании более функциональной утилиты «ss», обладающей аналогичными параметрами и методом вывода информации. Следующая строка покажет все соединения на протоколах TCP и UDP в формате чисел: «$ sudo ss -lntu».

Еще один быстрый способ получить данные обо всех открытых и закрытых портах заключается в использовании утилиты «nmap» — мощного и известного средства для сканирования сетей линукс, а также проверки сетевых соединений. По умолчанию этого софта нет в списке программ, поэтому его нужно будет установить. Для этого прописывают в командной строке запись и выполняют ее: «$ sudo apt install nmap» (подходит для стандартной линукс и Ubuntu).

Обратите внимание! Сканирование всех соединений с помощью этой утилиты выполняется путем ввода строки «$ sudo nmap -n -PN -sT -sU -p- localhost». Она позволяет определить все открытые, закрытые и прослушивающие порты.

Последняя программа — «lsof». Для вывода всех файлов глобальной или локальной сети вводят команду с использованием атрибута «—i». Он способен продемонстрировать не только имена служб, но и их числовые порты: «$ sudo lsof —i».

Использование команды «$ sudo lsof —i» в терминале

Таким образом, что в операционной системе линукс есть множество способов проверить, открыт тот или иной порт, а также проанализировать дополнительную информацию по нему.

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

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