Утилита netcat (или nc) должна быть в любом дистрибутиве, и даже в Knoppix она тоже есть. Если вдруг её нет, установка netcat проблем не составляет:
apt-get install netcatРаботать с ней очень просто, и на примере далее я покажу, как легко и просто передавать файлы при помощи nc. Идея netcat очень проста: он просто перенаправляет поток данных в порт сетевого устройства, а на другом конце поток перенаправляется в файл. Отсюда и название: NETcat - тот же cat, но сетевой. При передаче файлов следует первым запускать nc на сервере (куда будут передаваться данные), а потом уже с клиента (откуда передаются данные) пересылать файлы.
На стороне сервера (куда передаём данные):
Нужно запустить netcat так, чтобы он слушал определённый порт, и перенаправлял получаемый поток в файл. Вот так:
nc -l -p 3333 > file.txtЭто откроет на прослушивание порт 3333, и сохранит полученные данные в файл file.txt в текущем каталоге. При этом программа не вернёт управление консоли, и будет ждать, пока вы вручную завершите её.
На стороне клиента (откуда передаются данные):
Для этого передаём по конвейеру файл nc так:
cat file.txt | nc 192.168.1.1 3333Это передаст файл file.txt на машину с IP-адресом 192.168.1.1, где уже запущен nc, слушающий порт 3333.
А кроме того
Можно с помощью nc устроить чат с пользователем на другой машине. Со стороны клиента просто пишете
nc 192.168.1.1 3333и на том конце будет видно всё, что вы печатаете, в том числе кириллицу.
Ссылки:
Первоначально идея была любезно утянута отсюда, разбавлена вот этим и приправлена вот этим материалом.
Ух-ты! А я тут понимаешь с шеллом и форвардингом портов огород горожу...
ОтветитьУдалитьТак можно чаты какие нибудь устраивать, и даже целые конференции :)
Сцылко только поправь http://iar.spb.ru/linux/network =))) Там ещё добавил как через tar и nc копировать много файлов за раз =)
ОтветитьУдалитьНу и ещё уточнение. Как ни странно, в некоторых дистах в дефолтную систему netcat невключён. В дебианистых системах можно поставить: apt-get install netcat
Есть ещё, кстати, отличная штука под именем dog.
ОтветитьУдалить$ aptitude show dog
Вот она чуть-чуть по-другому, но умеет и так, и стандартным котом отрабатывать и ещё немного разного.
2 librarian пишет...
ОтветитьУдалитьУх-ты! А я тут понимаешь с шеллом и форвардингом портов огород горожу...
А у меня этот пост лежал почти год :-/ Буду выкладывать раритетные вещи :-)
Так можно чаты какие нибудь устраивать, и даже целые конференции :)
Конечно, без проблем.
2 Ivan A-R пишет...
Сцылко только поправь
Спасибо, поправил.
Ну и ещё уточнение. Как ни странно, в некоторых дистах в дефолтную систему netcat невключён.
В Дебиане и Кноппиксе оно есть. В Дебиане правда не поставлено по умолчанию.
2 Roman Khimov пишет...
Есть ещё, кстати, отличная штука под именем dog.
Спасибо, Роман! Гляну.
virens, вот и я про то, что не поставлено =) Утром торопился писал. Так что слог оставляет желать лучшего =))) В бубунтах разномастных вроде тоже надо ставить.
ОтветитьУдалитьА как я пойму что файл закончил отправку на клиенте?
ОтветитьУдалитьа то отправку запустил, а она так и висит
vech, если по_man_ить netcat то найдётся ключик -q
ОтветитьУдалить2 Ivan A-R пишет...
ОтветитьУдалитьvirens, вот и я про то, что не поставлено =)
Про то, как поставить netcat, я написал позже.
В бубунтах разномастных вроде тоже надо ставить.
За убунты не в ответе, но в Debian надо ставить.
Кстати, про ключик -q надо будет добавить в пост.
Быстрый способ переливать файлы:
ОтветитьУдалитьоткуда:
cd /path/to/directory
find|cpio -ov|nc -l -p 9999
куда:
cd /path/to/directory
nc адрес 9999|cpio -idmv
можно добавить сжатие по gzip/gunzip, но если сеть 100 Мбит/с - выгоды обычно не бывает
вместо cpio можно использовать tar, но в нём я столкнулся с проблемой - криво копируются симлинки, указывающие на абсолютный путь
это гениальная штука. спасибо за пост и комменты.
ОтветитьУдалить