Netcat
| Тип | |
|---|---|
| Разработчик |
|
| Написана на | |
| Операционная система | |
| Последняя версия |
0.7.1 (11 января 2004) |
| Лицензия | |
| Сайт |
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 число | Задать тайм-аут (в секундах) |
| -q число | Задать время ожидания после EOF на входе (в секундах) ** |
| -e исполняемый_файл | ! Запустить указанную программу для обмена данных с сетью (вместо стандартных ввода и вывода) |
| -с команда | ! То же, в виде команды для /bin/sh |
! — требуется специальная сборка, в поставляемых исполняемых файлах отключено (легко создаёт сетевую уязвимость).
* — в некоторых реализациях номер порта для прослушивания задаётся через -l, а ключ -p отсутствует.
** — имеется не во всех версиях.
Применение [править]
- Тестирование и ручная работа с сетевыми протоколами;
- Проверка доступности портов;
- Сетевой интерфейс для командного интерпретатора UNIX (впрочем, некоторые версии bash умеют подключаться к TCP и UDP самостоятельно);
- (С ключом -l) создание простых серверов, обычно тестовых;
- (Совместно с inetd) перенаправление портов.
Примеры [править]
Для ubuntu удалите из ключей "-p ".
Отображение тестовой HTML-странички клиенту с обычным браузером одной командой (порт 8080):
(echo -e "HTTP/1.1 200 OK\nContent-Type: text/html\n\n Hello World";) | nc -vv -l -p 8080
Передача файла клиенту с обычным браузером одной командой (порт 8080):
(echo -e "HTTP/1.1 200\nContent-Disposition: attachment; filename=целевое-имя-которое-увидит-клиент\nContent-Type: application/octet-stream\nConnection: close\n"; cat имя-файла-на-диске ) | nc -vv -l -p 8080
Имена команды [править]
nc, netcat, ncat, pnetcat (в разных системах).
См. также [править]
Ссылки [править]
- GNU Netcat (англ.) — официальный сайт проекта
- Netcat для Windows

