https://blog.csdn.net/u012486730/article/details/82019996
用法一就看上面这个链接
在测试之前一定要先关闭防火墙!!!,不然会总是失败
systemctl stop firewalld
systemctl disable firewalld
这里我重点看nc的用法二
A:192.168.0.34
B:192.168.0.111
使用nc传输文件和目录
方法1,传输文件演示(先启动接收命令)
使用nc传输文件还是比较方便的,因为不用scp和rsync那种输入密码的操作了
把A机器上的一个rpm文件发送到B机器上
需注意操作次序,receiver先侦听端口,sender向receiver所在机器的该端口发送数据。
步骤1,先在B机器上启动一个接收文件的监听,格式如下
意思是把赖在9995端口接收到的数据都写到file文件里(这里文件名随意取)
nc -l port >file
nc -l 9995 > 233.txt
值得一提的是,我们只要写了这个file文件,那么这个file就会马上被创建,不过他是空的
步骤2,在A机器上往B机器的9995端口发送数据,把下面文件发送过去
nc 192.168.0.111 9995 < dd.php
我们可以看下dd.php文件里的数据是啥,发现只是一串代码。
这个时候我们再来看B机器上收到的文件,有数据没?
可以看到,这个文件接收到数据了,
但是
我们发现了一个问题,我们发现我们在B主机上创建的接受文件
和A发送过来的文件的文件名
是不一样的。
所以!!!!
我们在接收的时候要注意,创建的文件名要和发送的文件名一样。
方法2,传输文件演示(先启动发送命令)
步骤1,先在B机器上,启动发送文件命令
下面命令表示通过本地的9992端口发送test.mv文件
nc -l 9999 < x23.txt
步骤2,A机器上连接B机器,取接收文件
下面命令表示通过连接B机器的9992端口接收文件,并把文件存到本目录下,文件名为cao.txt
nc 192.168.0.111 9999 > cao.txt
方法3,传输目录演示(方法发送文件类似)
步骤1,192.168.0.111机器先启动监听,如下
A机器给B机器发送多个文件
传输目录需要结合其它的命令,比如tar
经过我的测试管道后面最后必须是 - ,不能是其余自定义的文件名
nc -l 9995 | tar xfvz -
步骤2,192.168.0.34机器打包文件并连接192.168.0.111机器的端口
管道前面表示把当前目录的所有文件打包为 - ,然后使用nc发送给B机器
tar cfz - * | nc 192.168.0.111 9995
192.168.0.111机器这边已经自动接收和解压