Проверка портов в Linux

Как проверить открыт ли порт в Linux

Проверка портов в Linux

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

Команда netstat (сокращение от "network statistics", сетевые статистики) представляет собой инструмент командной строки, который отображает сетевые соединения, таблицы маршрутизации, статистику интерфейсов, маскирующие соединения и членство в мультикаст-группах.

  • -t: Отображать TCP-соединения.
  • -u: Отображать UDP-соединения.
  • -l: Отображать сокеты, находящиеся в состоянии прослушивания (открытые порты).
  • -n: Отображать числовые адреса вместо разрешения имен хостов и имен служб.

 

В терминале ведите следующую команду и нажмите Enter:

netstat -tuln

 

  • Proto: Протокол сокета (например, tcpudp).
  • Local Address: Локальный IP-адрес и номер порта. Формат: IP_Address:Port0.0.0.0 означает, что служба прослушивает все доступные IPv4-интерфейсы, а ::: означает, что она прослушивает все доступные IPv6-интерфейсы.
  • Foreign Address: Удаленный IP-адрес и номер порта. 0.0.0.0:* или :::* указывает, что сокет не подключен к определенному удаленному адресу (он находится в состоянии прослушивания).
  • State: Состояние сокета. LISTEN означает, что порт открыт и ожидает входящих соединений.

В примере вывода можно видеть, что порт 53 (DNS) и порт 22 (SSH) находятся в состоянии LISTEN как для IPv4, так и для IPv6.

Подтверждение статуса портов с помощью ss -tuln

На предыдущем этапе вы использовали команду netstat для вывода списка открытых портов. Теперь давайте воспользуемся более современным и часто быстрым инструментом, называемым ss (socket statistics, статистика сокетов), чтобы достичь той же цели. ss разработан для замены netstat и предоставляет более подробную информацию о сокетах.

Используйте аналогичные параметры с командой ss, как и с командой netstat:

  • -t: Отображать TCP-сокеты.
  • -u: Отображать UDP-сокеты.
  • -l: Отображать сокеты, находящиеся в состоянии прослушивания (открытые порты).
  • -n: Отображать числовые адреса вместо разрешения имен хостов и имен служб.

 

Введите следующую команду и нажмите Enter:

ss -tuln

Тестирование доступности порта с помощью nc -zv

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

 

  • -z: Указывает, что nc должен только сканировать на наличие работающих серверов (daemons), не отправляя им никаких данных. Это полезно для проверки, открыт ли порт.
  • -v: Включает подробный вывод, показывающий больше деталей о попытке подключения.

Мы проверим доступность порта 22 (SSH), который, как мы видели на предыдущих этапах, находится в состоянии прослушивания. Мы будем тестировать подключение к локальной машине, которую можно указать по IP-адресу 127.0.0.1 или по имени хоста localhost.

nc -zv 127.0.0.1 22

Connection to 127.0.0.1 22 port [tcp/ssh] succeeded!

 
Ссылка на ресурс или оригинальную статью