Linux nc 命令
Posted 福州-司马懿
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux nc 命令相关的知识,希望对你有一定的参考价值。
nc命令的含义
nc 命令的完整拼写是 netcat。它只有25KB,是一个简单可靠的网络工具,可以通过TCP或UDP协议传输读写数据;同时,它还是一个网络应用的Debug分析器,可以根据需要创建各种不同类型的网络连接
安装方式
ubuntu
Ubuntu上默认安装的是netcat-openbsd,而不是经典的netcat-traditional. 因此,我们要想使用netcat-traditional则需要自己进行安装与配置。然后将nc替换为第2个traditional模式
sudo apt-get -y install netcat-traditional
sudo update-alternatives --config nc
使用 type -a nc
命令查看它在环境变量中的位置
centos
centos上的安装就简单多了,直接 sudo yum install -y nc
即可
常用参数
可以使用 man nc
或 nc -h
来查看帮助文档
- g 设置路由器跃程通信网关,最多可设置8个
- G 设置来源路由指向器,其数值为4的倍数
- h 在线帮助
- i 设置时间间隔,单位秒,以便传送信息及扫描通信端口
- k 保持连接存活
- l 将nc设置为侦听模式。指定该参数,则意味着nc被当作server,侦听并接受连接,而非向其它地址发起连接
- n 直接使用IP地址,而不通过域名服务器
- o 指定输出文件的名称,把往来传输的数据以16进制字码倾倒成该文件保存
- p 设置本地主机使用的通信端口
- r 乱数指定本地与远端主机的通信端口
- s 指定发送数据的源IP地址,适用于多网卡机
- u 指定nc使用UDP协议,默认为TCP
- v 输出交互或出错信息,新手调试时尤为有用
- w 超时秒数,后面跟数字
- z 使用0输入/输出模式,只在扫描通信端口时使用
作用
-
实现任意TCP/UDP端口的侦听,nc可以作为server以TCP或UDP方式侦听指定端口
若该端口未打开,则使用nc -lkp <port>
开启指定端口并进行监听;nc <ip> <port>
监听指定端口并发送消息。至此,一个简单的双向通信聊天室完成。
若端口为开启,则会提示连接拒绝
-
端口的扫描,nc可以作为client发起TCP或UDP连接
可以扫描指定端口,或一个端口范围nc -v -z -w2 <ip> <port>
-
机器之间传输文件
首先,在A机上监听指定端口,并将该端口得到的数据重定向到文件
nc -lp 9999 > test.txt
然后,在B机上向该端口写入文件
nc <A机IP> 9999 < test2.txt
唯一的缺点是没有进度显示,因此你并不能准确的知道是否已经完成。 -
机器之间网络测速
步骤1,A机器先启动接收数据的命令,监听自己的9999端口,把来自这个端口的数据都输出给空设备(这样不写磁盘,测试网速更准确)
nc -l 9999 >/dev/null
步骤2,B机器发送数据,把无限个0发送给A机器的9999端口
nc <A机IP> 9999 < /dev/zero
最后,在A机器上,使用dstat命令查看当前网速,dstat命令比较直观,它可以查看当前cpu,磁盘,网络,内存页和系统的一些当前状态指标。我们只需要看下面我选中的这2列即可, recv是receive的缩写,表示接收的意思,send是发送数据,另外注意数字后面的单位B,KB,MB
以上是关于Linux nc 命令的主要内容,如果未能解决你的问题,请参考以下文章
NC41 最长无重复子数组/NC133链表的奇偶重排/NC116把数字翻译成字符串/NC135 股票交易的最大收益/NC126换钱的最少货币数/NC45实现二叉树先序,中序和后序遍历(递归)(代码片段