使用nc命令通过网络传送文件

1. nc命令

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

  1. -l 监听模式,即服务端。
  2. -p 指定监听的端口。
  3. -n 后面参数解释为IP,不是域名。
  4. -u UDP模式,默认为TCP协议。

2. 命令行数据传输

服务端

nc -l -p 10000
  1. 开启监听后,等待客户端连接,当第一个客户端连接成功后,nc将不再监听,也即监听端口被释放了,可以换个窗口使用nc -l -p 10000验证。
  2. 建立连接前,用户输入的数据会被缓存(输入回车才会真正缓存)。
  3. 建立连接后,会直接将缓存数据发送给客户端。
  4. 建立连接后,用户输入的数据(使用回车键结束),会被发送给客户端,包含换行符。
  5. 建立连接后,客户端的数据会直接显示到屏幕。
  6. 客户端关闭后,nc程序将退出。

客户端

nc -n 192.168.1.100 10000
  1. 若连接失败,直接退出,返回1。
  2. 连接成功,用户输入的数据(使用回车键结束),会被发送给服务端,包含换行符。
  3. 建立连接后,服务端的数据会直接显示到屏幕。
  4. 服务端关闭后,nc程序将退出。

3. 文件传输

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

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

服务端

cat aa.txt | nc -l -p 10000nc -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 10000nc -n 192.168.1.100 10000 < aa.txt

4. 数据转发

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

4.1 单向数据中转

中转端(先执行)

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

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

nc -n 192.168.1.100 10000cat 1.txt | nc -n 192.168.1.10000

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

nc -n 192.168.1.100 10001nc -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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值