最近一段时间对网络比较感兴趣,从网络上收集了几个ping工具,怕时间久了忘记,特收藏一下,后续工作中也许会用到。ping 命令以前是一个很好用并且常用的网络测试工具,它是基于 ICMP 协议,但是出于网络安全等因素,大部分网络环境以及云环境可能都会禁止 ICMP 协议,所以在工作中,我们必须掌握一些其他网络测试工具,下面分别介绍 tcpping、tcping、fping、hping、、psping及paping 等几款网络测试工具。
1、ping:是Windows、Unix和Linux系统下的一个命令。ping也属于一个通信协议,是TCP/IP协议的一部分。通过ICMP协议发送报文到对方主机上任意一个60000以上的端口,然后获取对方主机的回复。
具体参数如下:
ping [-t] [-a] [-n count] [-l length] [-f] [-i ttl] [-v tos] [-r count] [-s count] [-j computer-list] | [-k computer-list] [-w timeout] destination-list
-t Ping 指定的计算机直到中断。
-a 将地址解析为计算机名。
-n count 发送 count 指定的 ECHO 数据包数。默认值为 4。
-l length 发送包含由 length 指定的数据量的 ECHO 数据包。默认为 32 字节;最大值是65,527。
-f 在数据包中发送"不要分段"标志。数据包就不会被路由上的网关分段。
-i ttl 将"生存时间"字段设置为 ttl 指定的值。
-v tos 将"服务类型"字段设置为 tos 指定的值。
-r count 在"记录路由"字段中记录传出和返回数据包的路由。count 可以指定最少 1 台,最多 9 台计算机。
-s count 指定 count 指定的跃点数的时间戳。
-j computer-list 利用 computer-list 指定的计算机列表路由数据包。连续计算机可以被中间网关分隔(路由稀疏源)IP 允许的最大数量为 9。
-k computer-list 利用 computer-list 指定的计算机列表路由数据包。连续计算机不能被中间网关分隔(路由严格源)IP 允许的最大数量为 9。
-w timeout 指定超时间隔,单位为毫秒。
destination-list 指定要 ping 的远程计算机。
2、tcpping 工具工作在 TCP 层,通过发送伪造的 TCP SYN 包并侦听来自服务器或中间设备返回的 SYN/ACK 或 RST 。代码100多行,源代码在此链接~richard/tcpping,tcpping需要调用tcptraceroute。打印与ping近乎相同测试结果,目前版本为V1.7,tcping的介绍参考链接~richard/tcpping.html,这个是Richard van den Berg在2002年编写的,作者当时需要测量TCP往返时间。所以写了这个脚本,tcpping只支持Linux,不支持Windows平台,注意这里tcpping和tcping是两个工具。
具体参数信息如下:
参数 参数描述
-d 在每个结果输出前打印时间戳
-c 将结果输出在一列
-C 输出与fping的-C选项相同的打印格式
-w Wait time in seconds (defaults to 3)
-r -r n:每n秒重复一次(默认为1)
-x 重复n次(默认为无限制)
3、fping是一个主机扫描工具,相比于ping工具可以批量扫描主机,fping官方网站:。
fping常用参数介绍,主要参数有以下三个:
-a:只显示存活主机;
-u:只显示不存活主机;
-l:循环ping。
4、hping是一款更高级的主机扫描工具,它支持TCP/IP数据包构造、分析,在某些防火墙配置或运营商拦截ICMP数据包时,可用来扫描存活主机。
hping还可以伪造源IP,用来发起DDos攻击,hping官方网站:
hping常用参数介绍:
-p 端口号
-S 发送TCP的SYN包
-A 发送TCP的ACK包
-a 伪造源IP
--flood 尽可能快的发送,慎用。
5、PsPing implements Ping functionality, TCP ping, latency and bandwidth measurement. Use the following command-line options to show the usage for each test type。
psping主要实现了四个功能:分别是 ICMP Ping、TCP Ping、延迟测试、带宽测试。
(1)ping 测试
参数 参数说明
-h 输出直方图(默认步长数量为20)
-i 指定ping包的间隔秒数,快ping则设置为0
-l 指定ping包大小,默认单位是byte。使用 k为单位代表kilobytes(KB),使用m为单位代表megabytes(MB)
-n 指定测试次数。还可以指定测试的时间长度,以秒为单位,使用时在数字后加上s,例如“10s”
-q 测试过程中不输出结果,结束后显示统计结果
-t 类似于 ICMP 的长 ping 测试,直到按下 Ctrl+C 停止测试,并显示统计结果
-w 热身次数,默认为 1 次
-4 强制使用 IPv4
-6 强制使用 IPv6
(2)延迟测试
参数 参数说明
-f Open source firewall port during the run.
-u 使用UDP ping(默认是TCP)
-h 输出直方图(默认步长数量为20)
-r 从服务器接收代替发送
-i 指定ping包的间隔秒数,快ping则设置为0
-l 指定ping包大小,默认单位是byte。使用 k为单位代表kilobytes(KB),使用m为单位代表megabytes(MB)
-n 指定测试次数。还可以指定测试的时间长度,以秒为单位,使用时在数字后加上s,例如“10s”
-q 测试过程中不输出结果,结束后显示统计结果;
-t 类似于 ICMP 的长 ping 测试,直到按下 Ctrl+C 停止测试,并显示统计结果;
-w 热身次数,默认为 5 次
-4 强制使用 IPv4
-6 强制使用 IPv6
-s 服务器监听地址和端口
(3)带宽测试
带宽测试多了 -b、-i 两个参数,如下所示:
-b 带宽测试
-i 未完成的I/O数量。