一个非常强大的网络工具NC使用详解

ncnetcat的简写 是一个非常强大的网络工具

它可以:

  • 模拟服务端侦听指定端口
  • 模拟客户端对服务端进行连接
  • 机器之间传输文件
  • 机器之间网络测速
模拟服务端和客户端

我们在使用阿里云服务器的时候, 除了要在服务器给应用部署端口之外 还需要再阿里云后台安全组中开放端口映射 这样外网才能对服务器程序进行访问

有时候 我们需要测试安全组策略是否打通, 假设我们在安全组中配置外网4001端口映射到服务器80端口, 这个时候我们可以在服务端模拟一个80侦听端口:

1
nc -l 80

然后外网主机同样使用nc进行模拟访问:

1
nc -zv 服务器ip 4001

当然你想使用telnet模拟客户端也可以:

1
telnet 服务器ip 4001

如果连接成功 表示端口策略打通 连接拒绝则不通 倘若连接超时 有可能服务端程序有问题

利用nc同时开启多个侦听端口:

1
nc -l 80 &

只需在尾部加上&重复执行该命令即可

image-20210901122029161

文件传输

首先在服务端启动一个接收文件的监听,格式如下:

1
nc -l port >file

意思是把接收到的数据都写到file文件里(这里文件名随意取)

image-20210901122707802

然后在主机上将文件发过去:

1
nc 服务器ip 端口 < 需要传送的文件

image-20210901122816765

文件传输完毕后服务端侦听自动断开

当然 我们也可以先发送文件 然后再在服务端接收文件 效果也是一样的

目录传输

如果需要将目录下多个文件同时传输, 可以采用以下指令

服务端 端口监听到文件后解压操作:

1
nc -l port | tar xfvz -

主机端 将当前目录下所有文件打包 然后传输:

1
tar cfz - * | nc 服务器ip 端口
网速测试

服务端开启文件传输监听:

1
nc -l 端口 >/dev/null

null表示数据都输出给空设备(这样不写磁盘,测试网速更准确)

主机端开始传输数据:

1
nc 服务器ip 端口 </dev/zero

把无限个0发送给服务端 模拟真实传输

此时 主机新开一个窗口 使用dstat命令查看当前网速

image-20210901143339010

dstat可以查看当前cpu,磁盘,网络,内存页和系统的一些当前状态指标

我们通过关注recvsend两列即可查看当前接收和发送的网络速率 注意数字后面的单位B,KB,MB

本文为作者原创 转载时请注明出处 谢谢

B站入口

打赏通道

微信公众号二维码如下:

img

乱码三千 – 点滴积累 ,欢迎来到乱码三千技术博客站

0%