使用 Netcat 进行文件传输 Netcat 就像是极客的瑞士军刀。它几乎可以用于任何涉及 TCP 或 UDP 的事务。它最实用的用途之一是传输文件。非 *nix 用户通常没有设置 SSH,而使用 netcat 传输东西比设置 SSH 快得多。netcat 只是一个可执行文件,并且适用于所有平台(Windows、Mac OS X、Linux)。
在接收端运行,
nc -l -p 1234 > out.file
将开始在端口 1234 上监听。
在发送端运行,
nc -w 3 [destination] 1234 < out.file
将连接到接收者并开始发送文件。
如果发送者和接收者都安装了一些基本的 *nix 工具,为了更快的传输,你可以在发送过程中压缩文件,
在接收端,
nc -l -p 1234 | uncompress -c | tar xvfp -
在发送端,
tar cfp - /some/dir | compress -c | nc -w 3 [destination] 1234
使用 netcat 的一个更酷但不太实用的用途是,它可以使用一个名为 dd 的命令通过网络传输整个硬盘的映像。
在发送端运行,
dd if=/dev/hda3 | gzip -9 | nc -l 3333
在接收端,
nc [destination] 3333 | pv -b > hdImage.img.gz
请注意,使用 netcat 进行的文件传输不是加密的,网络上的任何人都可以抓取你正在发送的内容,因此仅在受信任的网络上使用此方法。
参考资料:https://nakkaya.com/2009/04/15/using-netcat-for-file-transfers/