netcat瑞士军刀学习笔记

AB两机​互传文件

A机(接收端)

nc -lp portID > test.txt

开启自己的333端口,并将自己接收到的信息重定向到test.txt中

B机(发送端)

nc -nv IPof A portID< test.txt -q 1

重定向输入到nc中,之后发到A机的333端口

(q选项)传输完成1s后断开


反向传输​(由侦听端发给连接端)

A机(发送端)

nc -lp portID < test.txt -q 1

将test.txt放到此端口,等着其他机器连接下载(​一旦连接建立,文件就会传到连接方​)

传输完成1s后断开

B机(接收端)

nc -nv IP of A portID > test.txt

B就会接收到A机中的test.txt


AB两机​互传目录

需要将目录打包成一个压缩文件,然后再进行传输

A机(发送端)

tar -zcvf- -test/ | nc -lp portID -q 1

将当前目录中的music目录用gzip打包,使用管道符输入给nc程序,发送给侦听端(B机)

注意f选项后面要有一个-

因为,f选项要求指明打包文件的名字,但我们在使用nc进行传输的时候是没必要起名字的,因此需要使用-占位,下同

B机(接收端)

nc -lp portID | tar -zxvf-

将接收到的文件传送给tar程序,进行解包


AB两机​加密传输文件

A机(接收端)

nc -lp portID | mcrypt –flush -Fbqd -a rijndael-256 -m ecb > test.txt

将接收到的文件作为输入,传给加密程序mcrypt,​参数Fbqd(decode解密)​,​加密算法rijndael-256

B机(发送端)

mcrypt –flush -Fbq -a rijndael-256 -m ecb < test.txt | nc -nv IP of A portID -q 1

参数Fbq(加密)

加密完之后重定向到test.txt作为输入传给A机


使用netcat搭建流媒体服务器

A机:​(发送端)

cat 1.mp4 | nc -lp portID

将1.MP4文件放在监听端口,只要有机器连接该端口,文件就会被传到连接端

B机:​(接收端)

nc -nv IP of A portID | mplayer -vo x11 -cache 3000 -

直接使用mplayer播放器打开

缓存3000字节的大小

其实和上面的套路都差不多,NC只是开启端口和监听端口而已