Перейти к содержимому

Как проверить доступность порта linux

  • автор:

Как узнать, открыт или закрыт порт TCP или UDP в Linux

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

Есть несколько способов проверить, открыт или закрыт определенный порт, особенно в Linux, первый из них — использовать популярную программу Netcat, которая предустановлена ​​во всех дистрибутивах, а затем очень хороший способ узнать, открыт ли порт. Это можно сделать, проверив его напрямую с помощью Nmap программа, которая позволит нам сканировать все порты определенного хоста. Наконец, если мы хотим знать, есть ли у нас открытый или закрытый порт, нам нужно будет посмотреть его в брандмауэр а также в текущих подключениях операционной системы.

Сообщите, открыт или закрыт порт TCP или UDP в Linux

Просмотр открытых портов с помощью Netcat

  • z — это параметр, который гарантирует, что в конце проверки соединение будет закрыто или, в противном случае, программа будет продолжать работать в цикле до тех пор, пока мы вручную не завершим ее с помощью Ctrl + C, аналогично тому, как когда пинг на Linux.
  • v — параметр, отвечающий за проверку того, открыт ли порт или закрыт.

Чтобы проверить порт, мы должны ввести в терминал следующее:

Например, чтобы проверить порт 443 на нашем маршрутизаторе мы будем Тип:

nc -zv 192.168.10.1 443

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

Если мы протестируем сайт этой статьи и порт 443, мы получим аналогичную информацию:

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

Как вы видели, очень легко проверить, открыт или закрыт порт, с помощью Netcat, очень простой утилиты, которая предустановлена ​​в Linux. В дополнение к командам «z» и «v» у нас также есть другие доступные аргументы, которые позволят нам узнать больше информации. Если мы выполним следующую команду, появится справка:

Как видите, у нас есть много аргументов в пользу расширения функциональности.

Просмотр открытых портов с помощью Nmap

Nmap — это программа, которая по преимуществу обнаруживает хосты, а также проверяет, открыты ли разные порты. Эта программа не предустановлена ​​в операционных системах Linux, но мы можем установить ее прямо из репозиториев в следующем порядке:

sudo apt install nmap

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

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

В случае, если порт закрыт или фильтруется брандмауэром, появится следующее:

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

nmap -p 1-65535 192.168.10.1

Как видите, проверить открытые порты с помощью Nmap действительно просто, кроме того, мы можем сканировать все хосты в домашней или профессиональной локальной сети, чтобы позже просканировать различные порты.

Проверьте брандмауэр в Linux

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

Если в нашем Linux-терминале мы ставим следующее:

Все цепочки и правила мы получим из таблицы «filter» iptables, в случае использования Nftables необходимо указать следующую команду:

nft list ruleset

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

Просмотр статуса TCP- и UDP-подключений

Если нас интересует состояние всех протоколов TCP, UDP, ICMP и других в нашей операционной системе, широко используемым инструментом всегда был «netstat», однако этот инструмент был на втором месте благодаря новому «ss». это позволит нам легко и быстро получить большой объем информации. Этот инструмент отвечает за проверку всех открытых или закрытых сокетов на нашем сервере Linux, и мы сможем увидеть статистику этих открытых или закрытых сокетов. Если вы использовали инструмент netstat в прошлом, мы уверены, что вам понравится этот новый инструмент «ss».

Инструмент «ss» уже предустановлен в операционных системах Linux как часть самой системы, как и в случае с «ping», «traceroute» и многими другими инструментами. Если мы открываем консоль как в пользовательском режиме, так и в режиме суперпользователя, мы должны выполнить:

Как только мы выполним этот заказ, мы увидим следующее:

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

Если мы хотим видеть статус всех портов (сокетов), мы можем установить следующий порядок:

Если мы хотим видеть только порты, которые «слушают», мы должны ввести следующую команду:

На следующем изображении вы можете увидеть пример портов, которые ГОТОВЫ для приема входящих соединений:

В случае, если мы хотим показать TCP-соединения, нам нужно будет использовать аргумент «-t», а в случае, если мы хотим показать UDP-соединения, нам придется использовать аргумент «-u».

Команда «ss» действительно полезна для отображения всех установленных соединений, а также для прослушивания в нашей операционной системе Linux.

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

Как проверить (сканировать) на наличие открытых портов в Linux

Если вы устраняете проблемы с подключением к сети или настраиваете брандмауэр, первое, что нужно проверить, — это то, какие порты действительно открыты в вашей системе.

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

Что такое открытый порт

Порт прослушивания — это сетевой порт, который прослушивает приложение. Вы можете получить список прослушивающих портов в вашей системе, запросив сетевой стек с помощью таких команд, как ss , netstat или lsof . Каждый порт прослушивания может быть открыт или закрыт (отфильтрован) с помощью брандмауэра.

В общих чертах, открытый порт — это сетевой порт, который принимает входящие пакеты из удаленных мест.

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

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

Проверьте открытые порты с помощью nmap

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

Если возможно, nmap должен стать вашим первым инструментом для сканирования портов. Помимо сканирования портов, nmap также может определять Mac-адрес, тип ОС , версии ядра и многое другое.

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

-sT указывает nmap сканировать TCP-порты, а -p- сканировать все 65535 портов. Если -p- не используется, nmap будет сканировать только 1000 самых популярных портов.

Приведенные выше выходные данные показывают, что в целевой системе открыты только порты 22 , 80 и 8069 .

Для поиска портов UDP используйте -sU вместо -sT :

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

Проверьте открытые порты с помощью netcat

Netcat (или nc ) — это инструмент командной строки, который может читать и записывать данные через сетевые соединения, используя протоколы TCP или UDP.

С помощью netcat вы можете сканировать отдельный порт или диапазон портов.

Например, для поиска открытых TCP-портов на удаленном компьютере с IP-адресом 10.10.8.8 в диапазоне 20-80 вы должны использовать следующую команду:

Параметр -z указывает nc сканировать только открытые порты без отправки каких-либо данных, а параметр -v предназначен для получения более подробной информации.

Результат будет выглядеть примерно так:

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

Чтобы сканировать UDP-порты, передайте параметр -u команде nc :

Проверьте открытые порты с помощью псевдоустройства Bash

Другой способ проверить, открыт или закрыт определенный порт, — использовать оболочку Bash /dev/tcp/.. или /dev/udp/.. псевдоустройство.

При выполнении команды на псевдоустройстве /dev/$PROTOCOL/$HOST/$IP Bash откроет TCP или UDP-соединение с указанным хостом на указанном порту.

Следующий оператор if..else проверяет, открыт ли порт 443 на kernel.org :

Как работает приведенный выше код?

При подключении к порту с помощью псевдоустройства таймаут по умолчанию огромен, поэтому мы используем команду timeout чтобы завершить тестовую команду через 5 секунд. Если соединение установлено с портом 443 kernel.org тестовая команда вернет true.

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

Результат будет выглядеть примерно так:

Выводы

Мы показали вам несколько инструментов, которые вы можете использовать для поиска открытых портов. Существуют также другие утилиты и методы для проверки открытых портов, например, вы можете использовать модуль socket Python, curl , telnet или wget .

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

Как проверить доступность / открытость порта / портов, используя команду nc

Команды LINUX «от A до Z» — настольная книга с примерами

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

Мы можем легко узнать список открытых портов в Linux на вашей машине, используя netstat или несколько других команд Linux, таких как NMAP.

В этом руководстве мы покажем вам, как определить, доступны / открываются ли порты на удаленном хосте с помощью простой команды netcat (сокращенно nc).

netcat– это мощная и простая в использовании утилита, которая может использоваться практически для чего угодно в Linux в отношении сокетов TCP, UDP или UNIX.

Мы можем использовать netcat для: открытия TCP-соединений, прослушивания на произвольных портах TCP и UDP, отправки UDP-пакетов, сканирования портов под IPv4 и IPv6 и т.д.

Используя netcat, вы можете проверить, есть ли один или, несколько, или ряд открытых портов следующим образом. Приведенная ниже команда поможет нам узнать, открыт ли порт 22 на хосте 192.168.0.1:

nc

В моем случае порт закрыт.

Курсы Python с нуля до DevOps на практике за 1,5 часа

В приведенной выше команде есть свои опции:

  • -z – устанавливает ncтак, чтобы просто сканировать службы для прослушивания, фактически не отправляя им какие-либо данные.
  • -v – включает подробный режим.

Следующая команда проверяет, открыты ли порты 80, 22 и 443 на удаленном хосте 192.168.0.1 (мы также можем использовать имя хоста):

Также можно указать диапазон сканируемых портов:

nc

Это все. В этой статье мы объяснили, как проверить доступность / открытие портов на удаленном хосте с помощью простой команды netcat.

Курсы Git за час: руководство для начинающих DevOps / DevNet инженеров

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

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

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

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

5 способов проверить, открыт ли порт на удаленном ПК с Linux

Знание открытых портов с машины Linux позволяет системным администраторам подключаться к удаленному компьютеру, что может исправить проблемы с системой и облачным сервером. Сначала мы покажем вам порты TCP и UDP и их различия, прежде чем мы начнем искать открытые порты.

Т Вот множество способов проверить наличие открытых портов на удаленном ПК с Linux. Знание открытых портов на машине Linux помогает системным администраторам подключаться к удаленному ПК для устранения неполадок системы и проблем с облачным сервером.

TCP и UDP порты

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

UDP означает протокол пользовательских дейтаграмм. Используя этот метод, данные отправляются в сеть в виде небольших пакетов с надеждой, что они достигнут конечного пункта назначения. Это означает, что два компьютера не подключены друг к другу напрямую. Этот метод не дает никаких гарантий, что отправленные вами данные когда-либо достигнут пункта назначения. Нагрузка на сервер меньше, поэтому этот метод обычно используется системными администраторами в первую очередь, чтобы попробовать что-то не столь важное.

Теперь, когда вы знаете, что типы являются портами в системе Linux, давайте начнем со способов поиска тех, которые открыты.

Лучшие способы проверить, открыт ли порт на ПК с Linux

Есть несколько способов сделать это. Однако самый надежный способ сделать это — использовать следующие команды:

  • команда nc: netcat
  • nmap: инструмент сетевого картографирования
  • telnet: команда telnet
  • эхо> / dev / tcp / ..
  • netstat — кортеж

Давайте рассмотрим каждый метод один за другим.

1. команда netcat

netcat — это простая утилита Unix, которую можно использовать для записи и чтения данных с использованием протоколов UDP и TCP через сетевые соединения.

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

Чтобы использовать его, вам необходимо установить его в своем дистрибутиве с помощью соответствующих команд установки.

Для Ubuntu / Debian:

Для RHEL / CentOS

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

  • отправлять UDP-пакеты
  • прослушивать произвольные порты UDP и TCP
  • Используйте IPv4 и IPv6 для сканирования портов

Кроме того, он также имеет три режима

Синтаксис команды следующий.

Попробуем использовать на удаленном компьютере.

nc-команда-успехПоказано, что команда nc успешно подключилась к открытому порту

Как видите, подключение прошло успешно. Это означает, что порт 22 открыт. В случае сбоя подключения вы получите сообщение об ошибке «сбой: подключение отклонено».

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

  • z: режим нулевого ввода-вывода, который используется для сканирования
  • v: для подробного вывода
  • w10: время ожидания в секундах

2. команда nmap

Команда Nmap — популярная команда сетевой безопасности, аудита и исследования. Nmap расшифровывается как Network Mapper.

У него также есть способ проверить наличие открытых портов. Для этого он использует новый подход к использованию IP-пакетов. Его также можно использовать, чтобы узнать об услугах, предоставляемых хостом. Другие важные аспекты, которые он может обнаружить, включают версию операционной системы, межсетевые экраны / фильтры пакетов и так далее! Это полезный инструмент.

Давайте посмотрим на синтаксис nmap ниже.

Как видите, его синтаксис совпадает с синтаксисом команды nc. Давайте запустим его, чтобы лучше понять.

nmap-командаЗапуск команды nmap для проверки открытого порта

Если порт закрыт, он покажет, что статус закрыт.

nmap-команда-закрытаКоманда nmap показывает закрытый статус для порта 103 на 192.168.0.2

3. команда telnet

Следующая команда, которую мы пройдем, — это команда telnet. Это старая интерактивная коммуникационная команда.

Он специально создан для взаимодействия с удаленным компьютером, поэтому мы собираемся использовать его для проверки открытых портов на удаленном компьютере. Команда доступна как в системах Windows, так и в Linux, но в системе Windows ее необходимо активировать перед использованием. Он работает в сети TCP / IP. Кроме того, он подключается через удаленный компьютер или сетевое оборудование через порт 23.

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

Чтобы установить telnet в RHEL 7 или CentOS 7, вам необходимо использовать следующую команду.

Для Ubuntu используйте следующую команду

Синтаксис команды следующий.

telnet-команда-успехПоказывает команду telnet в действии при успешном подключении

Если соединение не удалось, значит, порт не открыт, и вы получите следующий результат.

telnet-соединение-отказаноПоказывает отказ в соединении с помощью команды telnet

4. эхо> / dev / tcp /…

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

Синтаксис команды следующий

dev-tcp-файлПорт — это «открытый» выход

5. netstat -tuplen

Последняя команда, которую мы собираемся обсудить, — это netstat команда. Это команда TCP / IP сетевой утилиты. Он используется для печати подключений, статистики интерфейса, многоадресного членства и других задач, связанных с сетью.

Синтаксис команды следующий.

Он выведет весь список IP-адресов. Записи, у которых есть «Слушать» в столбце «Состояние», являются открытыми портами.

netstat-tuplenПоказывает вывод netstat-tuplen

Вывод

Это подводит нас к концу наших пяти способов проверить, открыт ли порт на удаленном ПК с Linux. Итак, какой способ вы собираетесь использовать для подключения к удаленному компьютеру с Linux? Прокомментируйте ниже и дайте нам знать.

  • 08/08/2021
  • 0
  • Рекомендуемые

6 лучших оболочек с открытым исходным кодом для Linux

6 лучших оболочек с открытым исходным кодом для Linux

  • 08/08/2021
  • 0
  • Рекомендуемые

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

Linux Mint vs. Ubuntu - что лучше для вас?

Linux Mint vs. Ubuntu — что лучше для вас?

  • 08/08/2021
  • 0
  • Рекомендуемые

WКогда вы войдете в мир Linux, есть сотни вариантов. Хотя на каждого новичка и в сознании каждого опытного человека приходят два имени — Ubuntu и Linux Mint.Загадка заключается в том, кто из них? Лучшее решение — попробовать их оба, а затем выбрат.

Обзор Manjaro 21.0 Ornara: Arch Linux для масс

Обзор Manjaro 21.0 Ornara: Arch Linux для масс

  • 08/08/2021
  • 0
  • Рекомендуемые

MКомпания anjaro только что выпустила последнюю версию своего дистрибутива на основе Arch, удобного для новичков — Manjaro 21.0 Ornara, и мы в восторге. На протяжении многих лет дистрибутив привлекал множество пользователей, предоставляя простой в.

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

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