nc
是netcat
的简写 是一个非常强大的网络工具
它可以:
- 模拟服务端侦听指定端口
- 模拟客户端对服务端进行连接
- 机器之间传输文件
- 机器之间网络测速
模拟服务端和客户端
我们在使用阿里云服务器的时候, 除了要在服务器给应用部署端口之外 还需要再阿里云后台安全组中开放端口映射 这样外网才能对服务器程序进行访问
有时候 我们需要测试安全组策略是否打通, 假设我们在安全组中配置外网4001
端口映射到服务器80
端口, 这个时候我们可以在服务端模拟一个80
侦听端口:
1 | nc -l 80 |
然后外网主机同样使用nc
进行模拟访问:
1 | nc -zv 服务器ip 4001 |
当然你想使用telnet
模拟客户端也可以:
1 | telnet 服务器ip 4001 |
如果连接成功 表示端口策略打通 连接拒绝则不通 倘若连接超时 有可能服务端程序有问题
利用nc
同时开启多个侦听端口:
1 | nc -l 80 & |
只需在尾部加上&
重复执行该命令即可
文件传输
首先在服务端启动一个接收文件的监听,格式如下:
1 | nc -l port >file |
意思是把接收到的数据都写到file
文件里(这里文件名随意取)
然后在主机上将文件发过去:
1 | nc 服务器ip 端口 < 需要传送的文件 |
文件传输完毕后服务端侦听自动断开
当然 我们也可以先发送文件 然后再在服务端接收文件 效果也是一样的
目录传输
如果需要将目录下多个文件同时传输, 可以采用以下指令
服务端 端口监听到文件后解压操作:
1 | nc -l port | tar xfvz - |
主机端 将当前目录下所有文件打包 然后传输:
1 | tar cfz - * | nc 服务器ip 端口 |
网速测试
服务端开启文件传输监听:
1 | nc -l 端口 >/dev/null |
null
表示数据都输出给空设备(这样不写磁盘,测试网速更准确)
主机端开始传输数据:
1 | nc 服务器ip 端口 </dev/zero |
把无限个0发送给服务端 模拟真实传输
此时 主机新开一个窗口 使用dstat
命令查看当前网速
dstat
可以查看当前cpu,磁盘,网络,内存页和系统的一些当前状态指标
我们通过关注recv
和send
两列即可查看当前接收和发送的网络速率 注意数字后面的单位B,KB,MB
本文为作者原创 转载时请注明出处 谢谢
微信公众号二维码如下: