как проверить слушается ли порт linux
Как посмотреть открытые порты в Linux
Если порт открыт это означает, что какая либо программа, обычно сервис, использует его для связи с другой программой через интернет или в локальной системе. Чтобы посмотреть какие порты открыты в вашей системе Linux можно использовать множество различных утилит. В этой статье мы рассмотрим самые популярные способы посмотреть открытые порты Linux.
Как посмотреть открытые порты linux
1. netstat
Утилита netstat позволяет увидеть открытые в системе порты, а также открытые на данный момент сетевые соединения. Для отображения максимально подробной информации надо использовать опции:
Открытые порты Linux, которые ожидают соединений имеют тип LISTEN, а перед портом отображается IP адрес на котором сервис ожидает подключений. Это может быть определенный IP адрес или */0.0.0.0 что означают любой доступный адрес:
Можно вывести только процессы, работающие на 80-том порту:
3. lsof
Ещё один пример, смотрим какие процессы работают с портом 80:
4. Nmap
sudo apt install nmap
Затем можно использовать:
Для простого сканирования можно запускать утилиту без опций. Детальнее о её опциях можно узнать в статье про сканирование сети в Nmap. Эта утилита ещё будет полезна если вы хотите посмотреть какие порты на компьютере доступны из интернета.
Дальше запускаем сканирование:
5. Zenmap
sudo apt install zenmap
Запустить программу можно из главного меню или командой:
Затем введите адрес localhost в поле Цель и нажмите кнопку Сканирование:
После завершения сканирования утилита вывела список открытых портов Linux.
Выводы
В этой статье мы рассмотрели инструменты, которые вы можете использовать для того чтобы узнать узнать открытые порты 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 для определения, какое приложение прослушивает определённый порт, например:
Можно искать не по имени службы, а по номеру порта, с помощью этого можно определить, какая служба привязана к определённому порту:
2. Используя команду ss
ss — это другой полезный инструмент для отображения информации о сокетах. Её вывод выглядит похоже с тем, какую информацию даёт netstat. В документации netstat сказано, что она в основном устарела и её заменой является как раз ss.
Следующая команда покажет все прослушиваемые порты для TCP и 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».
Сетевой порт в Linux – это не что иное, как число, обозначающее одну из сторон соединения между двумя системами. Все сетевые устройства используют номера портов, чтобы определить, какому процессу следует доставить сообщение. Доменное имя и IP-адрес можно сравнить с уличными адресами, а номера портов – с номерами комнат.
Популярные номера портов в Linux:
Используйте следующие команды для вывода номеров всех портов:
Как узнать занят ли порт в Linux
Откроем окно терминала и наберём одну из следующих команд:
Теперь рассмотрим один из примеров более детально. С помощью команды ss или netstat проверим используется ли TCP порт 443 в нашей системе
Если порт используется, то вывод будет таким
tcp 0 0 0.0.0.0:443 0.0.0.0:* LISTEN 3183/nginx: master
В нашем примере порт 443 используется сервисом Nginx. Ключи:
Получение списка всех открытых портов в работе
Получите примерно следующее:
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 127.0.0.1:9000 0.0.0.0:* LISTEN 3146/php-fpm: maste
tcp 0 0 0.0.0.0:587 0.0.0.0:* LISTEN 3150/exim
tcp 0 0 0.0.0.0:333 0.0.0.0:* LISTEN 3183/nginx: master
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 3183/nginx: master
tcp 0 0 0.0.0.0:465 0.0.0.0:* LISTEN 3150/exim
tcp 0 0 0.0.0.0:21 0.0.0.0:* LISTEN 3161/pure-ftpd (SER
tcp 0 0 0.0.0.0:33333 0.0.0.0:* LISTEN 3142/sshd
tcp 0 0 0.0.0.0:25 0.0.0.0:* LISTEN 3150/exim
tcp 0 0 0.0.0.0:443 0.0.0.0:* LISTEN 3183/nginx: master
Заключение
Вы научились определять, используется ли тот или иной порт в системе под управлением Linux, с помощью различных утилит командной строки.
Как узнать, открыт или закрыт порт TCP или UDP в Linux
Информация о том, открыт или закрыт порт TCP или UDP, является фундаментальной задачей для любого системного и сетевого администратора. Часто важно знать, открыты ли порты, чтобы установить связь со службой, которая прослушивает их, но также очень важно знать, закрыты ли они, чтобы избежать возможных проблем с безопасностью. Сегодня в этой статье мы покажем вам, как узнать, открыт или закрыт порт в Linux операционная система, поскольку эта операционная система обычно используется на серверах.
Просмотр открытых портов с помощью Netcat
Чтобы проверить порт, мы должны ввести в терминал следующее:
Например, чтобы проверить порт 443 на нашем маршрутизаторе мы будем Тип:
На следующем изображении вы можете увидеть, как этот порт открыт:
Если мы протестируем сайт этой статьи и порт 443, мы получим аналогичную информацию:
В случае, если он закрыт, мы должны поставить это:
Как вы видели, очень легко проверить, открыт или закрыт порт, с помощью Netcat, очень простой утилиты, которая предустановлена в Linux. В дополнение к командам «z» и «v» у нас также есть другие доступные аргументы, которые позволят нам узнать больше информации. Если мы выполним следующую команду, появится справка:
Как видите, у нас есть много аргументов в пользу расширения функциональности.
Просмотр открытых портов с помощью Nmap
sudo apt install nmap
После установки, чтобы узнать, открыт ли конкретный порт, мы должны ввести следующую команду:
На следующем изображении вы можете увидеть, как будет выглядеть открытый порт:
В случае, если порт закрыт или фильтруется брандмауэром, появится следующее:
Если мы хотим просканировать все порты определенного хоста или диапазон портов, нам нужно будет указать диапазон портов следующим образом:
Как видите, проверить открытые порты с помощью Nmap действительно просто, кроме того, мы можем сканировать все хосты в домашней или профессиональной локальной сети, чтобы позже просканировать различные порты.
Проверьте брандмауэр в Linux
Если в нашем Linux-терминале мы ставим следующее:
Все цепочки и правила мы получим из таблицы «filter» iptables, в случае использования Nftables необходимо указать следующую команду:
Очень важная рекомендация по безопасности заключается в том, что все порты на сервере Linux должны быть закрыты, таким образом, когда мы запускаем службу, прослушивающую определенный порт, он не будет доступен, если мы не разрешим это в брандмауэре. Мы должны детально проверить, открыт ли тот или иной порт, чтобы наши услуги были доступны из-за границы.
Просмотр статуса TCP- и UDP-подключений
Если нас интересует состояние всех протоколов TCP, UDP, ICMP и других в нашей операционной системе, широко используемым инструментом всегда был «netstat», однако этот инструмент был на втором месте благодаря новому «ss». это позволит нам легко и быстро получить большой объем информации. Этот инструмент отвечает за проверку всех открытых или закрытых сокетов на нашем сервере Linux, и мы сможем увидеть статистику этих открытых или закрытых сокетов. Если вы использовали инструмент netstat в прошлом, мы уверены, что вам понравится этот новый инструмент «ss».
Инструмент «ss» уже предустановлен в операционных системах Linux как часть самой системы, как и в случае с «ping», «traceroute» и многими другими инструментами. Если мы открываем консоль как в пользовательском режиме, так и в режиме суперпользователя, мы должны выполнить:
Как только мы выполним этот заказ, мы увидим следующее:
Мы увидим статус соединения (ESTAB), а также полученные и отправленные пакеты, локальный адрес и порт, а также удаленный адрес и используемый порт. Мы собираемся получить большое количество портов, используемых различными программами и службами, которые мы установим в операционной системе.
Если мы хотим видеть статус всех портов (сокетов), мы можем установить следующий порядок:
Если мы хотим видеть только порты, которые «слушают», мы должны ввести следующую команду:
На следующем изображении вы можете увидеть пример портов, которые ГОТОВЫ для приема входящих соединений:
В случае, если мы хотим показать TCP-соединения, нам нужно будет использовать аргумент «-t», а в случае, если мы хотим показать UDP-соединения, нам придется использовать аргумент «-u».
Команда «ss» действительно полезна для отображения всех установленных соединений, а также для прослушивания в нашей операционной системе Linux.
Как вы видели, у нас есть разные методы, чтобы узнать, открыт или закрыт порт на удаленном хосте, а также на нашем локальном компьютере, в зависимости от того, что нам интересно знать, мы будем использовать тот или иной инструмент, самое важное. заключается в том, что все неиспользуемые порты должны быть закрыты в целях безопасности через брандмауэр, таким образом мы избежим проблем с безопасностью и эксплуатации уязвимостей на серверах.
🏷 3 способа проверить, открыт ли порт на удаленной системе Linux
В этой статье мы покажем вам, как проверить, какие порты открыты в удаленной системе Linux, используя три метода.
Это можно сделать с помощью следующих команд Linux.
Как проверить, открыт ли порт на удаленной системе Linux с помощью команды nc (netcat)?
nc означает netcat.
Netcat – это простая утилита Unix, которая читает и записывает данные через сетевые соединения, используя протокол TCP или UDP.
Она разработана, чтобы быть надежным «внутренним» инструментом, который может использоваться напрямую или легко управляться другими программами и скриптами.
В то же время это многофункциональный инструмент для отладки и исследования сети, поскольку он может создавать практически любые типы соединений, которые вам понадобятся, и имеет несколько интересных встроенных возможностей.
Netcat имеет три основных режима работы.
Это режим подключения, режим прослушивания и туннельный режим.
Общий синтаксис для nc (netcat):
В этом примере мы собираемся проверить, открыт ли порт 22 в удаленной системе Linux.
В случае успеха вы получите следующий результат.
Если порт не доступен, вы получите следующий вывод.
Как проверить, открыт ли порт на удаленной системе Linux с помощью команды nmap?
Nmap («Network Mapper») – это инструмент с открытым исходным кодом для исследования сети и аудита безопасности.
Он был разработан для быстрого сканирования больших сетей, хотя он отлично работает на отдельных хостах.
Хотя Nmap обычно используется для аудита безопасности, многие системные и сетевые администраторы считают его полезным для рутинных задач, таких как инвентаризация сети, управление расписаниями обновления служб и мониторинг времени работы хоста или службы.
Общий синтаксис для nmap:
В случае успеха вы получите следующий результат.
Если это не удастся, вы получите следующий вывод.
Как проверить, открыт ли порт на удаленной системе Linux с помощью команды telnet?
Команда telnet используется для интерактивного взаимодействия с другим хостом по протоколу TELNET.
Общий синтаксис для telnet:
В случае успеха вы получите следующий результат.
Если это не удастся, вы получите следующий вывод.