**nc-服务器间文件传输**
nc软件介绍
nc,全名叫 netcat,它可以用来完成很多的网络功能,譬如端口扫描、建立TCP/UDP连接,数据传输、网络调试等等,因此,它也常被称为网络工具的瑞士军刀。
安装
Linux系统一般不会默认安装该软件,在使用时需要手动安装,安装脚本如下
# centos
yum install nc
# ubuntu
apt-get install netcat
使用
nc [-46DdhklnrStUuvzC] [-i interval] [-p source_port] [-s source_ip_address] [-T ToS] [-w timeout] [-X proxy_protocol] [-x proxy_address[:port]] [hostname] [port[s]]
参数选项介绍:
-4:只使用 IPv4 地址
-6:只使用 IPv6 地址
-l:启动本地监听
-n:不使用 DNS 解析
-p:指定源端口
-s:指定源 IP 地址
-u:使用 UDP,默认是 TCP
-v:显示详细信息
-w:设定超时时间(只适合用在 Client 端)
-d:禁止从标准输入读取数据,也就是客户端输入数据不会发送到服务端
-k:让服务端保持连接,不断开
服务器之间文件传输
nc 的本质是在两台机器之间建立连接,之后就可以基于这个连接做很多事情,数据传输是其中一个最为基本的。我们下面就使用 nc 来进行文件传输。
假设服务器A作为文件接受方(server端),服务器B作为文件发送方(client端)。
server(服务器A)
在接受文件的目录下启动server服务
nc -l -p 9988 | tar x
其中9988为端口号,可自行指定
client(服务器B)
进行文件传输
tar x ${待传文件路径} | nc ${服务器A ip地址} 9988
例如:
假设服务器A的IP地址为9.91.243.213,将data目录下的文件test.txt文件传输到服务器A,命令如下:
tar x /data/test.txt | nc 9.91.243.213 9988
nc建立的连接是一次性的,当文件传输结束,则连接自动中断。