Управление портом

Как вывести список открытых портов в Linux?

Как вывести список открытых портов в Linux?

В сети порт - интересная функция. Это способ для сетевого трафика определить целевое приложение или службу. Каждый процесс / служба получает свой уникальный порт. Порт всегда будет связан с IP-адресом хоста вместе с протоколом.

Это моя любимая метафора, чтобы описать, что такое порт. Представьте себе корабль с грузом, который отправится в далекую страну. Какая информация необходима, чтобы правильно добраться до места назначения? Для простоты предположим, что ему нужны страна (IP-адрес) и порт корабль пристыкуется.

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

Порты в Linux

Порты действуют как конечная точка связи. Это 16-битное число (от 0 до 65535 в десятичной системе). Хотя диапазон велик, для простоты использования порты делятся на три категории. Каждая категория помечена как диапазон значений порта:

В Linux есть несколько способов проверить открытые порты. По умолчанию любой порт будет оставаться закрытым, если приложение не использует его. Если порт открыт, то он должен быть назначен службе / процессу.

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

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

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

Следующие методы демонстрируются на Ubuntu 20.04.1 LTS.

Список протоколов и открытых портов из / etc / services

Файл / etc / services содержит информацию о запущенных в данный момент службах. Это большой файл, поэтому его можно перегружать.

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

Список открытых портов с помощью netstat

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

Выполните следующую команду netstat:

$ netstat -atu

Давайте разберем все флаги, которые мы использовали в этой команде.

Вот еще один вариант команды netstat:

$ netstat -lntu

В команде используются два новых флага. Что они имеют в виду?

Чтобы отобразить PID процесса, использующего порт, используйте флаг «-p»:

$ netstat -lntup

Список открытых портов с помощью ss

Инструмент ss - это утилита для исследования сокета. Его использование похоже на netstat.

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

$ ss -lntu

Флаги похожи на netstat. Описываемые ими функции также очень похожи.

Список открытых портов с помощью lsof

Команда lsof предназначена для вывода списка открытых файлов. Однако его также можно использовать для отображения открытых портов.

Выполните следующую команду lsof:

$ lsof -i

Чтобы получить открытые порты определенного протокола (TCP, UDP и т. Д.), затем определите его после флага «-i», используйте:

$ lsof -i

Список открытых портов с помощью nmap

Инструмент nmap - мощный инструмент для исследования сети и безопасности / сканирования портов. Он может сообщать обо всех открытых портах в системе.

Чтобы вывести список открытых TCP-портов, выполните следующую команду nmap. Здесь IP-адрес главного компьютера:

$ sudo nmap -sT -p- локальный хост

Здесь есть две части аргумента команды.

  • -СТ: Этот раздел указывает Nmap сканировать TCP-порты.
  • -п- : Это указывает Nmap сканировать все 65535 портов. Если не используется, то по умолчанию Nmap будет сканировать только 1000 портов.

Если вам нужно вывести список открытых портов UDP, выполните следующую команду nmap:

$ sudo nmap -sU -p- локальный хост

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

$ sudo nmap -n -PN -sT -sU -p- локальный хост

Список открытых портов с помощью netcat

Инструмент netcat - это утилита командной строки для чтения и записи данных через сетевые соединения по протоколам TCP и UDP. Этот инструмент также можно использовать для вывода списка открытых портов. Он может выполнять тесты на определенном порту или на диапазоне портов.

Следующая команда netcat просканирует порт от 1 до 1000. Команда netcat по умолчанию выполнит сканирование по протоколу TCP:

$ nc -z -v локальный хост 1-1000

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

$ nc -z -v локальный хост 1-65535

Давайте быстро разберем флаги.

  • z: Указывает netcat сканировать только открытые порты без отправки каких-либо данных
  • v: Указывает netcat работать в подробном режиме

Чтобы получить только открытые порты из этого списка, отфильтруйте вывод с помощью grep для термина «выполнено успешно».

$ nc -z -v localhost 0-65535 2> & 1 | grep успешно

Если вы хотите выполнить сканирование по протоколу UDP, добавьте флаг «-u».

$ nc -z -v -u localhost 0-65535 2> & 1 | grep успешно

Последние мысли

Как было продемонстрировано, существует множество способов поиска открытых портов в Linux. Я предлагаю опробовать все методы, прежде чем вы решите, какой из них освоить. Если вы регулярно используете определенный инструмент, например netcat или nmap, то освоение связанных методов будет наиболее полезным.

Удачных вычислений!

Лучшие игры с отслеживанием рук
Oculus Quest недавно представил отличную идею отслеживания рук без контроллеров. С постоянно растущим числом игр и действий, которые осуществляются фо...
Как показать наложение OSD в полноэкранных приложениях и играх Linux
Игра в полноэкранные игры или использование приложений в полноэкранном режиме без отвлекающих факторов может отрезать вас от соответствующей системной...
Топ-5 карт для захвата игр
Все мы видели и любили потоковые игры на YouTube. PewDiePie, Jakesepticye и Markiplier - лишь некоторые из лучших игроков, которые заработали миллионы...