Утилита nc#

Описание#

Утилита nc (или netcat) используется практически для любых операций, связанных c TCP или UDP. nc может устанавливать TCP-соединения, отправлять UDP-пакеты, прослушивать произвольные порты TCP и UDP, выполнять сканирование портов и работать с IPv4 и IPv6. Утилита может выполнять скрипты, а также разделяет сообщения об ошибках на стандартные устройства вывода ошибок вместо того, чтобы отправлять их на стандартный вывод.

Синтаксис утилиты:

nc <options> <hostname> <port>

Где:

  • <options> - опции;

  • <hostname> - имя хоста;

  • <port> - номер порта.

Опции#

Часто используемые опции утилиты представлены в таблице ниже.

Опции nc#

Опция

Описание

-l

Прослушивать входящее соединение вместо инициирования соединения с удаленным хостом. Любые тайм-ауты, указанные с помощью опции -w, игнорируются

-u

Использовать UDP вместо TCP. Не может использоваться вместе с опциями -c или -x

-v

Отобразить более подробный результат

-z

Отключить отправку данных. Не может использоваться вместе с опцией -l

Примеры использования#

  • Для настройки соединения базовой модели клиент-сервер выполните следующие команды:

    1. Запустите на одной машине (или консоли) прослушивание определенного порта при помощи команды:

      nc -l <port>
      
    2. На другой машине (или консоли) подключитесь к хосту и порту, прослушивание которого запущено выше, с помощью команды:

      nc <hostname> <port>
      

    Соединение настроено. Все, что введено во второй консоли, объединяется с первой, и наоборот. После установки соединения nc не определяет, какая сторона используется в качестве «сервера», а какая - в качестве «клиента».

  • Для передачи данных выполните следующие команды:

    После настройки соединения модели клиент-сервер любая информация, вводимая на одном конце, будет выводиться на другом. Передачу данных можно реализовать с помощью файлов, один из которых будет передаваться на вход утилиты nc, а в другой будет перенаправлен ее вывод.

    1. Запустите nc на одной машине (или консоли) для прослушивания определенного порта с сохранением выходных данных в файл командой:

      nc -l <port> > <filename>.out
      
    2. На другой машине (или консоли) подключитесь к хосту и порту, прослушиваемым выше, подав nc файл, данные из которого необходимо передать:

      nc <hostname> <port> < <filename>.in
      
  • Для просмотра информации о запущенных службах и открытых портах воспользуйтесь командой:

    nc -z <hostname> <port-range>
    

    Где <port-range> – это диапазон портов, указанный для ограничения поиска. Утилита nc здесь будет сообщать об открытых портах, а не инициировать соединение.

Дополнительная информация#

Дополнительную информацию можно получить, выполнив команду:

man nc

Или:

nc --help