Практическое использование команды nc (netcat) в Linux

Опубликовано: 16 Февраля, 2022

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

  • Операции, связанные с сокетами TCP, UDP или UNIX-домена
  • Сканирование портов
  • Прослушивание порта
  • Перенаправление порта
  • открыть удаленные подключения
  • Чтение / запись данных по сети
  • Отладка сети
  • Тестирование сетевого демона
  • Простые TCP-прокси
  • Команда Socks или HTTP-прокси для ssh

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

Установка инструмента мониторинга процессов netcat (nc)

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

В случае Debian / Ubuntu

 $ sudo apt-get install netcat

В случае CentOS / RHEL

$yum install nc 

В случае Fedora 22+ и RHEL 8

 $ dnf установить nc

Работа с netcat Security Tool

1. Чтобы начать прослушивание порта, сначала откройте 2 окна терминала.

Терминал 1 для прослушивания

$ nc -l -p 1234

Терминал 2 отправляет запрос

$ NC 127.0.0.1 1234

Примечание. Здесь номер порта - 1234, а по умолчанию - localhost.

Он ничего не будет отображать, но начнет прослушивать порт 1234 на локальном хосте с терминала 1. И все, что введено в терминал 2, также будет отражено обратно в терминал 1, что подтверждает, что соединение установлено успешно.

2. Перенести данные. Откройте 2 окна терминала.

Терминал 1 для прослушивания

$ nc -l -p 1234> output.txt

Терминал 2 для отправки запроса

$ echo "GeeksforGeeks"> input.txt
$ nc 127.0.0.1 1234 <input.txt

Примечание. Здесь номер порта - 1234, а по умолчанию - localhost. Он отправит данные файла input.txt с терминала 2 в файл output.txt на терминале 1.

3. Выполнить сканирование портов. Введите следующую команду на терминале.

Сканирование одного порта

 $ netcat -z -v 127.0.0.1 1234

Сканирование нескольких портов

 $ nc -z -v 127.0.0.1 1234 1235

Сканирование ряда портов

 $ nc -z -v 127.0.0.1 1233-1240

Примечание. Здесь номера портов 1234, 1235, 1233 и 1240, вы можете изменить их по своему усмотрению. Он отобразит номер порта со статусом (открыт или нет).

4. Чтобы отправить HTTP-запрос

$printf “GET /nc.1 HTTPs/1.1 Host: www.geeksforgeeks.org ” | nc www.geeksforgeeks.org 80

Примечание. Здесь находится веб-сайт www.geeksfrogeeks.org, вы можете выбрать любой. Он отправит HTTP-запрос на www.geeksfrogeeks.org.

5. Задержать интервал отправки строк. Откройте 2 терминала, как показано ниже:

Терминал 1 для прослушивания

$ nc -l -p 1234

Терминал 2 отправляет запрос

$ nc -i 5 127.0.0.1 1234

Примечание. Здесь номер порта - 1234, а по умолчанию - localhost. Затраченное время - 5 секунд. Каждое будет отправлено через 5 секунд.