使用 PsPing & PaPing 进行 TCP 端口连通性测试
PsPing & PaPing 介绍
通常,我们测试数据包能否通过 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
下载和安装
PsPing 下载地址包含了它的详细使用方法,若有需要可以查看此页面上的帮助信息。下载完后,可以单独将 psping.exe 命令解压出来放在任意路径,然后从命令提示符来运行。当然,您也可以将整个压缩包解压到指定的路径来获取压缩包内完整的 PSTools 工具套件。
使用方法
打开命令行提示符窗口,进入到 psping.exe 所在的目录,就可以运行 PsPing 了。如前文所述,PsPing 支持的测试方法有很多,这里我们主要介绍针对 TCP 端口的连通性测试。最简单的测试方法就是直接在 psping.exe 命令后面加上要测试的主机名和端口,然后执行。这里以从 Azure 内部测试 www.azure.cn 的 TCP-80 端口为例,命令为psping.exe www.azure.cn:80
。
C:\Tools>psping www.azure.cn:80
PsPing v2.10 - PsPing - ping, latency, bandwidth measurement utility
Copyright (C) 2012-2016 Mark Russinovich
Sysinternals - www.sysinternals.com
TCP connect to 116.211.251.197:80:
5 iterations (warmup 1) ping test:
Connecting to 116.211.251.197:80 (warmup): from 10.91.1.4:51413: 34.69ms
Connecting to 116.211.251.197:80: from 10.91.1.4:51414: 29.11ms
Connecting to 116.211.251.197:80: from 10.91.1.4:51415: 30.56ms
Connecting to 116.211.251.197:80: from 10.91.1.4:51416: 49.02ms
Connecting to 116.211.251.197:80: from 10.91.1.4:51417: 43.84ms
TCP connect statistics for 116.211.251.197:80:
Sent = 4, Received = 4, Lost = 0 (0% loss),
Minimum = 29.11ms, Maximum = 49.02ms, Average = 38.13ms
我们可以看到,PsPing 获取到 www.azure.cn
的IP为 175.25.168.95
。随后进行了一次热身测试,热身测试的目的在于使正式的测试数据更准确。最终统计结果只计算 4 次正式测试数据。其中,统计结果第一行包含发送请求的次数,接收到回应的次数,连接丢失的次数以及丢失百分比。第二行为最小、最大以及平均的响应时延。 我们还可以在命令行中添加参数来定义 PsPing 进行测试的方式。以下为 PsPing 进行 TCP 连接测试时所支持的参数:
-t 类似于 ICMP 的长 ping 测试,直到按下 Ctrl+C 停止测试,并显示统计结果;
-n 指定测试次数。还可以指定测试的时间长度,以秒为单位,使用时在数字后加上 s,例如“10s”;
-i 每次测试的间隔,默认为 1 秒。还可以指定为 0 来进行快速 ping 测试;
-w 热身次数,默认为 1 次;
-q 测试过程中不输出结果,结束后显示统计结果;
-h 将时延结果统计为直方图打印(默认打印 20行),也可以指定结果行数,比如 -h 10,指定 10 行;另一种使用方法是统计自定义时延,比如 -h "65,70",结果将统计时延分别为 65 和 70 毫秒的次数;
-4 强制使用 IPv4;
-6 强制使用 IPv6;
更多时候,我们指定测试次数,例如 500 次、1000 次。待测试结束后查看统计结果,根据连接成功率和 TCP 响应时延来判断被检测服务的可用性和稳定性。不过,由于是测试 TCP 连接,测试时不排除被测试服务有一定的防护机制,对连续、大量的 TCP 连接采取拒绝服务或者限制服务,导致测试结果看起来很槽糕。这需要测试人对被测试服务有一定的了解。
我们还是以测试 www.azure.cn
为例,测试 500 次连接的命令为 psping.exe -n 500 www.azure.cn:80
C:\Tools>psping -n 500 www.azure.cn:80
PsPing v2.10 - PsPing - ping, latency, bandwidth measurement utility
Copyright (C) 2012-2016 Mark Russinovich
Sysinternals - www.sysinternals.com
TCP connect to 175.25.168.95:80: 501 iterations (warmup 1) ping test: Connecting to 175.25.168.95:80 (warmup): from 10.91.1.4:51531: 2.28ms Connecting to 175.25.168.95:80: from 10.91.1.4:51532: 1.86ms Connecting to 175.25.168.95:80: from 10.91.1.4:51533: 2.67ms .................... Connecting to 175.25.168.95:80: from 10.91.1.4:52029: 1.90ms Connecting to 175.25.168.95:80: from 10.91.1.4:52030: 2.69ms Connecting to 175.25.168.95:80: from 10.91.1.4:52031: 2.69ms Connecting to 175.25.168.95:80: from 10.91.1.4:52032: 2.39ms
TCP connect statistics for 175.25.168.95:80:
Sent = 500, Received = 500, Lost = 0 (0% loss),
Minimum = 1.49ms, Maximum = 4.72ms, Average = 2.35ms
PaPing
下载和安装
PaPing 下载网址,其中 32 位 Linux 对应的压缩包为 paping_1.5.5_x86_linux.tar.gz
,64 位的 Linux 对应的压缩包为 paping_1.5.5_x86-64_linux.tar.gz
。下载完成后,直接解压到任意路径,就可以直接执行了。
以 64 位 Linux 为例:
#cd ~
#wget https://storage.googleapis.com/google-code-archive-downloads/v2/code.google.com/paping/paping_1.5.5_x86-64_linux.tar.gz
#tar zxvf paping_1.5.5_x86-64_linux.tar.gz
使用方法
PaPing 的使用方法与 PsPing 非常相似,甚至更简单,功能更单一。PaPing 所支持的参数如下:
-p, --port N 指定被测试服务的 TCP 端口(必须);
--nocolor 屏蔽彩色输出;
-t, --timeout 指定超时时长,单位为毫秒,默认值为 1000;
-c, --count N 指定测试次数。
默认 PaPing 的结果会根据 Shell 的色彩配置输出不同颜色。如果您将结果通过“>”输出到文件,建议使用 --nocolor
参数。这样输出的文件中就不会包含色彩相关的字符,更方便后期处理。
同样以测试 500 次对 www.azure.cn
的 80 端口的 TCP 连接为例,跳转到 PaPing 所在的路径后,执行 ./paping -p 80 -c 500 www.azure.cn
。
[kyle@centos7 ~]$ ./paping -p 80 -c 500 www.azure.cn
paping v1.5.5 - Copyright (c) 2011 Mike Lovell
Connecting to 1stcncloud.dtwscachev290.ourwebcdn.com [112.17.28.203] on TCP 80:
Connected to 112.17.28.203: time=8.26ms protocol=TCP port=80
Connected to 112.17.28.203: time=7.48ms protocol=TCP port=80
Connected to 112.17.28.203: time=9.62ms protocol=TCP port=80
Connected to 112.17.28.203: time=8.54ms protocol=TCP port=80
....................
Connected to 112.17.28.203: time=9.59ms protocol=TCP port=80
Connected to 112.17.28.203: time=11.79ms protocol=TCP port=80
Connected to 112.17.28.203: time=8.14ms protocol=TCP port=80
Connected to 112.17.28.203: time=10.94ms protocol=TCP port=80
Connected to 112.17.28.203: time=22.35ms protocol=TCP port=80
Connection statistics:
Attempted = 500, Connected = 500, Failed = 0 (0.00%)
Approximate connection times:
Minimum = 6.46ms, Maximum = 25.00ms, Average = 12.40ms
Troubleshooting with the Windows Sysinternals Tools
https://docs.microsoft.com/zh-cn/sysinternals/learn/troubleshooting-book
Table of Contents
- Part I: Getting started
- Chapter 1 Getting started with the Sysinternals utilities
- Chapter 2 Windows core concepts
- Part II: Usage guide
- Chapter 3 Process Explorer
- Chapter 4 Autoruns
- Chapter 5 Process Monitor
- Chapter 6 ProcDump
- Chapter 7 PsTools
- Chapter 8 Process and diagnostic utilities
- Chapter 9 Security utilities
- Chapter 10 Active Directory utilities
- Chapter 11 Desktop utilities
- Chapter 12 File utilities
- Chapter 13 Disk utilities
- Chapter 14 Network and communication utilities
- Chapter 15 System information utilities
- Chapter 16 Miscellaneous utilities
- Part III: Troubleshooting — "The Case of the Unexplained..."
- Chapter 17 Error messages
- Chapter 18 Crashes
- Chapter 19 Hangs and sluggish performance
- Chapter 20 Malware
- Chapter 21 Understanding system behavior
- Chapter 22 Developer troubleshooting
使用 PsPing & PaPing 进行 TCP 端口连通性测试的更多相关文章
- 【虚拟机-虚拟网络】使用 PsPing & PaPing 进行 TCP 端口连通性测试
PsPing & PaPing 介绍 通常,我们测试数据包能否通过 IP 协议到达特定主机时,都习惯使用 ping 命令.工作时 ping 向目标主机发送一个 IMCP Echo 请求的数据包 ...
- [tools]tcp/udp连通性测试
一 端口连通性测试意义 测试网络端口可达性,确保给某些使用特定端口的app做链路连通性检测.使它们能够正常的运行起来. 二 法1 使用newclient发包,彼端tcpdump抓包观察是否能收到包 ...
- [na][tools]tcp/udp连通性测试
一 端口连通性测试意义 目的端可以使用nc来临时开一个端口,客户端用telnet来连接测试 测试网络端口可达性,确保给某些使用特定端口的app做链路连通性检测.使它们能够正常的运行起来. 二 测试方法 ...
- Azure进阶攻略丨Azure网络通不通,PsPing&PaPing告诉你答案
很多时候,为了解决一些问题,要查各种文档,很麻烦你造吗!做「伸手党」又容易被鄙视,这时候就需要用到[Azure 进阶攻略]啦!特此,我们推出关于 Azure 常用操作指南的系列文章,每篇涉及一个 Az ...
- Network基础(一):配置计算机名及工作组、TCP/IP地址配置、网络连通性测试
一.配置计算机名及工作组 目标: 本例要求为修改计算机名并加入工作组: 设置计算机名:姓名拼音 设置工作组名:TARENA-NETWORK 方案: 修改Windows 2008服务器的计算机名(可设为 ...
- Python3实现TCP端口扫描
在渗透测试的初步阶段通常我们都需要对攻击目标进行信息搜集,而端口扫描就是信息搜集中至关重要的一个步骤.通过端口扫描我们可以了解到目标主机都开放了哪些服务,甚至能根据服务猜测可能存在某些漏洞. TCP端 ...
- Python3实现TCP端口扫描器
本文来自 高海峰对 玄魂工作室 的投稿 作者:高海峰 QQ:543589796 在渗透测试的初步阶段通常我们都需要对攻击目标进行信息搜集,而端口扫描就是信息搜集中至关重要的一个步骤.通过端口扫描我们可 ...
- windows tcp端口映射或端口转发
windows tcp端口映射或端口转发 windows内部有一个叫netsh的玩意,可以把tcp端口进行映射或转发,可惜不支持udp.举个例子:一台windows有一个80端口,对外可以访问.另有一 ...
- 免费内网映射外网绑定,tcp端口转发(windows)
在tcp socket开发过程中,想要外网客户端映射到本地启动的tcp服务端,总结本地tcp端口映射外网方法: 1.打开ngrok后注册用户,网址 ngrok:https://www.ngrok.cc ...
随机推荐
- web自动化测试---测试环境的部署
当前我的测试环境配置如下: python3.6 下载地址: https://www.python.org/downloads/release/python-365/ 选择windows版本,下载完成后 ...
- OkHttp3 任务队列
OkHttp3 有两种运行方式: 1.同步阻塞调用并且直接返回: 2.通过内部线程池分发调度实现非阻塞的异步回调; 下面讲的是非阻塞异步回调,OkHttp在多并发网络下的分发调度过程,主要是Dispa ...
- 六:理解控件的运行机制(例:基于WebControl命名空间的控件)
Control类的Render方法在WebControl类中被被分成三部分1:RenderBeginTag,呈现标签的开始2:RenderContents,呈现标签的内容3:RenderEndTag, ...
- [java初探总结篇]__java初探总结
前言 终于,java初探系列的学习,要告一阶段了,java初探系列在我的计划中是从头学java中的第一个阶段,知识主要涉及java的基础知识,所以在笔记上实在花了不少的功夫.虽然是在第一阶段上面花费了 ...
- Hadoop项目实战-用户行为分析之编码实践
1.概述 本课程的视频教程地址:<用户行为分析之编码实践> 本课程以用户行为分析案例为基础,带着大家去完成对各个KPI的编码工作,以及应用调度工作,让大家通过本课程掌握Hadoop项目的编 ...
- tar命令的使用方法
tar [-cxtzjvfpPN] 文件与目录参数说明:-c :建立一个打包文件:-x :解开一个打包文件:-t :查看 tar包里面的文件:-z :打包后用gzip压缩,生成.tar.gz文件:-j ...
- 记一次升级Tomcat
总述 JDK都要出12了,而我们项目使用的jdk却仍然还停留在JDK1.6.为了追寻技术的发展的脚步,我这边准备将项目升级到JDK1.8.而作为一个web项目,我们的容器使用的是Tomcat. ...
- 【转载】To the Virgins, to Make Much of Time
Gather ye rosebuds while ye may Old Time is still a-flying And this same flower that smiles today To ...
- MVC分部视图@Html.Partial
加载分布视图的方式: //1.以视图名使用当前文件夹下的视图(如果没有找到,则搜索 Shared 文件夹) @Html.Partial("_test") //加载对应文件 /Vie ...
- c# 匿名方法几种表现形式
delegate int del(int a); static void Main(string[] args) { //匿名方法的几种表现形式 del del = delegate (int x) ...