运维开发网

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

运维开发网 https://www.qedev.com 2021-01-24 13:56 出处:51CTO 作者:天山老妖S
一、ping1、ping简介PING是一个网络工具,用来测试与网络主机俄连通性。PING通过发送ICMPECHO_REQUEST数据包到网络主机,并显示响应情况,程序会按时间和成功响应的次数估算丢失数据包率。ping命令每秒发送一个ICMP数据包并且为每个接收到的响应打印一行输出。ping命令计算信号往返时间和(信息)包丢失情况的统计信息,并且在完成后显示一个简要总结。ping命令在程序超时或当接

一、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的端口号。

扫码领视频副本.gif

0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号