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 ncnc -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实现二叉树先序,中序和后序遍历(递归)(代码片段

linux系统nc命令使用

Linux 常用命令 nc

Linux下nc命令的使用

【Linux】 Centos7 NC探测端口命令

Linux之nc命令