Netcat
netcat (англ. net сеть + cat) — утилита Unix, позволяющая устанавливать соединения TCP и UDP, принимать оттуда данные и передавать их. Несмотря на свою простоту, данная утилита не входит ни в какой стандарт (например, POSIX).
ДействиеПравить
В простом случае NetCat вызывается как:
nc host port
, что приводит к созданию TCP-подключения с указанными реквизитами и замыканием стандартного ввода на сетевой вывод и наоборот, стандартного вывода на сетевой ввод. Такая функциональность напоминает команду cat, что обусловило выбор имени «netcat». При невозможности подключения программа выводит сообщение об ошибке на stderr.
Утилита распознаёт следующие ключи:
-h | Справка; ничего не делается |
-v | Дополнительная диагностика (verbose) |
-o выходной_файл | Выводить дампы данных |
-i число | Задержка между отправляемыми данными (в секундах) |
-t | Эмуляция Telnet |
-z | Не посылать данные (сканирование портов) |
-u | Подключаться по UDP (вместо TCP) |
-l | Пассивный режим (прослушивание порта) |
-p число | * Локальный номер порта (для -l) |
-s host | Использовать заданный локальный («свой») IP-адрес |
-n | Отключить DNS и поиск номеров портов по /etc/services |
-w число | Задать таймаут (в секундах) |
-e исполняемый_файл | ! Запустить указанную программу вместо стандартных ввода и вывода |
-с команда | ! Аналогично, команда для /bin/sh |
! — требуется специальная сборка, в поставляемых исполняемых файлах отключено (легко создаёт сетевую уязвимость).
* — в некоторых реализациях номер порта для прослушивания задаётся через -l, а ключ -p отсутствует.
ПрименениеПравить
- Тестирование и ручная работа с сетевыми протоколами;
- Проверка доступности портов;
- Сетевой интерфейс для командного интерпретатора UNIX (впрочем, некоторые версии bash умеют подключаться к TCP и UDP самостоятельно);
- (С ключом -l) создание простых серверов, обычно тестовых;
- (Совместно с inetd) перенаправление портов.
Имена командыПравить
nc, netcat, ncat, pnetcat (в разных системах).