Утилита nc#
Утилита nc (или netcat) используется практически для любых операций, связанных c TCP или UDP. nc может устанавливать TCP-соединения, отправлять UDP-пакеты, прослушивать произвольные порты TCP и UDP, выполнять сканирование портов и работать с IPv4 и IPv6. Утилита может выполнять скрипты, а также разделяет сообщения об ошибках на стандартные устройства вывода ошибок вместо того, чтобы отправлять их на стандартный вывод.
Синтаксис утилиты:
nc <options> <hostname> <port>
Где:
<options>- опции;<hostname>- имя хоста;<port>- номер порта.
Часто используемые опции утилиты представлены в таблице ниже.
Опция |
Описание |
|---|---|
|
Прослушивание входящего соединения вместо инициирования соединения с удаленным хостом. Любые тайм-ауты, указанные с помощью опции |
|
Завершение работы сетевого сокета после EOF на входе |
|
Использование UDP вместо TCP. Не может использоваться вместе с опциями |
|
Отображение более подробного результата |
|
Отключение отправки данных. Не может использоваться вместе с опцией |
Примеры использования#
Для настройки соединения базовой модели клиент-сервер выполните следующие команды:
Запустите на одной машине (или консоли) прослушивание определенного порта при помощи команды:
nc -l <port>На другой машине (или консоли) подключитесь к хосту и порту, прослушивание которого запущено выше, с помощью команды:
nc -N <hostname> <port>Соединение настроено. Все, что введено во второй консоли, объединяется с первой, и наоборот. После установки соединения
ncне определяет, какая сторона используется в качестве «сервера», а какая - в качестве «клиента». Соединение можно прервать с помощью EOF (^D), так как при вводе использовалась опция-N.Для передачи данных выполните следующие команды:
После настройки соединения модели клиент-сервер любая информация, вводимая на одном конце, будет выводиться на другом. Передачу данных можно реализовать с помощью файлов, один из которых будет передаваться на вход утилиты
nc, а в другой будет перенаправлен ее вывод.Запустите
ncна одной машине (или консоли) для прослушивания определенного порта с сохранением выходных данных в файл командой:
nc -l <port> > <filename>.outНа другой машине (или консоли) подключитесь к хосту и порту, прослушиваемым выше, подав
ncфайл, данные из которого необходимо передать:
nc -N <hostname> <port> < <filename>.inДля просмотра информации о запущенных службах и открытых портах воспользуйтесь командой:
nc -z <hostname> <port-range>Где
<port-range>– это диапазон портов, указанный для ограничения поиска. Утилитаncздесь будет сообщать об открытых портах, а не инициировать соединение.