linux nc命令传输文件(远程复制文件)

nc 到底干嘛用的我不多描述,今天主要讲下用nc 传输文件。由于公司的设备sudo 后没有ssh ,scp 等远程接入命令,或host.deny 里面设置了ssh 的deny ,不管怎样的原因。我今天跨过大家常用的scp, 来说明下一个更有用的轻量级工具,nc 的另一个强大的功--- 文件传输。

范例如下:

目的主机监听

nc -l 监听端口[ 未使用端口] > 要接收的文件名
nc -l 4444 > cache.tar.gz

源主机发起请求

nc 目的主机ip 目的端口 < 要发送的文件
nc 192.168.0.85 4444 < /root/cache.tar.gz

netstat 如下

[root@localhost jiangbao]# netstat -tpln

tcp 0 0 0.0.0.0:4444 0.0.0.0:* LISTEN 18166/nc

英文描述如下

DATA TRANSFER

Start by using nc to listen on a specific port, with output captured into a file:

$ nc -l 1234 > filename.out
Using a second machine, connect to the listening nc process, feeding it the file which is to be transferred:

$ nc host.example.com 1234 < filename.in

另附nc 的其他选项说明:

语  法: nc [-hlnruz][-g< 网关...>][-G< 指向器数目>][-i< 延迟秒数>][-o< 输出文件>][-p< 通信端口>][-s< 来源位址>][-v...][-w< 超时秒数>][ 主机名称][ 通信端口...]

补充说明: 执行本指令可设置路由器的相关参数。

参  数:
-g< 网关> 设置路由器跃程通信网关,最丢哦可设置8 个。
-G< 指向器数目> 设置来源路由指向器,其数值为4 的倍数。
-h 在线帮助。
-i< 延迟秒数> 设置时间间隔,以便传送信息及扫描通信端口。
-l 使用监听模式,管控传入的资料。
-n 直接使用IP 地址,而不通过域名 服务器 。
-p< 通信端口> 设置本地主机使用的通信端口。
-r 乱数指定本地与远端主机的通信端口。
-s< 来源位址> 设置本地主机送出数据包的IP 地址。
-u 使用UDP 传输 协议 。
-v 显示指令执行过程。
-w< 超时秒数> 设置等待连线的时间。
-z 使用0 输入/ 输出模式,只在扫描通信端口时使用

Linux 远程复制文件

如果想把机器A上面的dir目录下面的所有文件复制到机器B的dir目录下,我们可以使用nc命令来完成

在机器A的dir目录下面执行:

tar -czf - * | nc -l 4444

然后再机器B的目录目录dir下面执行:

sudo nc 「机器A的机器ip」 4444 | sudo tar -xzf -

补充资料2:
1,在Linux下需要对大量小文件进行移动或复制时,用cp、mv都会显得很没有效率,可以用tar先压缩再解压缩的方式。

2,在网络环境中传输时,可以再结合nc命令,通过管道和tcp端口进行传输。

nc和tar可以用来快速的在两台机器之间传输文件和目录,比ftp和scp要来得简单的多。

由于nc是一个超轻量的命令,所以一般busybox都会集成它。当一个linux终端,比如linux pda,通过usblan的方式连接到另一台linux主机的时候,这样的嵌入式终端上一般不会集成ftp server, ssh server这样比较笨重的服务,这个时候, nc可能成为唯一的上传手段。

比如将机器A上的mytest目录上传到到机器 B(192.168.0.11)上,只需要:

在机器B上,用nc来监听一个端口,随便就好,只要不被占用;并且将收到的数据用tar展开。-l代表监听模式。

[root@ www.linuxidc.com ~]#nc -l 4444 |tar -C /tmp/dir -zxf -

然后,在A上通过nc和 tar发送test目录。使用一致的4444的端口。

[root@ www.linuxidc.net ~]#tar -zcvf - mytest|nc 192.168.0.11 4444

记得有一次,一台机器内核崩了,后来有位高手用liveCD把机器启动起来,就是用了类似的方法把数据导出来的。

(0)

相关推荐

  • ubuntu(linux)命令行模式创建复制文件的方法

    ubuntu是一个非常好用的系统,是很多编程爱好者的首选,但是纯命令行模式的系统对于初学者来说是比较难的,下面小编就根据自己亲身实践来教大家如何在命令行模式下如何创建以及复制文件. 操作方法 01 首 ...

  • Win7用U盘复制文件提示"复制文件过大无法复制"如何解决

    Win7用U盘复制文件提示"复制文件过大无法复制"如何解决 操作步骤: 1.将U盘插入电脑的USB接口中; 2.按Win+R键,打开运行,输入CMD,点击确定; 3.在打开的命令提 ...

  • Linux两台服务器之间如何复制文件及免密码登录

    有时候搭建集群机器是,需要在多台机器中间相互拷贝文件,一种方式是同事sftp拷贝到本机,再分别拷贝到其他服务器上.这里介绍一种直接在两台服务器之间拷贝文件且去掉繁琐的登陆操作的方法. 两台服务器之间拷 ...

  • Linux tar命令怎样打包解包文件

    在Linux或者是Unix系统可以用tar命令来打包或者是解包文件.今天小编我就来给大伙们分享一下关于 tar命令解包打包文件,包括打包到指定目录,打包目录等操作的. 操作方法 01 如图看到的示例, ...

  • Linux下如何使用cp命令复制文件及复制目录

    Linux下cp命令的用法主要用于复制文件,加上参数还可以复制目录,下面随小编一起来了解下Linux下cp命令的具体用法。 一般情况下,shell会设置一个别名,在命令行下复制文件时,如果目标文件已经 ...

  • linux scp命令的用法详解

    svn 删除所有的 。svn文件 find . -name .svn -type d -exec rm -fr {} /; 名称:cp 使用权限:所有使用者 使用方式: cp [options] so ...

  • linux命令大全之scp命令详解(复制文件和目录)

    scp是secure copy的简写,用于在Linux下进行远程拷贝文件的命令,和它类似的命令有cp,不过cp只是在本机进行拷贝不能跨服务器,而且scp传输是加密的。可能会稍微影响一下速度。当你服务器 ...

  • Linux文件的复制.删除和移动命令使用说明

    cp复制命令 cp命令复制文件从一个位置到另一位置。如果目的地文件存在,将覆复写该文件; 如果目的地目录存在,文件将复制到该目录下 (目录不会被复写)。 语法: 语法是 cp [命令开关]… SOUR ...

  • linux命令:cp复制文件或目录

    使用Linux系统的时候经常需要运用cp命令进行文件或者文件夹的复制,那么该如何操作cp命令呢?下面小编给大家分享一下. 操作方法 01 首先登录进linux系统,右键单击选择Open In Term ...