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
- nc命令
nc命令和网络通信有关,nc之间可以通信,也可以和其它网络工具通信,可以使用nc -h查看帮助。Window下也可以下载或源码编译nc.exe,参考https://github.com/int0x33/nc.exe/。
-l 监听模式,即服务端。
-p 指定监听的端口。
-n 后面参数解释为IP,不是域名。
-u UDP模式,默认为TCP协议。
- 命令行数据传输
服务端
nc -l -p 10000
开启监听后,等待客户端连接,当第一个客户端连接成功后,nc将不再监听,也即监听端口被释放了,可以换个窗口使用nc -l -p 10000验证。
建立连接前,用户输入的数据会被缓存(输入回车才会真正缓存)。
建立连接后,会直接将缓存数据发送给客户端。
建立连接后,用户输入的数据(使用回车键结束),会被发送给客户端,包含换行符。
建立连接后,客户端的数据会直接显示到屏幕。
客户端关闭后,nc程序将退出。
客户端
nc -n 192.168.1.100 10000
若连接失败,直接退出,返回1。
连接成功,用户输入的数据(使用回车键结束),会被发送给服务端,包含换行符。
建立连接后,服务端的数据会直接显示到屏幕。
服务端关闭后,nc程序将退出。
- 文件传输
不论文本还是二进制文件都可以使用管道和重定向符号,可以实现使用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
- 数据转发
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