前言
在服务器之间传输文件有多种方法,比如scp,rz/sz,搭建ftp等等。
windows下感觉最方便的还是rz/sz,支持直接鼠标拖拽但是需要用户终端的支持,基于zmodem协议,传输速度慢,传输一些大型的二进制文件会失败。
scp命令基于ssh协议,需要服务器能ssh登陆,有时想在服务器间传输文件,而服务器间不能直接登陆,需要经过跳板机中转,用scp命令就显得过于繁琐。
通过搭建ftp来传输,就更繁琐了。。
而linux下其实还提供了另一个方便的工具——nc,基于其轻量级的特性,linux系统上一般都会自带。它可以用来做文件传输,但其实其功能并不只局限于此。
nc的使用
nc -l 1234
这样通过nc监听了端口1234,默认监听ip为0.0.0.0
而另一台服务器想和这台服务器通信,只需
nc ip地址 1234
好了,要传输文件,只需在此基础上配合重定向符 > <
首先,在接受文件端使用命令:
nc -l 1234 > file.txt
即:将从端口1234监听到的信息输出到file.txt中
然后,在发送文件端使用命令:
nc ip地址 1234 < file.txt
即:从文件file.txt发送到对应ip的1234端口
这样,就完成文件传输了~
当文件传输后,接收文件端的nc进程会自动退出。
后记
由于nc需要监听额外的未使用的端口,所以可能会被防火墙屏蔽。