什么是nc

ncnetcat的简写,有着网络界的瑞士军刀美誉。因为它短小精悍、功能实用,被设计为一个简单、可靠的网络工具

nc的作用

(1)实现任意TCP/UDP端口的侦听,nc可以作为server以TCP或UDP方式侦听指定端口
(2)端口的扫描,nc可以作为client发起TCP或UDP连接
(3)机器之间传输文件
(4)机器之间网络测速

nc的控制参数不少,常用的几个参数如下所列:

1) -l
用于指定nc将处于侦听模式。指定该参数,则意味着nc被当作server,侦听并接受连接,而非向其它地址发起连接。
2) -p <port>
暂未用到(老版本的nc可能需要在端口号前加-p参数,下面测试环境是centos6.6,nc版本是nc-1.84,未用到-p参数)
3) -s 
指定发送数据的源IP地址,适用于多网卡机 
4) -u
 指定nc使用UDP协议,默认为TCP
5) -v
输出交互或出错信息,新手调试时尤为有用
6)-w
超时秒数,后面跟数字 
7)-z
表示zero,表示扫描时不发送任何数据
 

nc用法1,网络连通性测试和端口扫描

nc可以作为server端启动一个tcp的监听(注意,此处重点是起tcp,下面还会讲udp)
先关闭A的防火墙,或者放行下面端口,然后测试B机器是否可以访问A机器启动的端口
在A机器上启动一个端口监听,比如 9999端口(注意:下面的-l 是小写的L,不是数字1)
默认情况下下面监听的是一个tcp的端口
nc -l 9999
 

nc用法2,使用nc传输文件和目录

方法1,传输文件演示(先启动接收命令)
使用nc传输文件还是比较方便的,因为不用scp和rsync那种输入密码的操作了
把A机器上的一个rpm文件发送到B机器上
需注意操作次序,receiver先侦听端口,sender向receiver所在机器的该端口发送数据。  
 
步骤1,先在B机器上启动一个接收文件的监听,格式如下
意思是把赖在9995端口接收到的数据都写到file文件里(这里文件名随意取)
nc -l port >file
nc -l 9995 >zabbix.rpm
步骤2,在A机器上往B机器的9995端口发送数据,把下面rpm包发送过去
nc 10.0.1.162 9995 < zabbix-release-2.4-1.el6.noarch.rpm
 
方法3,传输目录演示(方法发送文件类似)
 
步骤1,B机器先启动监听,如下
A机器给B机器发送多个文件
传输目录需要结合其它的命令,比如tar
经过我的测试管道后面最后必须是 - ,不能是其余自定义的文件名
nc -l 9995 | tar xfvz -
 
步骤2,A机器打包文件并连接B机器的端口
管道前面表示把当前目录的所有文件打包为 - ,然后使用nc发送给B机器
tar cfz - * | nc 10.0.1.162 9995
 

nc用法3,测试网速

测试网速其实利用了传输文件的原理,就是把来自一台机器的/dev/zero 发送给另一台机器的/dev/null
就是把一台机器的无限个0,传输给另一个机器的空设备上,然后新开一个窗口使用dstat命令监测网速
在这之前需要保证机器先安装dstat工具
yum install -y dstat
 
方法1,测试网速演示(先启动接收命令方式)
步骤1,A机器先启动接收数据的命令,监听自己的9991端口,把来自这个端口的数据都输出给空设备(这样不写磁盘,测试网速更准确)
nc -l 9991 >/dev/null
 
步骤2,B机器发送数据,把无限个0发送给A机器的9991端口
nc 10.0.1.161 9991 </dev/zero
 
 
 

nc命令用法举的更多相关文章

  1. nc命令用法举例

    什么是nc nc是netcat的简写,有着网络界的瑞士军刀美誉.因为它短小精悍.功能实用,被设计为一个简单.可靠的网络工具 nc的作用 (1)实现任意TCP/UDP端口的侦听,nc可以作为server ...

  2. Linux nc命令用法收集

    ps.ubuntu自带的nc是netcat-openbsd版,不带-c/-e参数. pss.在线Markdown编辑器的bug是怎么回事...“#”号依然显示着 ##参数 想要连接到某处: nc [- ...

  3. nc命令用法

    root@10.1.1.43:~# nc -h[v1.10-38]connect to somewhere: nc [-options] hostname port[s] [ports] ... li ...

  4. nc工具用法

    http://man.linuxde.net/nc_netcat nc命令用法举例 什么是nc

  5. 12. nc/netcat 用法举例

    nc命令用法举例 什么是nc nc是netcat的简写,有着网络界的瑞士军刀美誉.因为它短小精悍.功能实用,被设计为一个简单.可靠的网络工具 nc的作用 (1)实现任意TCP/UDP端口的侦听,nc可 ...

  6. Linux nc命令详解

    NetCat,在网络工具中有“瑞士军刀”美誉,其有Windows和Linux的版本.因为它短小精悍(1.84版本也不过25k,旧版本或缩减版甚至更小).功能实用,被设计为一个简单.可靠的网络工具,可通 ...

  7. Linux Shell脚本编程--nc命令使用详解

    linux nc命令使用详解     功能说明:功能强大的网络工具 语 法:nc [-hlnruz][-g<网关...>][-G<指向器数目>][-i<延迟秒数>] ...

  8. nc命令总结

    1.远程拷贝文件从server1拷贝文件到server2上.需要先在server2上,用nc激活监听,server2上运行: 引用 [root@hatest2 tmp]# nc -l 1234 > ...

  9. linux nc命令使用详解

    功能说明:功能强大的网络工具 语 法:nc [-hlnruz][-g<网关...>][-G<指向器数目>][-i<延迟秒数>][-o<输出文件>][-p ...

随机推荐

  1. 【规律】Parentheses

    Parentheses 题目描述 Dave loves strings consisting only of '(' and ')'. Especially, he is interested in ...

  2. hdu 5672 尺取还是挺好用的

    先简单介绍下尺取法 http://blog.chinaunix.net/uid-24922718-id-4848418.html 尺取法就是在卡给定条件的时候 不断的改变下标 起点 终点 #inclu ...

  3. SpringFramework5.0 @Indexed注解 简单解析

    目录 使用场景 使用方法 原理说明 使用需注意点 案例说明 参考资料 纸上得来终觉浅 绝知此事要躬行 -陆游 最近在看SpringBoot核编程思想(核心篇),看到走向注解驱动编程这章,里面有讲解到: ...

  4. SVN 问题解决之 Working copy path does not exist in repository

    同事的SVN更新时提示某个特定文件提示 Working copy path does not exist in repository svn更新会被这个错误打断,导致无法完全更新 删掉文件再更新仍然有 ...

  5. elment 中tree组件展开所有和收缩所有

    upAll () { // 全部展开 遍历变成true let self = this; // 将没有转换成树的原数据 let treeList = this.sourceData; for (let ...

  6. Java基础加强-类加载器

    /*类加载器*/ 把.class文件从硬盘上加载出来,将类的字节码(二进制)加载到内存中 /*类加载器及其委托机制*/ Java虚拟机中可以安装多个类加载器(可以自己编写),系统默认三个主要类加载器, ...

  7. ubuntu16.04安装zabbix-server3.4

    一.安装前环境准备 部署zabbix需要安装apache,mysql和php sudo apt-get install apache2 sudo apt-get install mysql-serve ...

  8. 【Day5】1.Request对象之Header伪装策略

    import urllib.request as ur import user_agent request = ur.Request( url='https://edu.csdn.net/', hea ...

  9. 【异常】java.sql.SQLException: Could not retrieve transaction read-only status from server Query

    1 详细异常 java.sql.SQLException: Could not retrieve transaction read-only status , ], [ChargingOrderRea ...

  10. 用python文件操作实现复制图片、视频

    图片复制 打开源图片: f_src = open('1.jpg','rb') 读取图片内容并存储到content变量 content = f_src.read() 打开复制后的图片,没有则创建 f_c ...