netcat (англ. net мережа + cat) — утиліта Unix, що дозволяє встановити з'єднання TCP та UDP, отримувати та передавати звідти дані. Незважаючи на простоту та користь, ця утиліта не включена до жодного стандарту.
Використання
Зазвичай netcat викликається так:
nc host port
Це призводить до створення TCP-з'єднання зі вказаними реквізитами та переключення стандартного вводу на мережевий вивід і навпаки. Функціональність програми нагадує команду cat, що й зумовило вибір назви. При неможливості з'єднання програма виводить помилку на stderr.
Утиліта розпізнає такі параметри:
-h
|
Довідка; нічого не робиться
|
-v
|
Детальний вивід даних (англ. verbose)
|
-o файл_виходу
|
Записує дамп даних у файл
|
-i число
|
Затримка між даними, що надсилаються (у секундах)
|
-t
|
Сумісність із Telnet
|
-z
|
Не надсилати дані (сканування портів)
|
-u
|
Підключатись за допомогою UDP (замість TCP)
|
-l
|
Пасивний режим (прослуховування порту)
|
-p число
|
Локальний номер порту (для -l)
|
-s хост
|
Використовувати задану локальну («свою») IP-адресу
|
-n
|
Вимкнути DNS та пошук номерів портів у /etc/services
|
-w число
|
Задати тайм-аут (у секундах)
|
-q число
|
Задати час очікування після EOF на вході (у секундах)
|
-e виконуваний_файл
|
! Запустити вказану програму для обміну даними з мережею (замість стандартних потоків)
|
-с команда
|
! Теж саме, у вигляді команди для /bin/sh
|
! — потрібна спеціальна збірка (оскільки створює мережеву уразливість), у бінарних файлах, що зазвичай постачаються, відсутня.
Застосування
- Тестування і ручна робота з мережевими протоколами;
- Перевірка доступності портів;
- Мережевий інтерфейс для оболонки UNIX (втім, деякі версії bash можуть підключатись за допомогою TCP та UDP самостійно);
- (З параметром -l) створення простих серверів, зазвичай тестових;
- (Сумісно з inetd) перенаправлення портів.
Приклади
Відображення тестової 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.
Див. також
Посилання