【Win】PsPing:深入网络性能测试与故障排查

在维护 Azure 虚拟机的过程中,可能会遇到一些网络连通性的问题。例如,当您尝试从个人 PC 上 ping 虚拟机的公网 IP 地址时,可能会发现出现 “Request time out” 的信息,导致无法 ping 通。这种情况的发生,通常是因为在 Azure 环境中,出于安全考虑,ICMP 包被设计为无法通过防火墙和负载均衡器。这就导致了传统的 ping 命令无法直接用于测试 Azure 中虚拟机和服务的连通性。

正是在这样的背景下,我首次接触到了 PsPing —— 一款强大的网络测试工具,由微软 Sysinternals 套件提供。PsPing 不仅继承了传统 ping 命令的功能,还扩展了 TCP ping、延迟测试和带宽测量等高级特性,使其成为解决 Azure 网络测试难题的理想选择。

下载安装

下载地址:https://learn.microsoft.com/zh-cn/sysinternals/downloads/psping

  1. 下载完PSTools.zip包之后,放到任意本地磁盘(例:C:\Windows\PSTools )内,解压之后如下:
    在这里插入图片描述

  2. 将解压地址放到环境变量的PATH中
    在这里插入图片描述

  3. 使用CMD命令行工具,输入psping,可见psping四个主要功能的帮助命令,四个功能分别是ICMP Ping、TCP Ping、延迟测试、带宽测试。
    在这里插入图片描述

使用方法

  1. ICMP ping
    在这里插入图片描述
    命令 psping -n 10 -w 2 www.baidu.com 使用了 PsPing 工具的两个参数 -n-w 来对 www.baidu.com 进行网络测试。
    下面是该命令参数的详细解释:

    • -n 10:这个参数指定了 PsPing 将发送的 ECHO 请求的数量。在这个例子中,PsPing 将发送 10 个 ICMP 或 TCP 请求到目标主机。这个选项可以用来测试一定数量级的网络响应情况。

    • -w 2:这个参数后面跟的数字代表 “热身” 测试的数量,即在正式的测试之前进行的测试次数。热身测试有助于初始化网络连接,避免因连接建立时间导致的延迟测量不准确。在这个例子中,PsPing 会先发送 2 个热身请求,然后才开始计算测试结果。

    • www.baidu.com:这是 PsPing 测试的目标主机名。PsPing 将尝试解析这个域名到相应的 IP 地址,并对该地址执行指定数量的网络请求。

    总结来说,该命令将对 www.baidu.com 执行总共 12 次(10次正式测试 + 2次热身测试)的网络连通性测试,测试结果将基于这 10 次正式测试的数据生成。

  2. TCP ping
    在这里插入图片描述命令 psping -n 10 -w 2 www.baidu.com:443 使用 PsPing 工具对 www.baidu.com 网站的端口 443 执行特定的网络测试。下面是该命令各部分的详细解释:

    • -n 10:此参数指定 PsPing 将发送的 ECHO 请求或探针的数量。在这个例子中,PsPing 将向目标发送 10 个请求。这些请求可以是基于 ICMP 的(如果 ICMP 未被阻止)或者是 TCP 连接尝试(如果 ICMP 被阻止或未响应)。

    • -w 2:这个参数定义了在主要测试序列开始前的 “热身” 请求数量。热身可以帮助确保网络连接已经建立,并且任何网络设备都已经准备好处理即将到来的测试流量。在这个例子中,PsPing 将首先发送 2 个热身请求。

    • www.baidu.com:这是要进行网络测试的目标主机的域名。PsPing 将尝试解析这个域名到相应的 IP 地址。

    • :443:指定了目标端口号 443。端口 443 通常用于 HTTPS 连接,这意味着 PsPing 将尝试建立到 www.baidu.com 的安全 HTTP 服务端口的 TCP 连接。

    综上所述,该命令将向 www.baidu.com 的 HTTPS 端口 443 发送 12 次请求(包括 2 次热身请求和 10 次正式测试请求)。这些请求将用于测量到目标端口的网络延迟、检查连接稳定性以及评估目标端口的可达性。

    如果 ICMP 请求在网络中被阻止,PsPing 将使用 TCP 来执行测试。在这种情况下,PsPing 尝试与指定端口建立 TCP 连接,以此来模拟传统 ICMP ping 的功能。输出结果将提供关于每个请求的延迟时间,以及可能发生的错误或超时信息。

  3. 延迟分析

    1. 先用PSPING起一个服务
      在这里插入图片描述命令 psping -s 10.2.12.129:888 用于启动 PsPing 工具的服务器模式,其参数 -s 后面跟随的是指定的 IP 地址和端口号。下面是该命令各部分的详细解释:

      • -s:这个参数告诉 PsPing 以服务器模式运行。在服务器模式下,PsPing 将在指定的 IP 地址和端口上监听传入的连接请求,而不是主动发送请求到远程服务器。

      • 10.2.12.129:这是 PsPing 服务器模式下要监听的 IP 地址。您需要确保该地址是分配给运行 PsPing 的主机的接口上的一个有效 IP 地址。

      • :888:这是 PsPing 将在其上监听的端口号。端口 888 在这个上下文中被指定为 PsPing 将等待客户端连接的网络端口。

      综上所述,该命令将 PsPing 设置为在 IP 地址 10.2.12.129 的端口 888 上作为一个服务器,准备接受来自网络上其他 PsPing 客户端的连接请求。这可以用于进行延迟和带宽测试,而无需主动 ping 远程主机。

    2. 客户端访问
      在这里插入图片描述命令 psping -l 8k -n 10000 10.2.12.129:888 是 PsPing 工具的一个使用示例,它结合了几个不同的参数来执行网络性能测试。下面是该命令各部分的详细解释:

      • -l 8k:此参数指定了发送的每个数据包的大小。-l 后面跟随的 8k 表示每个数据包的大小为 8 kilobytes(千字节)。这是进行带宽测试或延迟测试时使用的负载大小。

      • -n 10000:此参数定义了要发送的请求或数据包的总数。在这个例子中,-n 10000 表示 PsPing 将发送 10,000 个数据包。

      • 10.2.12.129:888:这是目标服务器的 IP 地址和端口号。IP 地址 10.2.12.129 是测试将要发送数据包到的服务器的地址,而 :888 指定了服务器上用于接收这些数据包的端口。

  4. 带宽分析
    在这里插入图片描述命令 psping -b -l 8000k -n 10000 10.2.12.129:888 用于执行网络带宽测试,具体参数解释如下:

    • psping:这是启动 PsPing 工具的命令。

    • -b:此参数指示 PsPing 执行带宽测试。带宽测试会尝试衡量网络链路的最大传输速率。

    • -l 8000k:此参数指定了每个测试数据包的大小。-l 后面跟随的 8000k 表示每个数据包的大小为 8000 kilobytes(千字节),即 8 兆字节(MB)。这比一般的 ICMP ping 数据包大得多,因此可以用于测试网络在传输大量数据时的性能。

    • -n 10000:此参数定义了要发送的测试数据包的总数。在这个例子中,PsPing 将发送 10000 个大小为 8000k 的数据包。

    • 10.2.12.129:888:这是目标服务器的 IP 地址和端口号。IP 地址 10.2.12.129 是测试将要发送数据包到的服务器的地址,而 :888 指定了服务器上用于接收这些数据包的端口。

·图中返回结果显示:总共发了8个T,最大速度711.71 MB/s, 平均135.83 MB/s。

PSTools

PsTools 套件是免费的,常用于系统管理员和 IT 专业人员的工具箱中,用于执行各种系统管理和故障排除任务。这些工具可以在命令行环境下提供强大的功能,帮助用户处理日常的系统管理任务,如远程执行服务管理、监控进程活动、查询系统信息等。除了上面介绍的psping这个工具外,PSTools还包含以下功能:

psexec:在远程系统上执行程序,相当于远程运行命令提示符中的命令。
psfile:显示打开的文件及其拥有者,或者显示特定文件被哪些进程打开。
psgetsid:显示用户账户的 SID(安全标识符)。
psinfo:显示本地或远程系统的信息,如 CPU 类型、物理内存、操作系统版本等。
pskill:结束一个或多个正在运行的进程。
pslist:显示运行在远程系统上的进程列表。
psloggedon:显示当前登录到本地或远程 Windows 系统的用户。
psloglist:显示 Windows 事件日志中条目的摘要。
pspasswd:远程更改计算机的密码。
psservice:管理和查询 Windows 服务,包括启动、停止、暂停和继续服务。
psshutdown:关闭或重新启动远程系统。
pssuspend:挂起或恢复一个或多个在运行的进程。

参考

  • https://learn.microsoft.com/zh-cn/sysinternals/downloads/psping
  • https://learn.microsoft.com/zh-cn/sysinternals/downloads/pstools

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/829388.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

plsql 新建sql窗口 初始化慢的问题

问题描述: 新建sql窗口当sql语句多的情况下初始化很慢。 解决方法: 采用导入表的方式。 具体方式 工具->导入表->sql插入。 使用命令窗口 导入文件,然后点击导入按钮。

【C++ | Python 八股文(备战秋招)】—— 日积月累

C: 1.静态局部变量,全局变量,局部变量的特点,以及使用场景 (1)静态局部变量在函数内定义,可以在整个源程序使用。只被初始化一次,下一次初始化采用上一次的结果值 使用场景&#xff…

Java 设计模式(创建型)

文章目录 工厂模式单例模式抽象工厂模式建造者模式原型模式 工厂模式 工厂模式(Factory Pattern)是一种创建型设计模式,用于创建对象的接口,但是由子类决定要实例化的类是哪一个。它提供了一种将对象的实例化过程封装起来的方法&…

Typora for Mac:轻量级Markdown编辑器

Typora for Mac是一款专为Mac用户设计的轻量级Markdown编辑器,它以其简洁的界面和强大的功能,成为了Markdown写作爱好者的首选工具。 Typora for Mac v1.8.10中文激活版下载 Typora的最大特色在于其所见即所得的编辑模式,用户无需关心复杂的M…

Flutter-如何序列化和反序列化为json对象

在Flutter中,使用json_serializable可以帮助你自动地序列化和反序列化JSON数据。这通常通过json_serialization库实现,它基于Dart的源代码生成功能。以下是如何在Flutter中使用json_serializable的步骤: 1.添加依赖: 首先&#…

为什么 Facebook 不使用 Git?

在编程的世界里,Git 就像水一样常见,以至于我们认为它是创建和管理代码更改的唯一可行的工具。 前 Facebook 员工,2024 年 首先,我为什么关心? 我致力于构建 Graphite,它从根本上受到 Facebook 内部工具的…

Java | Leetcode Java题解之第52题N皇后II

题目&#xff1a; 题解&#xff1a; class Solution {public int totalNQueens(int n) {Set<Integer> columns new HashSet<Integer>();Set<Integer> diagonals1 new HashSet<Integer>();Set<Integer> diagonals2 new HashSet<Integer>…

【Diffusion实战】训练一个diffusion模型生成蝴蝶图像(Pytorch代码详解)

上一篇Diffusion实战是确确实实一步一步走的公式&#xff0c;这回采用一个更方便的库&#xff1a;diffusers&#xff0c;来实现Diffusion模型训练。 Diffusion实战篇&#xff1a;   【Diffusion实战】训练一个diffusion模型生成S曲线&#xff08;Pytorch代码详解&#xff09;…

Rust的impl

impl 是 Rust 编程语言中的一个关键字&#xff0c;用于实现类型的行为&#xff0c;包括但不限于&#xff1a; 1. 方法定义&#xff1a; impl 关键字用于为结构体&#xff08;struct&#xff09;、枚举&#xff08;enum&#xff09;、联合体&#xff08;union&#xff09;、tra…

web题目实操 5(备份文件和关于MD5($pass,true)注入的学习)

1.[ACTF2020 新生赛]BackupFile &#xff08;1&#xff09;打开页面后根据提示是备份文件 &#xff08;2&#xff09;查看源码发现啥都没有 &#xff08;3&#xff09;这里啊直接用工具扫描&#xff0c;可以扫描到一个文件名为&#xff1a;/index.php.bak的文件 &#xff08;…

nginx + rtmp 搭建rtmp服务器

这里写自定义目录标题 1、nginx.conf 的配置文件如下 #user nobody; worker_processes 1;#error_log logs/error.log; #error_log logs/error.log notice; #error_log logs/error.log info;#pid logs/nginx.pid;events {worker_connections 1024; }http {includ…

C# 异步编程

异步编程是一种思路异步相当于对线程池的封装await相当于让另一个线程来干这个事 常见概念已经有多线程了&#xff0c;为何还要异步多线程与异步是不同的概念多线程与异步的适用场景不同*多线程**异步* 什么是异步任务(Task)包含了异步任务的各种状态的一个引用类型对于异步任务…

ArcGIS Pro 和 Python — 分析全球主要城市中心的土地覆盖变化

第一步——设置工作环境 1–0. 地理数据库 在下载任何数据之前,我将创建几个地理数据库,在其中保存和存储所有数据以及我将创建的后续图层。将为我要分析的五个城市中的每一个创建一个地理数据库,并将其命名为: “Phoenix.gdb” “Singapore.gdb” “Berlin.gdb” “B…

安卓悬浮窗权限检查

目录 悬浮窗权限代码检测悬浮窗功能 悬浮窗权限 请求了这个权限后&#xff0c;app的权限管理中会有「显示悬浮窗」的权限选项。后面会引导用户去开启这个权限。 <uses-permission android:name"android.permission.SYSTEM_ALERT_WINDOW" />代码检测悬浮窗功能…

Windows系统下将MySQL数据库表内的数据全量导入Elasticsearch

目录 下载安装Logstash 配置Logstash配置文件 运行配置文件 查看导入结果 使用Logstash将sql数据导入Elasticsearch 下载安装Logstash 官网地址 选择Windows系统&#xff0c;需下载与安装的Elasticsearch相同版本的&#xff0c;下载完成后解压安装包。 配置Logstash配…

贪吃蛇大作战【纯c语言】

如果有看到不懂的地方或者对c语言某些知识忘了的话&#xff0c;可以找我之前的文章哦&#xff01;&#xff01;&#xff01; 个人主页&#xff1a;小八哥向前冲~-CSDN博客 所属专栏&#xff1a;c语言_小八哥向前冲~的博客-CSDN博客 贪吃蛇游戏演示&#xff1a; 贪吃蛇游戏动画演…

第一阶段--Day2--信息安全法律法规、网络安全相关标准

目录 1. 针对信息安全的规定 2. 网络安全相关标准 1. 针对信息安全的规定 《中华人民共和国计算机信息系统安全保护条例》1994年2月18日颁布并实施 中华人民共和国计算机信息系统安全保护条例__增刊20111国务院公报_中国政府网 《中华人民共和国国际联网安全保护管理…

笔记:编写程序,分别采用面向对象和 pyplot 快捷函数的方式绘制正弦曲线 和余弦曲线。 提示:使用 sin()或 cos()函数生成正弦值或余弦值。

文章目录 前言一、面向对象和 pyplot 快捷函数的方式是什么&#xff1f;二、编写代码面向对象的方法&#xff1a;使用 pyplot 快捷函数的方法&#xff1a; 总结 前言 本文将探讨如何使用编程语言编写程序&#xff0c;通过两种不同的方法绘制正弦曲线和余弦曲线。我们将分别采用…

图像处理ASIC设计方法 笔记18 轮廓跟踪算法的硬件加速方案

目录 1排除伪孤立点(断裂链表)方法1 限制链表的长度方法2 增加判断条件排除断裂链表方法3 排除不必要跟踪的轮廓(推荐用这个方法)P129 轮廓跟踪算法的硬件加速方案 1排除伪孤立点(断裂链表) 如果图像中某区域存在相邻像素之间仅有对角连接的部位,则对包围该区域的像素…

SOLIDWORKS Electrical 3D--精准的三维布线

相信很多工程师在实际生产的时候都会遇到线材长度不准确的问题&#xff0c;从而导致线材浪费甚至整根线材报废的问题&#xff0c;这基本都是由于人工测量长度所导致的&#xff0c;因此本次和大家简单介绍一下SOLIDWORKS Electrical 3D布线的功能&#xff0c;Electrical 3D布线能…