PsPing 学习笔记(14.8):常见错误与排障实战(超时、拒绝连接、权限问题)
- [PsPing 学习笔记(14.8):常见错误与排障实战(超时、拒绝连接、权限问题)](#PsPing 学习笔记(14.8):常见错误与排障实战(超时、拒绝连接、权限问题))
-
- [0. 本篇你能收获什么?](#0. 本篇你能收获什么?)
- 一、常见错误信息速查表
- 二、连通性类问题:从"能不能到"开始
-
- [2.1 分层检查顺序](#2.1 分层检查顺序)
- [三、权限问题:尤其是 ICMP 场景](#三、权限问题:尤其是 ICMP 场景)
-
- [3.1 建议做法](#3.1 建议做法)
- [四、端口/服务问题:TCP "连接被拒绝"怎么查?](#四、端口/服务问题:TCP “连接被拒绝”怎么查?)
-
- [4.1 多维验证](#4.1 多维验证)
- [五、PsPing 服务器模式/UDP 问题](#五、PsPing 服务器模式/UDP 问题)
- 六、数值异常:延迟抖动/带宽过低怎么理解?
-
- [6.1 延迟差异](#6.1 延迟差异)
- [6.2 带宽过低](#6.2 带宽过低)
- 七、固定排障套路:一张"网络体检"脚本思路
- 小结
PsPing 学习笔记(14.8):常见错误与排障实战(超时、拒绝连接、权限问题)
适用场景:你已经会用 PsPing 做 ICMP/TCP/UDP 延迟/带宽测试,但经常遇到各种奇怪报错、超时、结果怪异,不知道从哪儿下手排查。
这篇就是"PsPing 排障清单版",专门帮你把常见问题串成一条可复用的诊断路径。
0. 本篇你能收获什么?
- 看一眼输出大致能判断:是 DNS、路由、防火墙,还是权限问题
- 知道常见错误文案对应的真正含义
- 掌握一套固定排障顺序:连通性 → 权限 → 服务/端口 → 配置
- 几个可直接改造的排障小脚本(适合写进批处理/PowerShell)
一、常见错误信息速查表
先用一张小表把常见报错"翻译成人话":
| 现象/报错(示例) | 通常含义 | 优先排查方向 |
|---|---|---|
Unknown host / 无法解析目标系统名称 |
DNS 解析失败 | Hosts/DNS/拼写错误 |
Request timed out / 超时 |
报文发出但收不到回应 | 防火墙丢包/路由不通/对端未开 |
Access is denied. |
本地权限不足(尤其是 ICMP) | 是否管理员/提权/安全策略 |
Connection refused / 连接被拒绝 |
TCP 三次握手被主动拒绝 | 服务没监听/端口错/防火墙拒绝 |
| 延迟极高、丢包明显,偶尔成功 | 链路拥塞、QoS 限制、限速/丢包策略 | 运营商/网关/负载均衡/限流 |
| UDP 延迟测试全部超时 | UDP 报文被丢弃,不会自动回包 | 目标 PsPing 服务模式/防火墙 |
小经验:ICMP 通、TCP 不通 → 先看服务和端口;
ICMP 都不通 → 多半是网段路由/ACL/出口设备在搞事。
二、连通性类问题:从"能不能到"开始
无论你跑的是 psping -4 目标:80 还是 psping -u -s 目标:5000,第一件事永远是:到底能不能到?
2.1 分层检查顺序
-
本机能解析吗?
bashping 目标名 nslookup 目标名ping提示无法解析主机 /Ping request could not find hostnslookup无返回或指向错误 IP:
⇒ 检查/etc/hosts(Windows 是C:\Windows\System32\drivers\etc\hosts)、DNS 配置、拼写问题。
-
IP 通不通?
bashping 10.0.0.5- 丢包 100%,TTL=0 或无回应:
⇒ 子网掩码/默认网关/VLAN/静态路由 配置问题优先。
- 丢包 100%,TTL=0 或无回应:
-
路径绕到哪了?
bashtracert 10.0.0.5 # 排路径卡在哪一跳- 某一跳之后全部
* * *且稳定重现:
⇒ 多半卡在该段路由或防火墙。
- 某一跳之后全部
-
再上 PsPing 验证
bashpsping 10.0.0.5:80 psping -u 10.0.0.5:5000此时如果 PsPing 报"超时",就能确认是上层应用/端口/防火墙问题,而不是物理/三层连通性。
三、权限问题:尤其是 ICMP 场景
在 Windows 上,ICMP 原始套接字通常需要管理员权限。你可能会遇到这些情况:
- 同一命令:在管理员命令行能跑,在普通 cmd/PowerShell 报
Access is denied或直接失败。 - TCP/UDP 模式正常,唯独 ICMP 模式死活不跑。
3.1 建议做法
-
始终用管理员运行终端
- 尤其是写脚本批量跑
psping的时候,用计划任务或服务跑的话要注意执行账户。
- 尤其是写脚本批量跑
-
结合
-accepteula用于自动化第一次跑 PsPing 会弹出 EULA,批处理/自动化推荐先手动跑一次,或者:
bashpsping -accepteula -
与安全策略协同
有些企业安全策略会限制本地 raw socket/ICMP 测试工具,
⇒ 建议在变更/安全评审通过之后,把
psping路径加入可信工具列表。
四、端口/服务问题:TCP "连接被拒绝"怎么查?
典型现象:
psping 10.0.0.5:80很快返回Connection refused- 同一台机,ICMP 延迟很好
这往往说明:
- 目标机上 目标端口没有监听,或者
- 本机到目标的 TCP 可以到达,但服务拒绝你的连接(如 ACL 或应用层限流)
4.1 多维验证
-
目标机本地验证端口监听
在目标机上(或用远程登录):
bashnetstat -ano | findstr :80有
LISTENING说明服务在端口上;如果没有,先检查服务是否启动、绑定的 IP 是否正确(0.0.0.0 vs 内网 IP)。 -
在目标机本地跑 PsPing
bashpsping 127.0.0.1:80- 本机正常,远程失败 → 多半是 防火墙/ACL 在中间拦截。
-
检查防火墙
Windows 示例(在目标机上放行 80 端口):
bashnetsh advfirewall firewall add rule name="Web80" ` dir=in action=allow protocol=TCP localport=80
五、PsPing 服务器模式/UDP 问题
在 TCP/UDP 延迟/带宽测试场景下,你通常会这样用:
-
目标机开服务:
bash# TCP psping -s 10.0.0.5:5000 # UDP psping -s -u 10.0.0.5:5000 -
本机作为客户端测试
bashpsping 10.0.0.5:5000 # TCP psping -u 10.0.0.5:5000 # UDP
典型"坑":
- 服务模式没开
- UDP 模式下一定要在目标机上用同样
-u -s起服务,否则你这边发过去没人回。
现象:全部超时,连个握手都没有。
- UDP 模式下一定要在目标机上用同样
- 开错 IP/端口
- 服务器
psping -s 127.0.0.1:5000,客户端却打10.0.0.5:5000:
→ 工具只监听在环回地址,外网自然连不到。
- 服务器
- 防火墙仅放行 TCP 未放 UDP
- 很多运维习惯只开 TCP 端口,忘了 UDP,对 UDP 测试来说等于把返回通道堵死。
六、数值异常:延迟抖动/带宽过低怎么理解?
有时候没有报错,但数据明显不对劲:
- ICMP 延迟正常(< 5 ms),但 TCP 延迟莫名其妙大很多
- 单向测试带宽特别低,反向测试正常
6.1 延迟差异
- TCP 延迟 > ICMP 延迟:常见且正常,因为 TCP 有握手、缓冲、队列等额外开销
- 若 TCP 延迟偶发几百毫秒甚至秒级尖刺 :
- 注意是否有:队列拥塞、链路出方向负载过高、QoS 限流、WAF/代理深度检查
建议用 PsPing 直方图(前面 14.6 已讲) 来辅助观察分布,而不是只盯平均值。
6.2 带宽过低
- 尝试调大
-l(payload 大小)和-n(发送次数),避免样本太少 - 在不同时间段测几次:
⇒ 如果工作时间低、半夜高,多半是链路拥塞而不是单一设备故障。
七、固定排障套路:一张"网络体检"脚本思路
最后给你一个可以封装进自己脚本的排障流程模板(伪代码逻辑):
text
for host in 主机列表:
1) ping host # DNS & 基本联通
2) tracert host # 路由路径
3) psping host:端口 # TCP 端口可达性
4) (可选)psping -f -l 大包 host # MTU / 丢包趋势
5) (可选)psping -b host:端口 # 带宽压测(注意生产环境风险)
落地时可以加上:
- 对输出进行关键字匹配(如
timed out、refused、unknown host), - 按错误类型汇总报表,
- 定时跑一遍,做链路"健康巡检"。
小结
这一篇可以当成你以后用 PsPing 的"急救手册":
- 遇到报错先看关键字,把问题归类到:DNS / 路由 / 防火墙 / 权限 / 服务
- 按层排除,而不是一上来就到处关防火墙、乱改配置
- 把常用命令和排障顺序固化进脚本,你就从"手敲命令的人"升级成"把网络体检流程产品化的人"