18

Я использую что-то вроде этого для отправки файла с одного компьютера на другой:

Для подачи файла (на компьютере A):

cat something.zip | nc -l -p 1234

Чтобы получить файл (на компьютере B):

netcat server.ip.here. 1234 > something.zip

Мой вопрос ... могу ли я сделать обратное? Допустим, у меня есть файл на компьютере B, и я хочу отправить его на A, но не так, как я написал выше, а сделать компьютер, который должен принимать файл (A), «прослушивающим» сервером и подключить компьютер, «отправляющий» файл ( Б) на сервер и отправить файл? Является ли это возможным? Я думаю, что это может быть, но я не уверен, как это сделать.

В случае, если моё вышеприведённое объяснение испорчено: как отправить файл на «сервер» вместо того, чтобы отправить файл на сервер, а затем забрать его с него (как я это делал выше)?

4 ответа4

28

На вашем сервере (A):

nc -l -p 1234 -q 1 > something.zip < /dev/null
На вашем "клиенте отправителя" (B):
cat something.zip | netcat server.ip.here 1234
4

В качестве примечания, если вы хотите также сохранить права доступа к файлам, владельца и временные метки, мы используем tar с netcat для передачи каталогов и файлов.

На приемной системе:

nc -l -p 12345 -q 1 | tar xz -C /path/to/root/of/tree

От отправляющей системы:

tar czf - ./directory_tree_to_xfer | nc <host name or IP address of receiving system> 12345 

Надеюсь, это поможет.

0

Запустите другой экземпляр netcat на компьютере B. Просто сделайте то, что вы сделали на компьютере А, но подайте его с Б. Дайте новому серверу новый порт.

0

Компьютер A: nc -l -p 1234 > filename.txt

Компьютер B: nc server.com 1234 < filename.txt

Должно работать тоже;)

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .