Тестирование доступности порта с помощью nc -zv
На предыдущих этапах вы узнали, как выводить список открытых портов с использованием команд netstat
и ss
. Теперь давайте воспользуемся командой nc
(netcat) для проверки, можно ли на самом деле подключиться к определенному порту. nc
- это универсальная сетевая утилита, которая может считывать данные из сетевых соединений и записывать в них с использованием протоколов TCP или UDP.
Мы будем использовать nc
с следующими параметрами:
-z
: Указывает, что nc
должен только сканировать на наличие работающих серверов (daemons), не отправляя им никаких данных. Это полезно для проверки, открыт ли порт.
-v
: Включает подробный вывод, показывающий больше деталей о попытке подключения.
Мы проверим доступность порта 22 (SSH), который, как мы видели на предыдущих этапах, находится в состоянии прослушивания. Мы будем тестировать подключение к локальной машине, которую можно указать по IP-адресу 127.0.0.1
или по имени хоста localhost
.
Если терминал еще не открыт, откройте его.
Введите следующую команду и нажмите Enter:
nc -zv 127.0.0.1 22
Вы должны увидеть вывод, похожий на следующий:
Connection to 127.0.0.1 22 port [tcp/ssh] succeeded!
Этот вывод подтверждает, что nc
смог успешно подключиться к порту 22 на вашей локальной машине.
Теперь давайте попробуем проверить порт, который, скорее всего, не открыт, например, порт 80 (HTTP), так как в этой среде по умолчанию не запущен веб-сервер.
Введите следующую команду и нажмите Enter:
nc -zv 127.0.0.1 80
Скорее всего, вы увидите вывод, указывающий на отказ в подключении или истечение времени ожидания, похожий на следующий:
nc: connect to 127.0.0.1 port 80 (tcp) failed: Connection refused
Этот вывод показывает, что nc
не смог подключиться к порту 80, что ожидаемо, так как на этом порту не запущена никакая служба.
Использование nc -zv
- это быстрый и простой способ проверить, доступен ли и открыт ли определенный порт из вашего текущего расположения.
Нажмите Продолжить, чтобы завершить это практическое занятие.