PsPing 学习笔记(14.3):服务器模式------自建探针与端到端延迟测试
- [PsPing 学习笔记(14.3):服务器模式------自建探针与端到端延迟测试](#PsPing 学习笔记(14.3):服务器模式——自建探针与端到端延迟测试)
-
- 一、为什么要用"服务器模式"?
- 二、服务器模式的基本概念与语法
-
- [1. 启动 PsPing 服务器](#1. 启动 PsPing 服务器)
- [2. 客户端如何发起测试?](#2. 客户端如何发起测试?)
- 三、一个简单拓扑:两机房之间的链路体检
- 四、基础操作:从"能连上"到"稳定性如何"
-
- [1. 远端:启动服务器](#1. 远端:启动服务器)
- [2. 本地:做一次"健康检查"](#2. 本地:做一次“健康检查”)
- [3. 做一条"链路基线"记录](#3. 做一条“链路基线”记录)
- [五、服务器模式 vs 普通 TCP Ping:到底差在哪?](#五、服务器模式 vs 普通 TCP Ping:到底差在哪?)
- [六、把 PsPing 服务器模式做成"一键巡检"](#六、把 PsPing 服务器模式做成“一键巡检”)
-
- [1. 远端:开机自动跑 PsPing Server](#1. 远端:开机自动跑 PsPing Server)
- [2. 本地:一键巡检多个机房/节点](#2. 本地:一键巡检多个机房/节点)
- 七、常见坑与排错方向
- 八、小结与下一站
PsPing 学习笔记(14.3):服务器模式------自建探针与端到端延迟测试
适用场景:多机房互联、跨地域专线、生产/灾备链路测试、API 网关前后的端到端网络体检。
前两篇我们用 PsPing 做了:
- ICMP Ping:看"机器在不在"
- TCP Ping:看"端口上服务在不在"
这一篇我们把门再往里推一层:两端都配合,用 PsPing 的服务器模式做真正的端到端链路测试。
一、为什么要用"服务器模式"?
ICMP/TCP Ping 虽然好用,但都有局限:
- 只能看到"连得上 / 连不上 + RTT"
- 看不到:在持续高并发下的表现、抖动、队列堆积
- 很多生产环境里:ICMP 被丢、TCP 被策略干预
PsPing 的服务器模式干的事情是:
在远端开一个"专用小服务",
你本机使用 PsPing 跟它"对打",
精准测出端到端延迟、抖动、丢包、带宽等指标。
它的好处:
- 协议可控(TCP/UDP)
- 端口可控(非 80/443,减少干扰)
- 行为可重复(脚本化、定时任务)
后面的 TCP/UDP 延迟与带宽测试,其实都是在 服务器模式 之上完成的。
二、服务器模式的基本概念与语法
1. 启动 PsPing 服务器
在"被测端"(通常是远端服务器、另一机房的探针)执行:
bash
psping -s 5000
含义:
-s:server(服务器模式)5000:监听端口号(可换成任意未占用端口)
从此这台机子会在 5000 端口上等待 PsPing 客户端的测试请求。
你也可以显式指明地址族:
bash
:: 仅 IPv4
psping -4 -s 5000
:: 仅 IPv6
psping -6 -s 5000
小贴士:
服务器模式启动后,会一直占用当前控制台;一般建议单独开一个终端窗口或者做成后台服务。
2. 客户端如何发起测试?
在"测试端"(你当前这台运维机、跳板机等)执行:
bash
:: 最简单形式 ------ TCP 延迟测试
psping 10.0.0.5:5000
此时 PsPing 会:
- 连接
10.0.0.5:5000 - 按默认次数发送测试数据(后续篇章会写 TCP/UDP 延迟、带宽参数)
- 输出每次测试的 RTT、统计信息等
你可以加上常见控制项:
bash
:: 指定次数和间隔
psping -n 50 -i 0.2 10.0.0.5:5000
:: 安静模式,仅输出统计
psping -q -n 100 10.0.0.5:5000
从这一刻起,你不再只是"敲门看门有没有开",而是在两端 PsPing 之间跑真实的应用层流量。
三、一个简单拓扑:两机房之间的链路体检
建议你在博客里配一张类似这样的拓扑图(文字版先放着):
text
[ 运维机 / 跳板机 ] --(公司网络/Internet/专线)--> [ 远端服务器 ]
左边运行:psping 远端IP:5000
右边运行:psping -s 5000
典型用法:
-
在 远端机房 的目标服务器上启动服务:
bashpsPing -s 5000 -
在 本地/总部机房 的运维机上循环测试:
bashpsping -n 100 -i 0.1 203.0.113.10:5000 -
观察输出的:
- 最小 / 最大 / 平均 RTT
- RTT 波动情况(配合后续直方图更清晰)
- 失败次数(超时 / 连接失败)
这类测试,比单纯对 80/443 做 TCP Ping 有几个优势:
- 不会跟现网业务包混在一起(端口独立)
- 不受应用层(Nginx/网关/应用)自身处理时间影响
→ 更聚焦在 链路 / 路由 / QoS 本身 - 方便安全策略上单独开口子,专门给测试用
四、基础操作:从"能连上"到"稳定性如何"
先给一个最小操作手册式的片段,方便你直接搬进自己的系统运维手册。
1. 远端:启动服务器
bash
:: 让 PsPing 长时间在 5000 端口等待连接
psping -s 5000
如果你希望监听一个明确的 IP(多网卡场景),可以:
bash
psping -s 192.168.10.10:5000
注意:监听 IP 要是本机存在的地址,否则会报错。
2. 本地:做一次"健康检查"
bash
psping -n 20 192.168.10.10:5000
- 全部成功 + 延迟稳定 → 基本健康
- 偶发失败 → 可能存在瞬时拥塞/丢包
- 持续失败 → 端口/防火墙/ACL/路由问题
3. 做一条"链路基线"记录
常规建议做一条"基线",以后网络有变更时,拿来对比非常爽:
bash
:: 在网络状态平稳时做一次记录
psping -q -n 200 -i 0.1 192.168.10.10:5000 > baseline_rtt.txt
下次觉得"网络变慢了",再跑同样命令输出到 today_rtt.txt,用差异对比工具一看,心里就有数了。
五、服务器模式 vs 普通 TCP Ping:到底差在哪?
可以这么理解:
- 普通 TCP Ping
- 对一个"真实业务端口"发起连接(比如 443)
- 受 Web 服务器、网关、应用处理影响
- 适合"用户体验导向"的诊断(访问一个真实 API/站点)
- 服务器模式 + PsPing 客户端
- 应用双方都是 PsPing,本质是"自建小协议"
- 纯粹看链路行为,不掺杂业务层逻辑
- 适合做"纯网络视角"的测量:延迟、抖动、带宽、稳定性
两种结合起来用最佳:
- 先用服务器模式测链路"本底情况"
- 再去按真实端口做 TCP Ping,看"业务层额外引入了多少延迟"
六、把 PsPing 服务器模式做成"一键巡检"
服务器模式最大的优点,就是可以脚本化。举一个非常接地气的例子:
1. 远端:开机自动跑 PsPing Server
示意性的 psping_server.bat:
bat
@echo off
:: 简单版:开机启动 PsPing 服务器
psping -accepteula -s 5000
将这个脚本:
- 放入启动项,或
- 做成计划任务,随系统启动运行
2. 本地:一键巡检多个机房/节点
在你的运维机上搞一个 check_links.ps1:
powershell
$targets = @(
"hq-gw.yourcorp.com:5000",
"dr-gw.yourcorp.com:5000",
"hk-gw.yourcorp.com:5000"
)
foreach ($t in $targets) {
Write-Host "=== Testing $t ==="
psping -q -n 50 -i 0.1 $t
Write-Host ""
}
配合定时任务跑一轮,把结果重定向到日志里,等于有了一个半成品的"网络健康巡检系统"。
七、常见坑与排错方向
来一份"踩坑清单",你博客里可以做成小表格:
- 端口被占用
- 现象:
psping -s 5000直接报错,无法监听 - 排查:
netstat -ano | findstr 5000看是谁在用
- 现象:
- 防火墙没开口子
- 现象:服务器正常监听,但客户端始终超时
- 排查:
- 本机能否
telnet 远端IP 5000(或Test-NetConnection) - Windows 防火墙 / 云安全组是否放行 5000/TCP
- 本机能否
- 多网卡 / 多 IP 场景
- 服务器绑定了某个特定 IP,只能从某条路由访问
- 建议服务器模式用
0.0.0.0:port(默认绑定所有地址),避免踩坑
- 安全/EDR 拦截
- 某些环境下会对非标准端口高频通信"多看一眼"
- 建议:
- 提前和安全团队打个招呼
- 选用经过审批的测试端口范围
八、小结与下一站
这一篇的核心就是一句话:
PsPing 的服务器模式 = 在远端架一个"专用探针",
帮你从网络视角做端到端延迟/稳定性测试。
关键记忆点:
psping -s 端口:远端开监听psping [选项] IP:端口:本地发起测试- 典型场景:多机房链路基线、专线巡检、故障前后对比
接下来在 14.4 / 14.5 / 14.6 我们会基于这个服务器模式,展开:
- TCP/UDP 延迟测试:弄清楚单包往返时延和抖动
- TCP/UDP 带宽测试:在不把业务打挂的前提下测个靠谱的吞吐
到那时,你就能用 PsPing 搭出一整套"低成本网络性能实验室"。