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 / 路由 / 防火墙 / 权限 / 服务
  • 按层排除,而不是一上来就到处关防火墙、乱改配置
  • 把常用命令和排障顺序固化进脚本,你就从"手敲命令的人"升级成"把网络体检流程产品化的人"
相关推荐
试剂小课堂 Pro几秒前
Ald-PEG-Ald:丙醛与聚乙二醇两端连接的对称分子
java·c语言·c++·python·ffmpeg
独自破碎E1 分钟前
【双指针】接雨水
java·开发语言
玄同7653 分钟前
SQLAlchemy 初始化全流程详解:从引擎到会话的每一步
数据库·人工智能·python·sql·mysql·语言模型·知识图谱
小北方城市网4 分钟前
MyBatis-Plus 生产级深度优化:从性能到安全的全维度方案
开发语言·redis·分布式·python·缓存·性能优化·mybatis
diediedei4 分钟前
使用XGBoost赢得Kaggle比赛
jvm·数据库·python
0和1的舞者4 分钟前
技术优化手册:从工具类到 MyBatis 配置与业务逻辑
java·后端·学习·开发·知识
小芳矶4 分钟前
使用 Langgraph 构建本地 RAG 知识库:从文档加载到检索
python·langchain
naruto_lnq5 分钟前
Python入门:从零到一的第一个程序
jvm·数据库·python
LYS_06187 分钟前
寒假学习(7)(C语言7+模数电7)
c语言·学习·算法
玄同7657 分钟前
大模型生成 Token 的原理:从文本到模型理解的 “翻译官”
人工智能·python·语言模型·自然语言处理·nlp·知识图谱·token