服务器之家:专注于服务器技术及软件下载分享
分类导航

Linux|Centos|Ubuntu|系统进程|Fedora|注册表|Bios|Solaris|Windows7|Windows10|Windows11|windows server|

服务器之家 - 服务器系统 - Linux - linux nc命令传输文件(远程复制文件)

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

2019-06-14 11:02脚本之家服务器之家 Linux

今天主要讲下用nc 传输文件。由于公司的设备sudo 后没有ssh ,scp 等远程接入命令,或host.deny 里面设置了ssh 的deny ,不管怎样的原因。我今天跨过大家常用的scp, 来说明下一个更有用的轻量级工具,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把机器启动起来,就是用了类似的方法把数据导出来的。

延伸 · 阅读

精彩推荐
  • LinuxLinux上设置用户通过SFTP访问目录的权限的方法

    Linux上设置用户通过SFTP访问目录的权限的方法

    这篇文章主要介绍了Linux上设置用户通过SFTP访问目录的权限的方法,SFTP可以理解为使用SSH协议进行FTP传输的协议,因而同时要对OpenSSH进行相关设置,需要的朋...

    OSChina10022019-06-19
  • LinuxLinux lnmp下无法使用mail发邮件的两种解决方法

    Linux lnmp下无法使用mail发邮件的两种解决方法

    在配置了lnmp环境后,出现了mail函数不能发送邮件的问题,其实有两种方法,一是使用sendmail组件,而是使用postfix。下面为大家一一介绍下 ...

    Linux之家4042019-09-17
  • Linux确保Linux系统安全的前提条件 漏洞防护

    确保Linux系统安全的前提条件 漏洞防护

    Linux 作为开放式的操作系统受到很多程序员的喜爱,很多高级程序员都喜欢编写Linux操作系统的相关软件。这使得Linux操作系统有着丰富的软件支持,还有无...

    Linux之家2642020-04-11
  • LinuxLinux常用的日志文件和常用命令

    Linux常用的日志文件和常用命令

    成功地管理任何系统的关键之一,是要知道系统中正在发生什么事。 Linux 中提供了异常日志,并且日志的细节是可配置的。Linux 日志都以明文形式存储,所...

    Linux教程网2632020-04-18
  • Linux详解Linux系统下PXE服务器的部署过程

    详解Linux系统下PXE服务器的部署过程

    这篇文章主要介绍了Linux系统下PXE服务器的部署过程,包括对PXE的API架构作了一个基本的简介,需要的朋友可以参考下...

    运维之道9812019-07-04
  • Linux手把手教您在 Linux 上使用 GPG 加解密文件

    手把手教您在 Linux 上使用 GPG 加解密文件

    在本教程中,我将告诉你如何用 GPG 加密和解密文件。这是一个简单的教程,你可以在你的 Linux 系统上尝试所有的练习。这将帮助你练习 GPG 命令,并在你...

    Linux中国6962021-12-15
  • LinuxLinux中环境变量配置的步骤详解

    Linux中环境变量配置的步骤详解

    Linux中环境变量包括系统级和用户级,系统级的环境变量是每个登录到系统的用户都要读取的系统变量,而用户级的环境变量则是该用户使用系统时加载的...

    Myths7882022-02-10
  • Linuxlinux中rmdir命令使用详解(删除空目录)

    linux中rmdir命令使用详解(删除空目录)

    今天学习一下linux中命令: rmdir命令。rmdir是常用的命令,该命令的功能是删除空目录,一个目录被删除之前必须是空的 ...

    linux命令大全5372019-11-19