nc传文件

nc -l 1234 > citybanner.txt

cat citybanners_0809.txt | nc 10.26.27.130 1234

显示进度
cat file.txt |pv -b | nc  192.168.1.1 20000

发送 nc -l 9992 <test.mv 接收 nc 10.0.1.162 9992 >test2.mv

  1. nc命令

nc命令和网络通信有关,nc之间可以通信,也可以和其它网络工具通信,可以使用nc -h查看帮助。Window下也可以下载或源码编译nc.exe,参考https://github.com/int0x33/nc.exe/

-l 监听模式,即服务端。

-p 指定监听的端口。

-n 后面参数解释为IP,不是域名。

-u UDP模式,默认为TCP协议。

  1. 命令行数据传输

服务端

nc -l -p 10000

开启监听后,等待客户端连接,当第一个客户端连接成功后,nc将不再监听,也即监听端口被释放了,可以换个窗口使用nc -l -p 10000验证。

建立连接前,用户输入的数据会被缓存(输入回车才会真正缓存)。

建立连接后,会直接将缓存数据发送给客户端。

建立连接后,用户输入的数据(使用回车键结束),会被发送给客户端,包含换行符。

建立连接后,客户端的数据会直接显示到屏幕。

客户端关闭后,nc程序将退出。

客户端

nc -n 192.168.1.100 10000

若连接失败,直接退出,返回1。

连接成功,用户输入的数据(使用回车键结束),会被发送给服务端,包含换行符。

建立连接后,服务端的数据会直接显示到屏幕。

服务端关闭后,nc程序将退出。

  1. 文件传输

不论文本还是二进制文件都可以使用管道和重定向符号,可以实现使用nc来发送和接收文件。无论是服务端发文件,还是客户端发文件,文件发送完毕,nc即退出,相应的接收端也会退出。

3.1 服务端向客户端发送文件

服务端

cat aa.txt | nc -l -p 10000

nc -l -p 10000 < aa.txt

客户端

nc -n 192.168.1.100 10000 > aa.txt

3.2 客户端向服务端发送文件

服务端

nc -l -p 10000 > aa.txt

客户端

cat aa.txt | nc -n 192.168.1.100 10000

nc -n 192.168.1.100 10000 < aa.txt

  1. 数据转发

nc命令可以使用管道连接起来,实现数据转发的效果。转发端可以是两个服务端,也可以是两个客户端,或者是混合,但用户需保证,必须先创建服务端才能连接对应的客户端。

4.1 单向数据中转

中转端(先执行)

nc -l -p 10000 | nc -l -p 10001

客户端1(发送数据或文件)

nc -n 192.168.1.100 10000

cat 1.txt | nc -n 192.168.1.10000

客户端2(接收数据或文件)

nc -n 192.168.1.100 10001

nc -n 192.168.1.10001 > 2.txt

4.2 双向数据转发

下面的环境中,在客户端1输入的数据会在客户端2上显示,在客户端2上输入的数据会在客户端1上显示。数据都是先抵达中转端,然后通过管道重定向数据。

客户端1(先执行)

nc -l -p 10000

中转端

mkfifo a.fifo

cat a.fifo | nc -n 192.168.1.100 10000 | nc -l -p 10001 > a.fifo

客户端2

nc -n 192.168.1.100 10001

————————————————

版权声明:本文为CSDN博主「xflm」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

原文链接:https://blog.csdn.net/qq_37858281/article/details/105348107

Published At