linux网络工具nc命令
nc是netcat的简写,有着网络界的瑞士军刀美誉。因为它短小精悍、功能实用,被设计为一个简单、可靠的网络工具。
nc命令的作用
nc命令的参数
1) -l
使用侦听模式。指定该参数,则意味着nc被当作server,侦听并接受连接,而非向其它地址发起连接
2) -p <port>
设置本地主机使用的通信端口
3) -s
指定发送数据的源IP地址,适用于多网卡机
4) -u
指定nc使用UDP协议,默认为TCP
5) -v
输出交互或出错信息,新手调试时尤为有用
6)-w
超时秒数,后面跟数字 , 即设置等待连线的时间
7)-z
表示zero,表示扫描时不发送任何数据
几个使用场景
测试网络连接通信与端口扫描(类似telnet)
服务端(10.12.7.2)作为server启动一个tcp的端口监听:
[root@111 ~]# nc -l 9999 #后面加&表示后台挂起
客户端测试:
[root@222 ~]# nc -vzw 2 10.12.7.2 9999
Connection to 10.12.7.2 9999 port [tcp/distinct] succeeded!
其中-w一定要写在最后,因为2是-w的时间参数,即 nc -vz -w 2 10.12.7.2 9999
如果是对多个端口扫描:
服务端
[root@111 ~]# nc -l 9999 &
[1] 27824
[root@111 ~]# nc -l 9998 &
[2] 27825 客户端
[root@222 ~]# nc -vzw 2 10.12.7.2 9997-9999
nc: connect to 10.12.7.2 port 9997 (tcp) failed: Connection refused
Connection to 10.12.7.2 9998 port [tcp/distinct32] succeeded!
Connection to 10.12.7.2 9999 port [tcp/distinct] succeeded!
传输文件的工具
假设在政府部门的机房,只有已经连接上的两台机子,并不知道ssh的密码,那么同时也无法使用scp拷贝文件,这时nc可以解决问题。
服务端:启动9999端口监听,意思是把此端口接受到的数据都写到abc.txt文件(这个文件名随意,不用与客户端发送的文件名一致)
[root@111 ~]# nc -l 9999 > abc.txt 客户端:向服务端的9999端口发送nick.txt文件
[root@222 ~]# nc 10.12.7.2 9999 < nick.txt
服务端接收完毕,它会自动退出监听,文件大小和客户端一样,md5值也一样
测试网速
测试网速其实利用了传输文件的原理,就是把来自一台机器的/dev/zero 发送给另一台机器的/dev/null
就是把一台机器的无限个0,传输给另一个机器的空设备上,然后新开一个窗口使用dstat命令监测网速
在这之前需要保证机器先安装dstat工具:yum install -y dstat
服务端:服务端启动监听9999端口,把来自这个端口的数据都输出给空设备(这样不写磁盘,测试网速更准确)
[root@333 ~]# nc -l 9999 > /dev/null 客户端:发送数据,把无限个0发送给服务端的9999端口
[root@444 ~]# nc 172.31.52.71 9999 < /dev/zero
使用dstat命令查看两台机子的网速:
服务端:
----total-cpu-usage---- -dsk/total- -net/total- ---paging-- ---system--
usr sys idl wai hiq siq| read writ| recv send| in out | int csw
0 0 99 0 0 0| 0 0 | 117M 520k| 0 0 |7017 14k
0 0 99 0 0 0| 0 0 | 117M 514k| 0 0 |6950 14k
0 0 99 0 0 0| 0 0 | 117M 518k| 0 0 |7042 14k
0 0 99 0 0 0| 0 124k| 117M 515k| 0 0 |6985 14k
0 1 98 1 0 0| 0 76k| 117M 510k| 0 0 |7007 14k
0 0 100 0 0 0| 0 0 | 117M 517k| 0 0 |7048 14k
0 1 99 0 0 0| 0 0 | 117M 511k| 0 0 |7036 14k
0 0 99 0 0 0| 0 0 | 117M 514k| 0 0 |7083 14k
0 0 100 0 0 0| 0 60k| 117M 513k| 0 0 |7098 14k
0 0 98 1 0 0| 0 60k| 117M 506k| 0 0 |6948 14k
0 0 99 0 0 0| 0 0 | 117M 510k| 0 0 |7065 14k
0 1 99 0 0 0| 0 0 | 117M 518k| 0 0 |7138 14k
客户端:
----total-cpu-usage---- -dsk/total- -net/total- ---paging-- ---system--
usr sys idl wai hiq siq| read writ| recv send| in out | int csw
0 2 98 0 0 0|4096B 48k| 532k 117M| 0 0 | 14k 4615
1 2 97 0 0 1| 0 180k| 865k 117M| 0 0 | 14k 4978
0 2 98 0 0 0| 0 48k| 527k 117M| 0 0 | 14k 4601
1 2 95 2 0 0| 0 124k| 526k 117M| 0 0 | 13k 4600
0 2 98 0 0 0| 0 0 | 534k 117M| 0 0 | 14k 4600
0 2 98 0 0 1| 0 24k| 518k 117M| 0 0 | 14k 4608
1 2 98 0 0 0| 0 52k| 508k 117M| 0 0 | 14k 4549
2 2 95 0 0 0| 0 0 | 525k 117M| 0 0 | 14k 4612
0 2 96 2 0 0| 0 168k| 521k 117M| 0 0 | 13k 4750
1 2 98 0 0 0| 0 0 | 521k 117M| 0 0 | 13k 4570
可以看到服务端接收数据维持在117M,客户端发送数据也在117M。
参考:https://www.cnblogs.com/nmap/p/6148306.html
linux网络工具nc命令的更多相关文章
- 一文让你熟练掌握Linux的ncat(nc)命令
一文让你熟练掌握Linux的ncat(nc)命令 ncat 或者说 nc 是一款功能类似 cat 的工具,但是是用于网络的.它是一款拥有多种功能的 CLI 工具,可以用来在网络上读.写以及重定向数据. ...
- 【转】Linux 网络工具详解之 ip tuntap 和 tunctl 创建 tap/tun 设备
原文:https://www.cnblogs.com/bakari/p/10449664.html -------------------------------------------------- ...
- Linux 网络工具netcat(nc)的应用
NETCAT netcat是Linux常用的网络工具之一,它能通过TCP和UDP在网络中读写数据,通过与其他工具结合和重定向,可以在脚本中以多种方式使用它. netcat所做的就是在两台电脑之间建立链 ...
- 功能超级强大的网络工具nc
摘自:http://www.linuxso.com/command/nc.html 功能说明:功能强大的网络工具语 法:nc [-hlnruz][-g<网关...>][-G<指向器数 ...
- 需要了解的 Linux 网络和监控命令
列出来的10个基础的每个linux用户都应该知道的网络和监控命令.网络和监控命令类似于这些: hostname, ping, ifconfig, iwconfig, netstat, nslookup ...
- 10个基础的linux网络和监控命令
配置zookeeper集群时,需要查看本机ip,输入命令 hostname -i 就会只显示主机ip, 下边搜了一篇常用的 命令,闲的时候多敲敲命令,以便用的时候再找! 我下面列出来的10个 ...
- 注意啦!10 个你需要了解的 Linux 网络和监控命令
下面列出来的10个基础的每个Linux用户都应该知道的网络和监控命令.网络和监控命令类似于这些:hostname, ping, ifconfig, iwconfig, netstat, nslooku ...
- linux网络配置相关命令、虚拟网络接口eth0:0
网络接口(interface)是网络硬件设备在操作系统中的表示方法,比如网卡在Linux操作系统中用ethX,是由0开始的正整数,比如eth0.eth1...... ethX.而普通猫和ADSL的接口 ...
- 10个实用的 Linux 网络和监控命令[转]
本文列出了10个基础的每个Linux用户都应该知道的网络和监控命令.网络和监控命令类似于这些: hostname, ping, ifconfig, iwconfig, netstat, nslooku ...
随机推荐
- 如何更简单的使用Polly
Polly 弹性瞬时错误处理库 Polly是一个C#实现的弹性瞬时错误处理库 它可以帮助我们做一些容错模式处理,比如: 超时与重试(Timeout and Retry) 熔断器(Circuit Bre ...
- C#实现SHA256WithRSA加密用于Java的秘钥私钥
首先要把Java秘钥进行转换,然后再进行加密 转制秘钥的方法 public static string RSAPrivateKeyJava2DotNet(string privateKey) { Rs ...
- Docker(一):Docker安装
简介 Docker是dotcloud公司开源的一款产品,主要基于PAAS平台为开发者提供服务.是解决运行环境和配置问题软件容器,方便做持续集成并有助于整体发布的容器虚拟化技术. Docker组件 ...
- IIS应用程序池配置详解及优化
参数说明 1.常规 属性名称 属性详解 NET CLR 版本 配置应用程序池,以加载特定版本的 .NET CLR.选定的 CLR版本应与应用程序所使用的相应版本的 .NET Framework 对应. ...
- css 15-Sass入门
15-Sass入门 #Sass简介 大家都知道,js 中可以自定义发量,css 仅仅是一个标记语言,不是编程语言,因此不可以自定义发量.不可以引用等等. 面对这些问题,我们现在来引入 Sass,简单的 ...
- 图像处理论文详解 | Deformable Convolutional Networks | CVPR | 2017
文章转自同一作者的微信公众号:[机器学习炼丹术] 论文名称:"Deformable Convolutional Networks" 论文链接:https://arxiv.org/a ...
- 个人博客搭建Python实现-尝试-遇到的问题(10.1.1)
@ 目录 前提 1.Git相关 2.环境相关 3.nginx相关 4.linux相关 关于作者 前提 自己搭建了一个简单的flask微信公众号 在github上找到一个django搭建的博客网站 有一 ...
- Django中ORM的使用
Django中ORM的使用 ORM orm(object-relation-mapping)对象关系映射,即用对象来表示关系数据库中的表: 类 --> 表, 对象-->一行数据 对象的属性 ...
- (已解决)'ng' 不是内部或外部命令,也不是可运行的程序或批处理文件
前言: 之前在安装Angular环境的时候有个问题,就是通过命令成功安装了angular cli脚手架工具,但是在终端(win+r cmd)中输入ng version一直提示的是'ng' 不是内部或外 ...
- C#中的深度学习(三):理解神经网络结构
在这篇文章中,我们将回顾监督机器学习的基础知识,以及训练和验证阶段包括哪些内容. 在这里,我们将为不了解AI的读者介绍机器学习(ML)的基础知识,并且我们将描述在监督机器学习模型中的训练和验证步骤. ...