PsPing 学习笔记(14.1):ICMP Ping 进阶——替代系统 ping 的正确姿势

PsPing 学习笔记(14.1):ICMP Ping 进阶------替代系统 ping 的正确姿势

  • [PsPing 学习笔记(14.1):ICMP Ping 进阶------替代系统 ping 的正确姿势](#PsPing 学习笔记(14.1):ICMP Ping 进阶——替代系统 ping 的正确姿势)
    • 一、本篇你能拿到什么?
    • [二、PsPing 快速认知:ICMP 模式就是"增强版 ping"](#二、PsPing 快速认知:ICMP 模式就是“增强版 ping”)
      • [1. PsPing 的基础结构](#1. PsPing 的基础结构)
      • [2. ICMP Ping:和系统 ping 是什么关系?](#2. ICMP Ping:和系统 ping 是什么关系?)
    • [三、ICMP 模式的常用选项:3 分钟掌握](#三、ICMP 模式的常用选项:3 分钟掌握)
      • [1. 基本连通性测试](#1. 基本连通性测试)
      • [2. 指定次数:`-n`](#2. 指定次数:-n)
      • [3. 指定间隔:`-i`](#3. 指定间隔:-i)
      • [4. 指定缓冲区大小:`-l`](#4. 指定缓冲区大小:-l)
      • [5. 静默统计:`-q`](#5. 静默统计:-q)
      • [6. 静默接受协议:`-accepteula`](#6. 静默接受协议:-accepteula)
    • [四、PsPing vs 系统 ping:用表格说人话](#四、PsPing vs 系统 ping:用表格说人话)
    • 五、常见命令示例:可以直接抄的那种
      • [1. 检查网关是否稳定](#1. 检查网关是否稳定)
      • [2. 对关键业务域名做 ICMP 测试](#2. 对关键业务域名做 ICMP 测试)
      • [3. 做短时间"高频抖动观察"](#3. 做短时间“高频抖动观察”)
      • [4. 比较不同报文大小的延迟差异](#4. 比较不同报文大小的延迟差异)
    • [六、常见错误与排查思路(ICMP 视角)](#六、常见错误与排查思路(ICMP 视角))
      • [1. `Request timed out` / 一直超时](#1. Request timed out / 一直超时)
      • [2. 权限 / 防病毒软件拦截](#2. 权限 / 防病毒软件拦截)
      • [3. DNS 解析问题](#3. DNS 解析问题)
    • [七、和后续章节的衔接:为什么先把 ICMP 玩明白?](#七、和后续章节的衔接:为什么先把 ICMP 玩明白?)
    • 八、小结

PsPing 学习笔记(14.1):ICMP Ping 进阶------替代系统 ping 的正确姿势

适用人群:经常被问"是不是网络问题?"的运维/开发/测试/安全同学,以及想把 Sysinternals 学到能实战的朋友。


一、本篇你能拿到什么?

看完这一篇,你至少能做到:

  • 了解 PsPing 的基础语法,特别是 ICMP 模式的使用方式
  • 知道 它和系统自带 ping 的区别与优势
  • 写出几条 可直接复制到生产环境的小命令 做延迟 & 连通性测试
  • 知道常见错误的 定位思路,比如"目标不通是 ICMP 被丢还是主机真的挂了"

先记住一句话:

把 PsPing 当成"加强版 ping",但它远不止 ping。

------ ICMP 只是入口,后面还有 TCP/UDP 延迟、带宽、直方图等待你解锁。


二、PsPing 快速认知:ICMP 模式就是"增强版 ping"

1. PsPing 的基础结构

PsPing 的命令结构可以概括成:

bash 复制代码
psping [选项] 目标host[[:端口] | :echo]
  • ICMP Ping 时:只写主机名或 IP 即可
  • TCP/UDP 模式 时:写成 host:port(后面 14.2+ 会讲)

典型写法:

bash 复制代码
psping www.example.com
psping 10.0.0.10
psping -n 100 -i 0.2 gateway.local

小技巧:第一次运行 PsPing 会弹 Sysinternals 许可证窗口,可以加 -accepteula 静默接受,方便脚本化。


2. ICMP Ping:和系统 ping 是什么关系?

协议层面

  • 两者都用 ICMP Echo 请求/应答
  • 都可以用来做 "主机是否存活" 的粗略判断

体验层面,PsPing 更像是这样一版升级:

  • 输出有 更丰富的统计信息(最小 / 最大 / 平均 / 标准差)
  • 接口统一(后面同一个工具还能测 TCP/UDP)
  • 更适合写进 自动化脚本、压测脚本 里统一调用

三、ICMP 模式的常用选项:3 分钟掌握

为了避免一次性堆一堆参数,这里只讲 ICMP 模式最常用的那几个,够你上生产环境。

1. 基本连通性测试

bash 复制代码
psping 10.0.0.10
  • 默认会发 5 次 ICMP Echo 请求
  • 输出每次 RTT(往返时间)和一组汇总统计

对应系统的:ping 10.0.0.10

区别是:PsPing 的输出更规整,后续更容易被脚本解析。


2. 指定次数:-n

bash 复制代码
psping -n 20 10.0.0.10
  • -n:发包次数
  • 用途:
    • 做短时间"小体检"(例如 20 次)
    • 或者做长一点的观察(例如 100 / 1000 次)

3. 指定间隔:-i

bash 复制代码
psping -n 50 -i 0.2 10.0.0.10
  • -i:发送间隔(秒),可以是小数
  • -i 0.2 = 每 0.2 秒发一次 = 1 秒 5 次
  • 实战里常用组合:
    • 低频巡检-n 60 -i 1(1 分钟)
    • 高频短期观察-n 100 -i 0.1(约 10 秒)

4. 指定缓冲区大小:-l

bash 复制代码
psping -n 20 -l 1024 10.0.0.10
  • -l:ICMP 报文负载大小(字节)
  • 用途:
    • 模拟业务实际数据体量,对 MTU / 大包分片 敏感时可用
    • 对比"小包延迟"和"大包延迟"是否差异巨大

5. 静默统计:-q

bash 复制代码
psping -n 100 -i 0.1 -q 10.0.0.10
  • -q:Quiet,过程不打印每一条,只输出最终统计结果
  • 配合脚本时非常好用,输出简洁,日志不会爆炸

6. 静默接受协议:-accepteula

首次在某台机器上跑时,可以用:

bash 复制代码
psping -accepteula -n 5 10.0.0.10

适合:

  • 批处理、PowerShell 脚本
  • 自动化平台(Jenkins、GitLab CI、Ansible)等,避免卡在界面交互上

四、PsPing vs 系统 ping:用表格说人话

来一张常见"对比表"(仅针对 ICMP 模式):

能力 系统 ping PsPing (ICMP 模式)
基本连通性 ✅ 有 ✅ 有
指定次数 / 间隔 ✅ 有(-n / -i 等) ✅ 有(-n / -i,语法简洁)
统计信息(min/avg/max/std) 平均值为主 ✅ 更详细,含标准差
输出格式 偏人类可读 ✅ 更规整,利于脚本解析
与 TCP/UDP 测试统一接口 ❌ 无 ✅ 一个工具搞定多种测试
直方图 / 分布分析 ❌ 无 ✅ 有(后续章节讲)
自动化/批量脚本集成 一般 ✅ 很适合(配合 -q 使用)

可以这样理解:

若只临时敲两下看主机活没活,用系统 ping 问题不大;

但如果你想做 一整套"网络体检/巡检/可视化"体系,PsPing 会更舒服。


五、常见命令示例:可以直接抄的那种

下面这几段可以直接抄进你的运维笔记或批处理里。

1. 检查网关是否稳定

bash 复制代码
:: 连续 50 次,每次间隔 0.2s
psping -n 50 -i 0.2 192.168.1.1

适合用来验证:

  • 访问任何外网前先看本地网关是否健康
  • 用户说"全网都卡"的时候,先看这一步是不是就已经抖了

2. 对关键业务域名做 ICMP 测试

bash 复制代码
psping -n 30 -i 0.5 api.yourcompany.com
  • 如果这里延迟已经明显高 / 不稳定,
    那也许是 DNS 解析到的那个出口链路有问题,要把 IP 拉出来做更进一步测试。

3. 做短时间"高频抖动观察"

bash 复制代码
:: 高频 100 次,0.1s 间隔,结果静默,只看统计
psping -n 100 -i 0.1 -q 10.0.0.10
  • 适合抓那种:平时看不出来,但高并发时偶发尖刺 的情况
  • 后续可以多次执行,把结果汇总成表格/图表

4. 比较不同报文大小的延迟差异

bash 复制代码
:: 小包 32 字节
psping -n 30 -l 32 10.0.0.10

:: 大包 1024 字节
psping -n 30 -l 1024 10.0.0.10
  • 若大包延迟显著变高甚至丢包,
    可能跟 MTU、链路质量、队列等相关,后续可以考虑抓包 & 调整网络参数。

六、常见错误与排查思路(ICMP 视角)

1. Request timed out / 一直超时

可能原因:

  • 防火墙丢弃 ICMP(尤其是公网 / 云服务器上很常见)
  • 目标机器真的挂了 or 不在线
  • 路由策略导致 ICMP 流量被限流 / 丢弃

排查思路:

  1. 同网段其他机器是否能被 ICMP 通?
  2. 是否只 ICMP 不通,但 TCP 端口还通?(预告:14.2 会用 PsPing TCP 模式来验证)
  3. 检查本机/目标机/中间设备防火墙规则。

2. 权限 / 防病毒软件拦截

有些终端防护软件会对 频繁 ICMP 行为比较敏感:

  • 可能弹出提示或直接拦截 PsPing
  • 在企业环境中用之前,最好跟安全团队沟通,把 PsPing 所在目录加入白名单

3. DNS 解析问题

表现:

  • 用 IP 测试一切正常
  • 用域名测试各种诡异延迟 / 超时

这时候你就知道该去盘问 DNS、Hosts、代理、负载均衡 那帮兄弟了。


七、和后续章节的衔接:为什么先把 ICMP 玩明白?

先把 ICMP 模式打牢,有几个好处:

  1. 命令行结构、常见选项基本通用,后面只是在此基础上加 :端口 / -s 之类的参数。
  2. 你可以先建立一个对 "正常网络延迟是什么水平" 的直觉。
  3. 后续做 TCP/UDP 延迟/带宽测试时,你能分辨出:
    • 哪些是链路基线
    • 哪些是协议/服务层面引入的额外开销

可以把心里图谱整理成这样:

text 复制代码
ICMP 模式:主机活没活?延迟大概多少?(本篇)
↓
TCP Ping:端口是否通?服务是否在监听?(14.2)
↓
服务器模式 + TCP/UDP 延迟 & 带宽:链路端到端性能几何?(14.3--14.6)
↓
直方图与统计:延迟分布和"抖动"到底长啥样?(14.7)

八、小结

这一篇,我们只做了一件事:把 PsPing 当成"ICMP 增强版 ping"吃透

关键记住这几个点:

  • 基本命令:psping [选项] host
  • 常用参数:-n(次数)、-i(间隔)、-l(数据大小)、-q(静默)、-accepteula
  • 相比系统 ping:
    • 统计信息更丰富
    • 输出更适合脚本解析
    • 是后续 TCP/UDP 测试的"统一入口"

下一篇我们就升一级,去玩 PsPing 的 TCP Ping 与端口连通性测试

从"主机活着"进化到"这个具体端口是不是也活着",这才是真正和业务绑在一起的那一层。

相关推荐
阿豪只会阿巴2 小时前
【多喝热水系列】从零开始的ROS2之旅——Day3
linux·笔记·ubuntu·ros2
BMS小旭2 小时前
CubeMx-GPIO学习
单片机·学习
郑泰科技2 小时前
mstsc 频繁断开是由svchost 策略引起的吗?
windows·笔记·负载均衡
鲨莎分不晴2 小时前
优化的基石:深度解析“凸集”的数学美感与工程价值
笔记
开开心心就好3 小时前
OCR识别工具可加AI接口,快捷键截图翻译便捷
java·网络·windows·随机森林·电脑·excel·推荐算法
雍凉明月夜3 小时前
深度学习网络笔记Ⅲ(注意力机制)
笔记·深度学习·神经网络·分类
喂自己代言4 小时前
Windows 10 22H2 纯系统自带工具安全方案
windows·安全
Ahtacca4 小时前
Linux环境下前后端分离项目(Spring Boot + Vue)手动部署全流程指南
linux·运维·服务器·vue.js·spring boot·笔记
polarislove02145 小时前
9.6 [定时器]超声波测距实验-嵌入式铁头山羊STM32笔记
笔记·stm32·嵌入式硬件