Посмотреть открытые порты Linux

Обновлено: 21.11.2024

Если вы хотите узнать, что вам нужно сделать, чтобы получить список всех открытых портов в экземпляре Linux, вы попали по адресу. Но что такое порт и зачем вам список всех открытых портов?

Короче говоря, порт – это точка доступа, которую операционная система предоставляет для облегчения сетевого трафика с другими устройствами или серверами, а также для дифференциации трафика, чтобы понять, в какую службу или приложение отправляется трафик. .

Существует два распространенных протокола, когда речь идет о портах: TCP или протокол управления передачей; и, конечно же, UDP — протокол пользовательских дейтаграмм. Каждый из этих протоколов имеет диапазон номеров портов, который обычно делится на три группы:

Системные порты Linux

Также известны как "известные" порты. Это номера портов от 0 до 1023, которые считаются важными для типичного использования системы, обычно эти порты считаются весьма важными для обеспечения непрерывных услуг связи.

Пользовательские порты Linux

Также известны как «зарегистрированные порты», которые находятся в диапазоне от 1024 до 49151. Можно отправить запрос в Управление по присвоению номеров в Интернете (IANA), чтобы запросить сохранение одного из этих портов для вашего приложения.

Частные порты Linux

Также известные как «динамические порты», диапазон номеров от 49 152 до 65 535. Эти порты открыты для любого варианта использования, который вы считаете необходимым в частном порядке, и поэтому являются динамическими по своей природе — они не привязаны к конкретным приложениям.

Теперь, несмотря на то, что многие порты имеют определенное назначение, важно следить за портами, которые «открыты» без необходимости открывать этот порт. Это связано с тем, что неоправданно оставленные открытыми порты могут представлять угрозу безопасности, а также быть признаком активного вторжения.

Поэтому понимание того, какие порты открыты, и «прослушивание» сообщений абсолютно необходимо для блокирования попыток проникновения в ваши системы. Конечно, некоторые общие порты необходимо оставить открытыми, чтобы облегчить обычную интернет-связь. Например:

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

Как получить простой список общих открытых портов? Используйте эту команду:

Кроме того, вы можете изменить размер получаемого списка, добавив «меньше» к вашей команде

$ cat /etc/services | меньше

Однако вы можете использовать ряд других команд на компьютере с Linux, которые предоставят вам все порты TCP и UDP, которые открыты и готовы к приему данных с других компьютеров. В следующем разделе мы рассмотрим три — Isof, netstat и nmap.

Команда netstat или сетевой статистики

Большинство дистрибутивов Linux включают netstat по умолчанию в свои установки. Это действительно мощный инструмент, который может отображать все активные сетевые соединения TCP/IDP — как для входящих, так и для исходящих соединений. Он также отображает таблицы маршрутизации и номер сетевого интерфейса, а также исчерпывающую статистику по сетевым протоколам.

Таким образом, вы можете использовать netstat для устранения неполадок и измерения производительности вашей сети. Несмотря на то, что он является базовым, он также полезен и необходим для поиска неисправностей в сетевых службах. Он четко сообщает вам, какие порты открыты и где программа или служба прослушивает определенный порт. Теперь мы дадим вам несколько примеров того, как использовать netstat.

Получение списка всех портов TCP и UDP, которые прослушиваются в данный момент

На самом деле все просто: используйте флаг -a рядом с каналом, который указывает меньше, это даст вам порты TCP и UDP, которые в данный момент прослушиваются

$ netstat -a | меньше

Чтобы вывести список всех прослушиваемых подключений

Используйте флаг -l в команде netstat, чтобы получить список всех активно прослушиваемых портов

Отображать открытые порты наряду с текущими подключениями TCP

Здесь мы объединили пару флагов, чтобы отобразить список открытых портов и установленных (TCP) соединений.

Список открытых портов UDP

Возможно, вы захотите увидеть только открытые порты UDP, исключая открытые порты TCP. Вам нужна следующая команда:

Получите список ваших служб Linux, которые прослушивают TCP и UDP, список открытых портов на вашем компьютере, которые свободны, а также имя и PID службы или программы

Эта команда предоставляет вам все службы и приложения, которые прослушивают либо TCP, либо UDP.Он также предоставляет вам открытые порты в вашем экземпляре Linux, которые являются бесплатными, а также имя программы и идентификатор процесса, связанный с каждым открытым сокетом.

Таким образом, вы можете видеть, как различные команды, которые вы можете использовать с netstat, делают его очень универсальным, позволяя вам видеть, каков статус-кво на вашем компьютере с Linux. Но что именно означают эти отдельные флаги? На самом деле все просто:

  • -a покажет все прослушиваемые сокеты, а также все непрослушиваемые сокеты
  • -l показывает только активно прослушиваемые порты
  • -v означает "подробный" и указывает netstat включить дополнительную информацию о любых семействах адресов, которые в данный момент не настроены
  • -t ограничивает список только соединениями TCP
  • -u ограничивает список только соединениями UDP
  • -n указывает netstat отображать и числовые адреса
  • -p добавляет идентификатор процесса (PID), а также имя программы

Имейте в виду, что семь флагов, которые мы показали выше, — это всего лишь пара из многих флагов, которые вы можете указать для netstat. Ознакомьтесь с файлом справки, запустив

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

nmap — команда Network Mapper

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

Стоит помнить, что nmap предоставляет очень обширную информацию о сканируемой сети. Итак, не используйте nmap в сети, если у вас нет разрешения на ее проверку — в основном, разрешения на ее сканирование. Другими словами, у вас должна быть причина для использования nmap и разрешение владельца сети.

Теперь мы дадим вам базовый обзор nmap, включая типичное использование команды map. Для начала вот инструкции, необходимые для установки nmap, если у вас есть сервер Ubuntu или Debian:

$ sudo apt-get установить nmap

Команда немного отличается, если вы используете RHEL или CentOS:

$ sudo yum установить nmap

Есть файл, в котором вы можете просмотреть более полную картину портов и служб. Используйте эту команду:

Чтобы опробовать некоторые основные команды nmap, мы воспользуемся привилегиями sudo, чтобы убедиться, что запросы дают полные, а не частичные результаты. Помните, что некоторые команды nmap выполняются немного дольше.

Сканирование открытых портов в домене

Здесь вы можете видеть, что мы использовали флаг -vv, который выполняет определенную функцию. Когда вы используете -vv, это означает «подробный», другими словами, он покажет вам расширенный вывод, включая процесс, когда nmap сканирует открытые порты. Уберите флаг -vv, и вы быстро увидите разницу.

Список портов, которые прослушивают соединения через TCP

Обратите внимание на флаг -sT. Обычно это то, что вы указываете для сканирования соединений TCP, когда невозможно выполнить сканирование SYN.

Список портов, прослушивающих соединения по UDP

Итак, -sU — это то, что вы используете для сканирования UDP. Однако вы можете сканировать соединения UDP и TCP, используя другой флаг -sS. Вы получите список, охватывающий как UDP, так и TCP.

Просмотр определенного порта (а не всех портов)

В этом случае -p означает, что вы смотрите только на номер порта, указанный вместо «port_number».

Сканировать каждый открытый порт как по TCP, так и по UDP

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

Команда lsof (список открытых файлов)

Легко запомнить, что означает lsof — команда списка открытых файлов — просто возьмите ls как «список» и of как «открытые файлы», и вы ясно поймете, почему lsof означает «список открытых файлов».

Список всех активных сетевых подключений

Используйте флаг -i с lsof, чтобы получить полный список всех сетевых подключений, которые прослушиваются и устанавливаются.

Найти процесс, использующий указанный порт

Например, для всех процессов, которые в данный момент работают на порту 22, вы запустите эту команду:

$ sudo lsof -i TCP:22

Получить список всех соединений UDP и TCP

Чтобы получить список всех подключений UDP и TCP, просто используйте эту команду:

$ sudo lsof -i TCP; sudo lsof -i udp;

Как и в случае с nmap, вы можете обратиться к руководству по lsof, чтобы получить полное представление обо всех параметрах, которые у вас есть при использовании lsof.

Подводя итог, поклонники Linux должны хотя бы немного разбираться в портах, особенно если они планируют управлять серверами Linux.Мы привели три примера замечательных инструментов — nmap, lsof и netstat — которые помогут вам понять, какие порты открыты на вашем компьютере и какие службы активны на вашем сервере.

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

Как проверить, прослушивается ли порт на сервере Linux?

Не совсем понятно, о чем вы спрашиваете. Что вы имеете в виду под словом "открыть"? Вы имеете в виду, что какой-то сервер прослушивает этот порт? Или вы имеете в виду, что это разрешено системным брандмауэром? Или что?

, вы должны получить что-то вроде подключения к порту 127.0.0.1 9000 [tcp/*] успешно! , иначе порт закрыт.

7 ответов 7

Вы можете проверить, прослушивает ли процесс порт TCP или UDP, с помощью netstat -tuplen .

Чтобы проверить, доступны ли некоторые порты извне (это, вероятно, то, что вам нужно), вы можете использовать сканер портов, такой как Nmap, из другой системы. Запуск Nmap на том же хосте, который вы хотите проверить, совершенно бесполезен для ваших целей.

Кроме того, команда telnet обычно поддерживает только TCP, поэтому вам не повезло, если служба, которую вы хотите проверить, работает по другому протоколу.

Самый быстрый способ проверить, открыт ли TCP-порт (включая любые имеющиеся у вас аппаратные брандмауэры), — ввести с удаленного компьютера (например, с рабочего стола):

Что попытается открыть соединение с портом 80 на этом сервере. Если вы получаете тайм-аут или денай, порт не открыт :)

Хорошо, у вас есть сервер, на который вы можете войти. Вы хотите увидеть, прослушивает ли что-то какой-либо порт. Запустите как root:

это покажет список процессов, прослушивающих порты TCP и UDP. Вы можете отсканировать (или выполнить поиск) интересующего вас процесса и/или номеров портов, которые вы ожидаете увидеть.

Если ожидаемого процесса нет, следует запустить этот процесс и снова проверить netstat. Если процесс есть, но он прослушивает интерфейс и порт, которые вы не ожидали, то проблема с конфигурацией (например, он может прослушивать, но только на петлевом интерфейсе, поэтому вы увидите 127.0.0.1:3306 и никаких других строк для порта 3306 в случае конфигурации по умолчанию для MySQL).

Если процесс запущен и прослушивает порт, который вы ожидаете, вы можете попробовать запустить «telnet» для этого порта с вашего Macbook в вашем офисе или дома, например,

Это проверит, если (при условии стандартных портов) есть ли веб-сервер, настроенный для SSL. Обратите внимание, что этот тест с использованием telnet будет работать только в том случае, если процесс прослушивает TCP-порт. Если это UDP-порт, вы можете попробовать подключиться к нему с любым клиентом, который собирались использовать. (Я вижу, что вы использовали порт 224. Это masqdialer, и я понятия не имею, что это такое).

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

Это покажет все правила брандмауэра, определенные в вашей системе. Вы можете опубликовать это, но, как правило, если вы не разрешаете все в цепочке INPUT, вам, вероятно, потребуется явно разрешить трафик на рассматриваемом порту:

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

В этой статье мы кратко поговорим о портах в компьютерных сетях и перейдем к тому, как составить список всех открытых портов в Linux.

В компьютерных сетях и, точнее, в программном обеспечении порт – это логический объект, который действует как конечная точка связи для идентификации данного приложения или процесса в операционной системе Linux. Это 16-битное число (от 0 до 65 535), которое отличает одно приложение от другого в конечных системах.

Два самых популярных транспортных протокола Интернета, протокол управления передачей (TCP) и протокол пользовательских дейтаграмм (UDP), а также другие менее известные протоколы используют номера портов для сеансов связи (номера портов источника и получателя в сочетании с IP-адресом источника и получателя). адреса).

Кроме того, комбинация IP-адреса, порта и протокола, такого как TCP/UDP, называется сокетом, и каждая служба должна иметь уникальный сокет.

Ниже приведены различные категории портов:

  1. 0–1023 — общеизвестные порты, также называемые системными портами.
  2. 1024-49151 — зарегистрированные порты, также известные как пользовательские порты.
  3. 49152-65535 — динамические порты, также называемые частными портами.

Вы можете просмотреть список различных приложений и комбинации порт/протокол в файле /etc/services в Linux с помощью команды cat:

Чтобы получить список всех открытых портов или запущенных в данный момент портов, включая TCP и UDP в Linux, мы будем использовать netstat — мощный инструмент для мониторинга сетевых подключений и статистики.

  1. -l — выводит только прослушиваемые сокеты
  2. -n — показывает номер порта
  3. -t — включает список TCP-портов
  4. -u — включает список портов udp

Вы также можете использовать команду ss, хорошо известную полезную утилиту для проверки сокетов в системе Linux. Выполните приведенную ниже команду, чтобы получить список всех открытых портов TCP и UCP:

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

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

И последнее, но не менее важное: свяжитесь с нами, поделившись другими способами получения списка открытых портов в Linux или задав вопрос через форму ответа ниже.

Если вам понравилась эта статья, подпишитесь на уведомления по электронной почте о руководствах по Linux. Если у вас есть вопросы или сомнения? обратитесь за помощью в разделе комментариев.

Если вы цените то, что мы делаем здесь, в TecMint, вам следует подумать о следующем:

TecMint – это самый быстрорастущий и пользующийся наибольшим доверием сайт сообщества, где можно найти любые статьи, руководства и книги по Linux в Интернете. Миллионы людей посещают TecMint! для поиска или просмотра тысяч опубликованных статей, доступных всем БЕСПЛАТНО.

Если вам нравится то, что вы читаете, купите нам кофе (или 2) в знак признательности.

Мы благодарны за вашу бесконечную поддержку.

Похожие сообщения

10 мыслей о «Как узнать список всех открытых портов в Linux»

Отличный и информативный пост.

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

Если вы хотите найти список портов приложения и базы данных Oracle в системе Linux, используйте следующую команду.

Спасибо, что поделились этой полезной информацией, мы благодарны.

Я использую `netstat -antlp | grep СЛУШАТЬ`

Я помню варианты «ant» и «lp», почему-то они засели у меня в голове.

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

  • -t — учитывать TCP-порты.
  • -l — отображать только прослушиваемые сокеты.
  • -n — показать числовые адреса.
  • -p — показать PID и имя программного сокета, которому принадлежит.

Хорошая статья, могу ли я предложить использовать:

Опция -p покажет процесс/демон/пользователя/PID, открывшего порт.

Опять же, хорошая статья!

Надеюсь, вам понравилось. Большое спасибо за предложение. сохраняет вывод достаточно небольшим и четким.

«порт — это логический объект, который действует как конечная точка связи для идентификации данного приложения или процесса в операционной системе Linux». Порт не идентифицирует какое-либо приложение или процесс, поскольку один и тот же порт может использоваться разными приложениями или процессами. Правильнее было бы вместо слов «связан с» или «используется». С уважением.

Большое спасибо, что предложили нам свои полезные мысли, очень признательны.

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

Спасибо, что упомянули об этом, это полезный совет.

Есть что сказать? Присоединяйтесь к обсуждению. Отменить ответ

Этот сайт использует Akismet для уменьшения количества спама. Узнайте, как обрабатываются данные ваших комментариев.

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

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

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

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

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

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

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

Кроме того, вы можете указать порт и найти привязанное к нему приложение, как показано на рисунке.

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

Команда

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

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

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

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

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

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

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

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

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

Если вам понравилась эта статья, подпишитесь на уведомления по электронной почте о руководствах по Linux. Если у вас есть вопросы или сомнения? обратитесь за помощью в разделе комментариев.

Если вы цените то, что мы делаем здесь, в TecMint, вам следует подумать о следующем:

TecMint – это самый быстрорастущий и пользующийся наибольшим доверием сайт сообщества, где можно найти любые статьи, руководства и книги по Linux в Интернете. Миллионы людей посещают TecMint! для поиска или просмотра тысяч опубликованных статей, доступных всем БЕСПЛАТНО.

Если вам нравится то, что вы читаете, купите нам кофе (или 2) в знак признательности.

Читайте также: