⼏款pingtcping⼯具总结
本⽂转载⾄:
ping 命令以前是⼀个很好⽤并且常⽤的⽹络测试⼯具,它是基于 ICMP 协议,但是出于⽹络安全等因素,⼤部分⽹络环境以及云环境可能都会禁⽌ ICMP 协议,所以在⼯作中,我们必须掌握⼀些其他⽐较流⾏的⽹络测试⼯具,下⾯分别介绍 tcpping、tcping、psping、hping、paping 等⼏款⽹络测试⼯具。
关于 ICMP 概念:
ICMP 是(Internet Control Message Protocol)Internet 控制报⽂协议。它是 TCP/IP 协议族的⼀个⼦协议,⽤于在 IP 主机、路由器之间传递控制消息。控制消息是指⽹络通不通、主机是否可达、路由是否可⽤等⽹络本⾝的消息。这些控制消息虽然并不传输⽤户数据,但是对于⽤户数据的传递起着重要的作⽤。
tcpping 介绍
tcpping ⼯具⼯作在 TCP 层,通过发送伪造的 TCP SYN 包并侦听来⾃服务器或中间设备返回的 SYN/ACK 或 RST 。代码100多⾏,源代码在此链接,tcpping需要调⽤tcptraceroute。打印与ping近乎相同测试结果,⽬前版本为V1.7,tcping的介绍参考链接,这个是Richard van den Berg在2002年编写的,作者当时需要测量TCP往返时间。所以写了这个脚本。tcpping只⽀持Linux。不⽀持Windows平台。
tcpping 安装
1: tcpping 脚本依赖 tcptraceroute 组件,所以必须先安装 tcptraceroute
#yum install tcptraceroute
2:下载tcpping⽂件
wget /~richard/tcpping
3:将 tcpping ⽂件移动到 /usr/bin 下并授权。
# mv tcpping /usr/bin/
# cd /usr/bin
# chmod 755 tcpping
tcpping****测试
tcpping帮助信息。
参数参数描述
-d在每个结果输出前打印时间戳
-c将结果输出在⼀列
-C输出与fping的-C选项相同的打印格式
-w Wait time in seconds (defaults to 3)
-r-r n:每n秒重复⼀次(默认为1)
-x重复n次(默认为⽆限制)
tcping 介绍
tcping 也是通过 tcp 端⼝⼯作,tcping 还能监听某个端⼝的状态,注意 tcping 与 tcpping 是不同的两款⼯具,另外 tcping 也有很多版本。如下所⽰:
来⾃ kirchner 源代码的 TCPing
来⾃ Eli Fulkerson 源代码的 TCPing
tcping****安装
Windows 平台:
从下载该⼯具后。放到 C:\Windows\System32 ⽬录下即可。⽆需安装。
Linux 平台:
linux 平台较多,安装⽅式也较多,当然最简单的莫过于 yum 安装。测试感觉 Linux 下的这款⼯具功能过于简单。
yum install tcping
tcping 测试
Eli Fulkerson 写的 Windows 下的 tcping 功能⼗分强⼤。参数多到不想去总结,实在是太多了,如果不清楚,每次使⽤的时候查看帮助⽂档即可。
C:\Users>tcping www.aliyun
Probing 140.205.172.20:80/tcp - Port is open - time=2.444ms
Probing 140.205.172.20:80/tcp - Port is open - time=2.574ms
Probing 140.205.172.20:80/tcp - Port is open - time=2.965ms
Probing 140.205.172.20:80/tcp - Port is open - time=4.074ms
Ping statistics for 140.205.172.20:80
4 probes sent.
4 successful, 0 failed.
Approximate trip times in milli-seconds:
Minimum = 2.444ms, Maximum = 4.074ms, Average = 3.014ms
C:\Users>tcping www.aliyun 80
Probing 140.205.172.20:80/tcp - Port is open - time=2.731ms
Probing 140.205.172.20:80/tcp - Port is open - time=2.126ms
Probing 140.205.172.20:80/tcp - Port is open - time=2.916ms
Probing 140.205.172.20:80/tcp - Port is open - time=2.609ms
Ping statistics for 140.205.172.20:80
4 probes sent.
4 successful, 0 failed.
Approximate trip times in milli-seconds:
Minimum = 2.126ms, Maximum = 2.916ms, Average = 2.595ms
Linux:
Linux 下的 tcping 命令功能⾮常简单,如下所⽰,感觉没有 tcpping 或 Windows 下的 tcping 功能强⼤。
Usage: tcping [-q] [-t timeout_sec] [-u timeout_usec] <host> <port>
[root@DB-Server ~]# tcping 192.168.27.57 1433
192.168.27.57 port 1433 open.
PsPing介绍
下⾯是官⽅⽂档以及 Azure 官⽅⽂档关于 PsPing 的介绍资料,这些介绍已经全⾯的阐述了 PsPing 这款⼯具:
PsPing implements Ping functionality, TCP ping, latency and bandwidth measurement. Use the following command-line options to show the usage for each test type:
通常,我们测试数据包能否通过 IP 协议到达特定主机时,都习惯使⽤ ping 命令。⼯作时⽤ ping 向⽬标主机发送⼀个 IMCP Echo 请求的数据包,并等待接收 Echo 响应数据包,通过响应时间和成功响应的次数来估算丢包率和⽹络时延。但是在 Azure 中 ICMP 包⽆法通过防⽕墙和负载均衡器,所以不能直接使⽤ ping 来测试 Azure 中的虚拟机和服务的连通性(VPN 和 Express Route 通道中的流量不经过负载均衡器,所以只要链路上的防⽕墙允许 ICMP 包传递,ping 依然可⽤)。
为了在 Azure 中进⾏连通性测试,例如测试 RDP、SSH 端⼝可⽤性,或者 HTTP、HTTPS 服务稳定性,甚⾄测试从 Azure 向外部服务的连接,我们都推荐使⽤ PsPing 或PaPing。PsPing 是微软 PSTools ⼯具套件中的其中⼀个命令。除了ICMP ping 测试,它主要⽤来测试TCP 端⼝的连通性,还可
以测试 TCP/UDP ⽹络时延和带宽。不过, PsPing只能在 Windows 中运⾏。如果您需要在 Linux 中发起 TCP 端⼝连通性和⽹路时延的测试,可以使⽤ PaPing 。PaPing 是⼀个跨平台的开源⼯具。它的功能相对 PsPing ⽽⾔更简单,只⽀持 TCP 端⼝的相关测试,不⽀持 UDP 端⼝的测试。
PsPing安装
PSTool ⼯具包可以从微软官⽅⽹址下载:。解压 PSTools.zip 包后,将 拷贝到 C:\Windows\System32 下,那么你在 cmd 命令窗⼝的任意⽬录都可以使⽤ PsPing 命令了。当然你也可以单独将 命令解压出来放在任意路径,然后从命令提⽰符来运⾏。只
是这样就需要在运⾏命令前转换到 所在的路径。
PsPing 参数
psping 帮助信息查看,如下所⽰ psping 四个主要功能的帮助命令,四个功能分别是 ICMP Ping、TCP Ping、延迟测试、带宽测试。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
延迟测试多了参数-r,-u,-f
参数参数说明
-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服务器监听地址和端⼝
C:\Users>psping -? b
PsPing v2.10 - PsPing - ping, latency, bandwidth measurement utility
Copyright (C) 2012-2016 Mark Russinovich
Sysinternals - [www.sysinternals](wwwblogs/kerrycode/p/www.sysinternals)
TCP and UDP bandwidth usage:
server: psping [-6|-4] [-f] -s address:port
client: psping -b -l requestsize[k|m] -n count[s] [-r] [-u [target]] [-i outstan
ding] [-w count] [-f] [-h [buckets|val1,val2,...]] [-6|-4] destination:port
-b Bandwidth test.
-l Request size. Append 'k' for kilobytes and 'm' for megabytes.
-
n Number of sends/receives. Append 's' to specify '10s'.
-r Receive from the server instead of sending.
-u UDP (default is TCP). Specify target bandwidth in MB/s.
-i Number of outstanding I/Os (default is min of 16 and 2x CPU cores).
-w Warmup for the specified iterations (default is 2x CPU cores).
-f Open source firewall port during the run.
-h Print histogram (default bucket count is 20).
If you specify a single argument, it's interpreted as a bucket
count and the histogram will contain that number of
buckets covering the entire time range of values.
Specify a comma-separated list of times to create a custom
histogram (e.g. "0.01,0.05,1,5,10").
-4 Force using IPv4.
-6 Force using IPv6.
-s Server listening address and port.
The server can serve both latency and bandwidth tests and remains active until you terminate it with Control-C.
带宽测试多了 -b、-i 两个参数。如下所⽰:
-b 带宽测试
-i 未完成的I/O数量
PsPing****测试案例
例⼦1,例如我要检查服务器的1433端⼝是否开放
例⼦2:⽹络时延测试
C:\Users>psping -n 6 -w 2 -h xxxxxx.database.chinacloudapi:1433
PsPing v2.10 - PsPing - ping, latency, bandwidth measurement utility
Copyright (C) 2012-2016 Mark Russinovich
Sysinternals - www.sysinternals
TCP connect to 139.219.130.35:1433:
8 iterations (warmup 2) ping test:
Connecting :1433 (warmup): from 192.168.103.21:57851: 36.10ms Connecting :1433 (warmup): from 192.168.103.21:57852: 36.32ms Connecting :1433: from 192.168.103.21:57853: 40.33ms Connecting :1433: from 192.168.103.21:57854: 34.71ms Connecting :1433: from 192.168.103.21:57855: 35.60ms Connecting :1433: from 192.168.103.21:57856: 35.74ms Connecting :1433: from 192.168.103.21:57858: 40.21ms Connecting :1433: from 192.168.103.21:57859: 39.50ms
TCP connect statistics :1433:
Sent = 6, Received = 6, Lost = 0 (0% loss),
Minimum = 34.71ms, Maximum = 40.33ms, Average = 37.68ms
Latency Count
34.71 1
35.01 0
35.30 0
35.60 2
35.89 0
36.19 0
36.49 0
36.78 0
37.08 0负载均衡器的作用
37.37 0
37.67 0
37.96 0
38.26 0
38.56 0
38.85 0
39.15 0
39.44 1
39.74 0
40.03 1
40.33 1
例⼦3:⽹络带宽测试
paping 安装测试
paping的下载地址如下,它分Windows和Linux版本。
tar -xvf paping_1.5.5_x86-64_
解压到任意⽬录,就可以直接执⾏。另外 paping 命令对⽐ psping 命令,功能更简单、单⼀。它只有简单的4个参数。-p, --port N 指定被测试服务的 TCP 端⼝(必须);
--nocolor 屏蔽彩⾊输出;
-t, --timeout 指定超时时长,单位为毫秒,默认值为 1000;
-c, --count N 指定测试次数。
[root@DB-Server tmp]# ./paping -?
paping v1.5.5 - Copyright (c) 2011 Mike Lovell
Syntax: paping [options] destination
Options:
-?, --help display usage
-p, --port N set TCP port N (required)
--nocolor Disable color output
-t, --timeout timeout in milliseconds (default 1000)
-c, --count N set number of checks to N
[root@DB-Server tmp]# ./paping --nocolor -p 80 -c 10 www.azure
paping v1.5.5 - Copyright (c) 2011 Mike Lovell
Connecting to 1stcncloud.dtwscachev290.ourwebcdn [27.155.71.36] on TCP 80:
Connected to 27.155.71.36: time=0.39ms protocol=TCP port=80
Connected to 27.155.71.36: time=0.33ms protocol=TCP port=80
Connected to 27.155.71.36: time=0.73ms protocol=TCP port=80
Connected to 27.155.71.36: time=0.48ms protocol=TCP port=80
Connected to 27.155.71.36: time=0.49ms protocol=TCP port=80
Connected to 27.155.71.36: time=0.39ms protocol=TCP port=80
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论