Linux--nc命令
我们常常会面临服务器和本地机器之间的文件传输,通常情况下,lszrz命令是可以完全应付的。但是当文件过大的时候,例如前段时间需要传输一个1.7G的堆dump文件到本地,就让我犯了难,sz命令直接卡死,根本下载不下来,这个时候nc就派上了用场。
nc是netcat的简写,有着网络界的瑞士军刀美誉。因为它短小精悍、功能实用,被设计为一个简单、可靠的网络工具。
语法
nc [-hlnruz][-g<网关...>][-G<指向器数目>][-i<延迟秒数>][-o<输出文件>][-p<通信端口>][-s<来源位址>][-v...][-w<超时秒数>][主机名称][通信端口...]
参数说明:
-g<网关> 设置路由器跃程通信网关,最多可设置8个。
-G<指向器数目> 设置来源路由指向器,其数值为4的倍数。
-h 在线帮助。
-i<延迟秒数> 设置时间间隔,以便传送信息及扫描通信端口。
-l 使用监听模式,管控传入的资料。
-n 直接使用IP地址,而不通过域名服务器。
-o<输出文件> 指定文件名称,把往来传输的数据以16进制字码倾倒成该文件保存。
-p<通信端口> 设置本地主机使用的通信端口。
-r 指定本地与远端主机的通信端口。
-s<来源位址> 设置本地主机送出数据包的IP地址。
-u 使用UDP传输协议。
-v 显示指令执行过程。
-w<超时秒数> 设置等待连线的时间。
-z 使用0输入/输出模式,只在扫描通信端口时使用。
nc的作用
(1)实现任意TCP/UDP端口的侦听,nc可以作为server以TCP或UDP方式侦听指定端口;
(2)端口的扫描,nc可以作为client发起TCP或UDP连接;
(3)机器之间传输文件;
(4)机器之间网络测速
我们今天主要说下,使用nc进行文件传输。
环境: 本地MAC OS,远程:centos,分别安装nc命令;
1. 文件传输
第一步: 在本地启动一个接收文件的服务:nc -l 5555 > heapdump-1591610687839.hprof
端口随便指定,不与其他重复即可;文件名按照自己需求指定;注意命令中的空格;
第二步: 在远程服务器启动如下命令,将文件传输到本地端口。nc ip 5555 < heapdump-1591610687839.hprof
ip,我没写,其实就是你的本地ip地址;5555 是端口,和监听端的保持一致;最后是你要发送的文件名;
第三步: 远程服务传输完成,会自动退出,你需要检查本地获得的文件大小是否一致,防止是因为意外退出;
2. 文件传输(其实就是将以上的客户端和服务端切换一下)
第一步: 现在远程服务器,启动发送文件的命令:nc -l 5555 < heapdump-1591610687839.hprof
第二步: 表示从远程服务器的ip和端口接收文件
`nc ip 55555 > heapdump-1591610687839.hprof`
第三步: 检查
3. 传输目录
第一步: 本地服务启动监听, 经过测试管道后面最后必须是 - ,不能是其余自定义的文件名nc -l 5555 | tar xfvz -
第二步: 把当前目录的所有文件打包为 - ,然后使用管道通过nc发送给本地服务;tar cfz - * | nc ip 5555
第三步: 本地服务接收到文件,自动解压,剩下就是别忘了检查一下;
- ASP.NET Identity 2新增双重认证、帐号锁定、防伪印章功能并修复了一些bug
- Serverless 应用开发指南:基于 Serverless 与 Lambda 的微信公共平台
- Serverless 应用开发指南:serverless 的 hello, world
- 通过一组RESTful API暴露CQRS系统功能
- 通过使用结构化数据 JSON-LD,我为网站带来了更多的流量
- 使用 OWIN Self-Host ASP.NET Web API 2
- c#开源消息队列中间件EQueue 教程
- Serverless 框架 OpenWhisk 开发指南:使用 Node.js 编写 hello, world
- GOTO Berlin: Web API设计原则
- 使用 ServiceStack 构建跨平台 Web 服务
- 使用 OpenWhisk 自建 Serverless 服务
- 如何在 8 小时内开发上线一个在线表单系统
- 让Response.Redirect页面重定向更有效率
- 使用 adr 轻松创建 “程序员友好” 的轻量级文档
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 腾讯云TKE-Metrics-Server案例: TKE中自建Metrics-Server问题
- (建议收藏)关于JS事件循环, 这一篇就够啦
- TensorFlow2 开发指南 | 02 回归问题之汽车燃油效率预测
- 腾讯云TKE-Ingress案例: TKE-Ingress与Nginx-Ingress共存
- 玩转Kotlin 彻底弄懂Lambda和高阶函数
- leetcode之仅仅反转字母
- 3分钟短文:Laravel的“南天门”,过滤掉七七八八的数据
- 【1024,Serverless】maimai_DX 查分器
- TRTC/MLVB/IM案例:SDK用户日志提取与管理的一种实现方案
- 从 1 到 0 构建博客项目(3) --LNMP--WordPress
- 4. Validator校验器的五大核心组件,一个都不能少
- leetcode之罗马数字转整数
- B站签到-云函数
- echarts常用功能封装|抽象为mixin
- TCB系列学习文章——云开发的云托管(八)