Linux性能优化(八)——网络测试工具

一、ping

1、ping简介

PING是一个网络工具,用来测试与网络主机俄连通性。PING通过发送ICMP ECHO_REQUEST数据包到网络主机,并显示响应情况,程序会按时间和成功响应的次数估算丢失数据包率。
ping命令每秒发送一个ICMP数据包并且为每个接收到的响应打印一行输出。ping 命令计算信号往返时间和(信息)包丢失情况的统计信息,并且在完成后显示一个简要总结。ping 命令在程序超时或当接收到SIGINT信号时结束。
PING发送的每个ICMP请求包含一个网际协议(IP)和 ICMP 头,tim结构用来填充足够字节数的数据。

2、ping命令

ping [-dfnqrRv][-c完成次数][-i间隔秒数][-I网络界面][-l前置载入][-p范本样式][-s数据包大小][-t存活数值][主机名称或IP地址]
-d:使用Socket的SO_DEBUG功能。
-f:极限检测,大量快速送网络封包给网络主机。
-n:只输出数值。
-q:不显示任何传送封包的信息,只显示最后结果。
-r:忽略普通Routing Table,直接将数据包送到远端主机上。通常是查看本机的网络接口是否有问题。
-R:记录路由过程。
-v:详细显示指令的执行过程。
-c:数目,指定要发送的IMCP数据包数量。
-i:秒数,设定发送网络数据包的间隔,默认一秒。
-I:指定网卡发送IMCP数据包。
-l:前置载入,指定发送IMCP数据包前,先行发出的数据包。
-p:范本样式,设置填满数据包的范本样式。
-s:字节数,指定发送数据字节数,预设值为56,加上8字节的ICMP头,一共是64字节ICMP数据包。
-t:存活数值,设置存活数值TTL大小。

二、tcping

1、tcping简介

TCPING是基于TCP协议的一种PING命令,用来测试数据包能否通过TCP协议到到达目标主机。tcping可以监听某个端口的状态,在禁PING时也可以检测网络连通性。
源码:https://github.com/jlyo/tcping
在线安装:yum install tcping

2、tcping命令

tcping -p port hostname
tcping -p port -c 1 hostname

三、psping

1、PsPing简介

PsPing是微软PSTools工具套件中的其中一个命令,可以执行ICMP Ping测试、TCP Ping、TCP/UDP网络延迟测试、带宽测试。PsPing 只支持Windows系统。

2、ICMP Ping测试

psping -? i
查看ICMP ping相关命令参数
psping [-t|-n count[s]] [-i interval] [-w count] [-q] [-h [buckets|val1,val2,...]] [-l requestsize[k]] [-6|-4] destination
-4:指定使用IPv4连接
-n:指定正式ping包个数
-w:指定热身ping包个数,即正式测试前先进行多少次热身测试连接
-h:指定最小与最大延迟毫秒数
-i:指定间隔秒数,快速ping设置为0
-l:指定ping包大小,默认byte,k为单位代表KB,m为单位代表MB
-q:指定ping过程中不输出值
-t:指定ping不停止,直至Ctrl+C停止
psping -4 -n 10 -w 2 -h 10 www.baidu.com
Linux性能优化(八)——网络测试工具

3、TCP Ping

psping -? t
查看TCP ping相关命令参数
psping [-t|-n count[s]] [-i interval] [-w count] [-q] [-h [buckets|val1,val2,...]] [-6|-4] destination:port
-4:指定使用IPv4连接
-n:指定正式ping包个数
-w:指定热身ping包个数,即正式测试前先进行多少次热身测试连接
-h:指定最小与最大延迟毫秒数
-i:指定间隔秒数,快速ping设置为0
-l:指定ping包大小,默认byte,k为单位代表KB,m为单位代表MB
-q:指定ping过程中不输出值
-t:指定ping不停止,直至Ctrl+C停止
psping -n 10 -w 2 -h 10 www.baidu.com:80

4、延迟测试

psping -? l
查看延迟测试相关命令参数

server:psping [-6|-4] [-f] -s address:port
client:psping -l requestsize[k|m] -n count[s] [-r] [-u] [-w count] [-f] [-h [buckets|val1,val2,..]] [-6|-4] destination:port

-4:指定使用IPv4连接
-6:指定使用IPv6连接
-f:运行时开放防火墙端口
-s:指定服务器监听地址和端口
-r:从服务端接收数据
-u:指定使用UDP协议,默认为TCP协议
-n:指定发送/接收ping包个数,指定s时单位为秒
-h:代表最小与最大延迟毫秒数
-l:指定ping包大小,默认为字节。
psping -l 1500 -n 300 -h 10 www.baidu.com:80
Linux性能优化(八)——网络测试工具

5、带宽测试

psping -? b
查看传输带宽测试相关命令参数

server: psping [-6|-4] [-f] -s address:port
client: psping -b -l requestsize[k|m] -n count[s] [-r] [-u [target]] [-i outstanding] [-w count] [-f] [-h [buckets|val1,val2,...]] [-6|-4] destination:port

-b:带宽测试
-4:指定使用IPv4连接
-6:指定使用IPv6连接
-f:运行时开放防火墙端口
-s:指定服务器监听地址和端口
-r:从服务端接收数据
-u:指定使用UDP协议,默认为TCP协议
-n:指定发送/接收ping包个数,指定s时单位为秒
-h:代表最小与最大延迟毫秒数
-l:指定ping包大小,默认为字节。
psping -b -l 1500 -n 15000 www.baidu.com:80

四、paping

1、paping简介

paping是Linux下测试tcp端口连通性的开源工具,只支持TCP不支持UDP。

2、paping命令

paping [options] destination
-p, --port N:指定被测试服务的TCP端口
--nocolor:关闭彩色输出
-t, --timeout:指定超时时长,单位为毫秒,默认值为1000
-c, --count N:指定测试次数。

五、hping

1、hping简介

hping是一个TCP/IP 数据包组装/分析工具,不仅能发送ICMP回应请求,还支持TCP、UDP、ICMP和RAW-IP协议。hping的路由跟踪模式能够在两个相互包含的通道之间传送文件。hping常被用于检测网络和主机,可在多种操作系统下运行,如Linux,FreeBSD,NetBSD,OpenBSD,Solaris,MacOs X,Windows。
hping主要功能如下:
(1)防火墙测试
(2)高级端口扫描
(3)网络检测,可以用不同的协议、服务类型(TOS)、IP分片
(4)手工探测MTU(最大传输单元)路径
(5)先进的路由跟踪,支持所有协议
(6)远程操作系统探测
(7)远程的运行时间探测
(8)TCP、IP堆栈审计
源码:https://github.com/antirez/hping
在线安装:yum install hping3

2、hping命令

hping host [options]
-h,--help:显示帮助
-v,--version:显示版本
-c,--count:发送数据包的数目
-i,--interval:发送数据包间隔的时间 (uX即X微秒,如-i u1000)
      --fast:等同-i u10000 (每秒10个包)
      --faster: 等同-i u1000 (每秒100个包)
      --flood:尽最快发送数据包,不显示回复。
-n,--numeric:数字化输出,象征性输出主机地址。
-q,--quiet:静默模式
-I,--interface:网卡接口 (默认路由接口)
-V,--verbose:详细模式
-D,--debug:调试信息
-z,--bind:绑定ctrl+z到ttl(默认为目的端口)
-Z,--unbind:取消绑定ctrl+z键
--beep:对于接收到的每个匹配数据包蜂鸣声提示
-0,--rawip:RAWIP模式,HPING会发送带数据的IP头,即裸IP方式,使用RAWSOCKET方式。
-1,--icmp:ICMP模式,HPING会发送IGMP应答报。
-2,--udp:UDP模式,HPING会发送UDP报文到主机的0端口。
-8,--scan:SCAN mode. //扫描模式 指定扫描对应的端口。
-9,--listen:监听模式
-a,--spoof:源地址欺骗,伪造IP***,防火墙不会记录真实IP,回应包也接收不到。
--rand-dest:随机目的地址模式。
--rand-source:随机源地址模式。
-t,--ttl:修改ttl值
-N,--id:hping中的ID值,缺省为随机值。
-r  --rel:相对id字段(估计主机流量)。
-f  --frag:拆分数据包更多的frag。
-x  --morefrag:设置更多的分段标志。
-y  --dontfrag:设置不分段标志。
-g  --fragoff:设置断偏移。
-m  --mtu:设置虚拟最大传输单元。
-H  --ipproto:设置IP协议字段,仅在RAW IP模式下使用   //在RAW IP模式里选择IP协议。设置ip协议域,仅在RAW ip模式使用。

3、防火墙测试

测试防火墙对ICMP包的反应、是否支持traceroute、是否开放某个端口、对防火墙进行拒绝服务***(DoS attack)。例如,以LandAttack方式测试目标防火墙(Land Attack是将发送源地址设置为与目标地址相同,诱使目标机与自己不停地建立连接)。

4、端口扫描

hping3支持非常丰富的端口探测方式,nmap拥有的扫描方式hping3几乎都支持(除开connect方式,因为Hping3仅发送与接收包,不会维护连接,所以不支持connect方式探测)。Hping3能够对发送的探测进行更加精细的控制,方便用户微调探测结果。Hping3端口扫描性能及综合处理能力无法与nmap相比,一般用于仅对少量主机的少量端口进行扫描。

5、Idle扫描

Idle扫描(Idle Scanning)是一种匿名扫描远程主机的方式,Idle扫描原理是:寻找一台idle主机(没有任何的网络流量,并且IPID是逐个增长的),***端主机先向idle主机发送探测包,从回复包中获取其IPID。冒充idle主机的IP地址向远程主机的端口发送SYN包(假设为SYN包),如果远程主机的目的端口开放,那么会回复SYN/ACK,此时idle主机收到SYN/ACK后回复RST包。然后***端主机再向idle主机发送探测包,获取其IPID。对比两次的IPID值,可以判断远程主机是否回复了数据包,从而间接地推测其端口状态。

6、DOS***

使用Hping3可以很方便构建拒绝服务***。如对目标机发起大量SYN连接,伪造源地址为192.168.10.99,并使用1000微秒的间隔发送各个SYN包。

7、文件传输

Hping3支持通过TCP/UDP/ICMP等包来进行文件传输,相当于借助TCP/UDP/ICMP包建立隐秘隧道通讯,实现方式是开启监听端口,对检测到的签名(签名为用户指定的字符串)的内容进行相应的解析。在接收端开启服务。

8、***

如果Hping3能够在远程主机上启动,那么可以作为***程序启动监听端口,并在建立连接后打开shell通信。

六、traceroute

1、traceroute简介

traceroute用于测试到网络上某台主机host的跳数以及延时情况。traceroute通过发送指定TTL的UDP包给目的主机host,通过将TTL逐渐增大,就能收到一些ICMP包,用于告知本机TTL已为0,即目的主机host不可达,从而得知路径上网关的跳数和延时情况。

2、traceroute命令

traceroute [ -46dFITnreAUD ] [ -f first_ttl ] [ -g gate,... ] [ -i device ] [ -m max_ttl ] [ -N squeries ] [ -p port ] [ -t tos ] [ -l flow_label ] [ -w waittime ] [ -q nqueries ] [ -s src_addr ] [ -z sendwait ] [ --fwmark=num ] host [ packetlen ]
-4:ipv4
-6:ipv6。
-d:打开socket层的debug。
-F:禁止分片。
-I:使用ICMP ECHO。
-T:使用TCP,默认端口80。
-n:不打印domaim。
-e:显示ICMP扩展。
-A:在每个地址后面加个AS(autonomous system)标识,如果没有就显示[*]。
-U:使用UDP请求,默认端口53。
-D:使用DCCP(数据报拥塞控制协议)请求,默认端口33434。
-f first_ttl:指定首个报文的TTL值,默认是1。
-m max_ttl:指定末个报文TTL值,默认是30。
-g gate:指定网关,可以多个。
-i device:指定网卡,默认是eth0。
-w waittime:指定等待探测响应时间,默认3秒。
-q nqueries:指定每个TTL发几个包,默认3个。
-p port:指定host的端口号。

猜你喜欢

转载自blog.51cto.com/9291927/2594146