PsPing 学习笔记(14.8):常见错误与排障实战(超时、拒绝连接、权限问题)

PsPing 学习笔记(14.8):常见错误与排障实战(超时、拒绝连接、权限问题)

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 分层检查顺序

  1. 本机能解析吗?

    bash 复制代码
    ping 目标名
    nslookup 目标名
    • ping 提示无法解析主机 / Ping request could not find host
    • nslookup 无返回或指向错误 IP:
      ⇒ 检查 /etc/hosts(Windows 是 C:\Windows\System32\drivers\etc\hosts)、DNS 配置、拼写问题。
  2. IP 通不通?

    bash 复制代码
    ping 10.0.0.5
    • 丢包 100%,TTL=0 或无回应:
      ⇒ 子网掩码/默认网关/VLAN/静态路由 配置问题优先。
  3. 路径绕到哪了?

    bash 复制代码
    tracert 10.0.0.5   # 排路径卡在哪一跳
    • 某一跳之后全部 * * * 且稳定重现:
      ⇒ 多半卡在该段路由或防火墙。
  4. 再上 PsPing 验证

    bash 复制代码
    psping 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 建议做法

  1. 始终用管理员运行终端

    • 尤其是写脚本批量跑 psping 的时候,用计划任务或服务跑的话要注意执行账户。
  2. 结合 -accepteula 用于自动化

    第一次跑 PsPing 会弹出 EULA,批处理/自动化推荐先手动跑一次,或者:

    bash 复制代码
    psping -accepteula
  3. 与安全策略协同

    有些企业安全策略会限制本地 raw socket/ICMP 测试工具,

    ⇒ 建议在变更/安全评审通过之后,把 psping 路径加入可信工具列表。


四、端口/服务问题:TCP "连接被拒绝"怎么查?

典型现象:

  • psping 10.0.0.5:80 很快返回 Connection refused
  • 同一台机,ICMP 延迟很好

这往往说明:

  • 目标机上 目标端口没有监听,或者
  • 本机到目标的 TCP 可以到达,但服务拒绝你的连接(如 ACL 或应用层限流)

4.1 多维验证

  1. 目标机本地验证端口监听

    在目标机上(或用远程登录):

    bash 复制代码
    netstat -ano | findstr :80

    LISTENING 说明服务在端口上;如果没有,先检查服务是否启动、绑定的 IP 是否正确(0.0.0.0 vs 内网 IP)。

  2. 在目标机本地跑 PsPing

    bash 复制代码
    psping 127.0.0.1:80
    • 本机正常,远程失败 → 多半是 防火墙/ACL 在中间拦截。
  3. 检查防火墙

    Windows 示例(在目标机上放行 80 端口):

    bash 复制代码
    netsh 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
  • 本机作为客户端测试

    bash 复制代码
    psping 10.0.0.5:5000        # TCP
    psping -u 10.0.0.5:5000     # UDP

典型"坑":

  1. 服务模式没开
    • UDP 模式下一定要在目标机上用同样 -u -s 起服务,否则你这边发过去没人回。
      现象:全部超时,连个握手都没有。
  2. 开错 IP/端口
    • 服务器 psping -s 127.0.0.1:5000,客户端却打 10.0.0.5:5000
      → 工具只监听在环回地址,外网自然连不到。
  3. 防火墙仅放行 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 outrefusedunknown host),
  • 按错误类型汇总报表,
  • 定时跑一遍,做链路"健康巡检"。

小结

这一篇可以当成你以后用 PsPing 的"急救手册":

  • 遇到报错先看关键字,把问题归类到:DNS / 路由 / 防火墙 / 权限 / 服务
  • 按层排除,而不是一上来就到处关防火墙、乱改配置
  • 把常用命令和排障顺序固化进脚本,你就从"手敲命令的人"升级成"把网络体检流程产品化的人"
相关推荐
微小冷2 分钟前
C#异步编程详解
开发语言·c#·async·await·异步编程
Clarence Liu4 分钟前
redis学习(3) - 布隆过滤器
redis·学习·哈希算法
.小墨迹5 分钟前
cmake的add_definitions和target_compile_definitions使用
c++·学习·算法·ubuntu·机器学习
qq_316165296 分钟前
C#委托和事件的区别
开发语言·c#
野生技术架构师7 分钟前
1000道Java面试题附答案详解(整理版)
java·开发语言
先生沉默先9 分钟前
TypeScript 学习项目创建_1
javascript·学习·typescript
测试老哥12 分钟前
2026最新的软件测试面试八股文(答案+文档)
自动化测试·软件测试·python·测试工具·面试·职场和发展·测试用例
CSDN_RTKLIB17 分钟前
【One Definition Rule】类重复定义解决思路
开发语言·c++
智航GIS17 分钟前
9.5 XML 处理指南
xml·前端·python
Data_agent21 分钟前
微店店铺所有商品API接口指南
java·大数据·服务器·windows·python