设为首页收藏本站

IT技术擎 - 最棒的IT web技术交流社区

 找回密码
 注册为IT技术擎人

QQ登录

只需一步,快速开始

搜索
热搜: php h5 jquery
查看: 10|回复: 0

[工具应用] 几款网络测试工具总结

[复制链接]
发表于 2018-1-13 08:05:36 | 显示全部楼层 |阅读模式


几款网络测试工具总结




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多行,源代码在此链接http://www.vdberg.org/~richard/tcpping,tcpping需要调用tcptraceroute。打印与ping近乎相同测试结果,目前版本为V1.7,tcping的介绍参考链接http://www.vdberg.org/~richard/tcpping.html,这个是Richard van den Berg在2002年编写的,作者当时需要测量TCP往返时间。所以写了这个脚本。tcpping只支持Linux。不支持Windows平台。


tcpping

安装

1:tcpping
脚本依赖tcptraceroute组件,所以必须先安装
tcptraceroute

#yum install tcptraceroute

2
:下载tcpping文件


wget

http://www.vdberg.org/~richard/tcpping

3
:将tcpping文件移动到/usr/bin下并授权。

# mv tcpping /usr/bin/
# cd /usr/bin
# chmod 755 tcpping



tcpping

测试

tcpping
帮助信息。

# tcpping
tcpping v1.7 Richard van den Berg <richard@vdberg.org >
Usage: tcpping [-d] [-c] [-C] [-w sec] [-q num] [-x count] ipaddress [port]


-d  print timestamp before every result


-c  print a columned result line

-C  print in the same format as fping's -C option

-w  wait time in seconds (defaults to 3)

-r  repeat every n seconds (defaults to 1)

-x  repeat n times (defaults to unlimited)
See also: man tcptraceroute


参数



参数描述



-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





·



OS X

(Yosemite)

·



Linux


来自Eli Fulkerson 源代码的
TCPing





·



Windows




tcping

安装

Windows
平台:

从https://www.elifulkerson.com/projects/tcping.php下载该工具后。放到C:\Windows\System32目录下即可。无需安装。

Linux
平台:

linux
平台较多,安装方式也较多,当然最简单的莫过于yum安装。测试感觉Linux下的这款工具功能过于简单。

yum install tcping




tcping

测试

Eli Fulkerson
写的Windows下的tcping功能十分强大。参数多到不想去总结,实在是太多了,如果不清楚,每次使用的时候查看帮助文档即可。

C:\Users >tcping www.aliyun.com
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.com 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
C:\Users >

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 中的虚拟机和服务的连通性(微匹恩 和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工具包可以从微软官方网址下载:
https://docs.microsoft.com/zh-cn/sysinternals/downloads/psping

。 解压PSTools.zip包后,将psping.exe拷贝到C:\Windows\System32下,那么你在cmd命令窗口的任意目录都可以使用PsPing命令了。当然你也可以单独将psping.exe 命令解压出来放在任意路径,然后从命令提示符来运行。只是这样就需要在运行命令前转换到psping.exe所在的路径。




PsPing

参数



psping
帮助信息查看,如下所示psping四个主要功能的帮助命令,四个功能分别是ICMP Ping、TCP Ping、延迟测试、带宽测试。




C:\Users >psping -? i
PsPing v2.01 - PsPing - ping, latency, bandwidth measurement utility
Copyright (C) 2012-2014 Mark Russinovich
Sysinternals - www.sysinternals.com
ICMP ping usage: psping [[-6]|[-4]] [-h [buckets| <val1 >, <val2 >,...]] [-i <inter
al >] [-l <requestsize >[k|m] [-q] [-t|-n <count >] [-w <count >] <destination >

-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").

-i
Interval in seconds. Specify 0 for fast ping.

-l
Request size. Append 'k' for kilobytes and 'm' for megabytes.

-n
Number of pings or append 's' to specify seconds e.g. '10s'.

-q
Don't output during pings.

-t
Ping until stopped with Ctrl+C and type Ctrl+Break

for statistics.

-w
Warmup with the specified number of iterations (default is 1).

-4
Force using IPv4.

-6
Force using IPv6.
For high-speed ping tests use -q and -i 0.




参数



参数说明



-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

C:\Users >psping -? l
PsPing v2.10 - PsPing - ping, latency, bandwidth measurement utility
Copyright (C) 2012-2016 Mark Russinovich
Sysinternals - www.sysinternals.com
TCP and UDP latency usage:
server: psping [-6|-4] [-f] -s address:port
client: psping -l requestsize[k|m] -n count [-r] [-u] [-w count] [-f] [-h [b
ckets|val1,val2,...]] [-6|-4] destination:port
-l
Request size. Append 'k' for kilobytes and 'm' for megabytes.

-n
Number of sends/receives. Append 's' to specify seconds e.g. '10s'.

-r
Receive from the server instead of sending.

-u
UDP (default is TCP).

-w
Warmup with the specified number of iterations (default is 5).

-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 Contro
l-C.



参数



参数说明



-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.com
TCP and UDP bandwidth usage:
server: psping [-6|-4] [-f] -s address:port
client: psping -b -l requestsize[k|m] -n count [-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 seconds e.g. '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.cn:1433
PsPing v2.10 - PsPing - ping, latency, bandwidth measurement utility
Copyright (C) 2012-2016 Mark Russinovich
Sysinternals - www.sysinternals.com
TCP connect to 139.219.130.35:1433:
8 iterations (warmup 2) ping test:
Connecting to 139.xxx.130.xx:1433 (warmup): from 192.168.103.21:57851: 36.10ms
Connecting to 139.xxx.130.xx:1433 (warmup): from 192.168.103.21:57852: 36.32ms
Connecting to 139.xxx.130.xx:1433: from 192.168.103.21:57853: 40.33ms
Connecting to 139.xxx.130.xx:1433: from 192.168.103.21:57854: 34.71ms
Connecting to 139.xxx.130.xx:1433: from 192.168.103.21:57855: 35.60ms
Connecting to 139.xxx.130.xx:1433: from 192.168.103.21:57856: 35.74ms
Connecting to 139.xxx.130.xx:1433: from 192.168.103.21:57858: 40.21ms
Connecting to 139.xxx.130.xx:1433: from 192.168.103.21:57859: 39.50ms
TCP connect statistics for 139.xxx.130.xxx: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版本。

https://code.google.com/archive/p/paping/downloads


tar -xvf paping_1.5.5_x86-64_linux.tar.gz
解压到任意目录,就可以直接执行。另外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.cn
paping v1.5.5 - Copyright (c) 2011 Mike Lovell
Connecting to 1stcncloud.dtwscachev290.ourwebcdn.com [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
Connected to 27.155.71.36: time=0.37ms protocol=TCP port=80
Connected to 27.155.71.36: time=0.35ms protocol=TCP port=80
Connected to 27.155.71.36: time=0.47ms protocol=TCP port=80
Connected to 27.155.71.36: time=0.52ms protocol=TCP port=80
Connection statistics:

Attempted = 10, Connected = 10, Failed = 0 (0.00%)
Approximate connection times:

Minimum = 0.33ms, Maximum = 0.73ms, Average = 0.45ms



Hping

介绍

Hping
是一个命令行下使用的TCP/IP数据包组装/分析工具,其命令模式很像Unix下的ping命令,但是它不仅能发送ICMP回应请求,它还可以支持TCP、UDP、ICMP和RAW-IP协议,它有一个路由跟踪模式,能够在两个相互包含的通道之间传送文件。Hping常被用于检测网络和主机,其功能非常强大,可在多种操作系统下运行,如Linux,FreeBSD,NetBSD,OpenBSD,Solaris,MacOs X,Windows。

目前最新的版本为hping3

Hping
的主要功能有:

  1、防火墙测试

  2、高级端口扫描
  3、网络检测,可以用不同的协议、服务类型(TOS)、IP分片

  4、手工探测MTU(
最大传输单元)
路径

  5、先进的路由跟踪,支持所有的协议

  6、远程操作系统探测

  7、远程的运行时间探测

  8、TCP/IP堆栈审计

Hping
的官方网址为http://www.hping.org/,开发者为是Salvatore Sanfilippo,官方介绍资料如下:


hping is a command-line oriented TCP/IP packet assembler/analyzer. The interface is inspired to the ping(8) unix command, but hping isn't only able to send ICMP echo requests. It supports TCP, UDP, ICMP and RAW-IP protocols, has a traceroute mode, the ability to send files between a covered channel, and many other features.
While hping was mainly used as a security tool in the past, it can be used in many ways by people that don't care about security to test networks and hosts. A subset of the stuff you can do using hping:
·

Firewall testing
·

Advanced port scanning
·

Network testing, using different protocols, TOS, fragmentation
·

Manual path MTU discovery
·

Advanced traceroute, under all the supported protocols
·

Remote OS fingerprinting
·

Remote uptime guessing
·

TCP/IP stacks auditing
·

hping can also be useful to students that are learning TCP/IP.
Hping works on the following unix-like systems: Linux, FreeBSD, NetBSD, OpenBSD, Solaris, MacOs X, Windows.



Hping

安装

Hping
这个项目在GitHub上,https://github.com/antirez/hping,可以直接从这里下载安装。另外如果yum源有安装程序,使用yum安装最方便、快捷。

yum install hping3


下面是官方文档的源码安装,不过源码安装需要依赖一些组件,想必yum安装麻烦很多:

Linux
-----
please, follows this steps:
$ ./configure (first try ./configure --help)
$ vi Makefile (optional)
$ make
$ su
# make install
FreeBSD, OpenBSD, NetBSD
------------------------
You will need the libpcap and the gmake utility installed on your system.
$ ./configure
$ gmake
$ su (or calife)
# gmake install



Hping

测试



查看hping的帮助信息:

[root@DB-Server ~]# hping3 --help  #
或者
hping --help

下面表格整理了部分参数信息,更多参数信息可以参考帮助文档或
http://man.linuxde.net/hping





参数


参数说明


-h  --help
显示帮助信息


-v  --version
显示版本信息


-c  --count
指定发送包的次数


-i  --interval


--fast


--faster


--flood
发送间隔时间(
单位是毫秒
)
缺省时间是
1

,
此功能在增加传输率上很重要
,

idle/spoofing
扫描时此功能也会被用到
,
你可以参考
hping-howto获得更多信息

-fast 每秒发
10
个数据包,与
-i m100
等同。表示间隔
10毫秒发送一个数据包

--faster 每秒发送
100个数据包

--flood
以最快的速度发送数据包。不显示答复


-n  --numeric
指定以数字形式输出


-q  --quiet
安静模式

只输出开始结束信息


-I  --interface
interface name 无非就是
eth0之类的网卡参数


-V  --verbose
显示更多信息


-D  --debug
进入DEBUG模式


-z  --bind
快捷键的使用



-Z  --unbind
消除快捷键


…………….
…………………..







#hping3  -S 192.168.27.57 -p 1433
HPING 192.168.27.57 (eth0 192.168.27.57): S set, 40 headers + 0 data bytes
len=44 ip=192.168.27.57 ttl=60 DF id=0 sport=1433 flags=SA seq=0 win=5840 rtt=31.4 ms
len=44 ip=192.168.27.57 ttl=60 DF id=0 sport=1433 flags=SA seq=1 win=5840 rtt=23.5 ms
len=44 ip=192.168.27.57 ttl=118 DF id=10907 sport=1433 flags=SA seq=2 win=8192 rtt=20.4 ms
len=44 ip=192.168.27.57 ttl=118 DF id=10908 sport=1433 flags=SA seq=3 win=8192 rtt=15.6 ms
len=44 ip=192.168.27.57 ttl=60 DF id=0 sport=1433 flags=SA seq=4 win=5840 rtt=15.5 ms
len=44 ip=192.168.27.57 ttl=60 DF id=0 sport=1433 flags=SA seq=5 win=5840 rtt=14.1 ms
len=44 ip=192.168.27.57 ttl=60 DF id=0 sport=1433 flags=SA seq=6 win=5840 rtt=14.4 ms
^C
--- 192.168.27.57 hping statistic ---
7 packets transmitted, 7 packets received, 0% packet loss
round-trip min/avg/max = 14.1/19.3/31.4 ms


个人感觉Hping是功能最强大的一款工具,可以测试防火墙功能、端口扫描、Idle扫描、拒绝服务攻击、木马功能,这篇hping3命令已经详细介绍了,而且有些测试不方便展示在此。在此略过细节。另外,工具再好,也需要可以掌握、驾驭工具的人。


参考资料:





https://docs.azure.cn/zh-cn/articles/azure-operations-guide/virtual-network/aog-virtual-network-tcp-psping-paping-connectivity


https://docs.microsoft.com/en-us/sysinternals/downloads/psping


https://www.cmsky.com/tcping/


http://zhjwpku.com/2016/12/17/tcpping-hping-mtr.html


https://www.slashroot.in/what-tcp-ping-and-how-it-usedyouy
http://tookdes.org/geek/archives/tcping-intro.html
http://man.linuxde.net/hping3



上一篇:算法导论--平摊分析之聚集分析
下一篇:BaseServlet,让一个servlet处理多个请求
该用户未在地球留下任何的痕迹

本版积分规则

QQ|小黑屋|帮助|IT技术擎 ( 沪ICP备15054863号  

GMT+8, 2018-1-21 06:56

Powered by Discuz! X3.2 Licensed

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表