PsPing 学习笔记(14.10):常见错误与排错思路——从“不可达”到“端口拒绝”

PsPing 学习笔记(14.10):常见错误与排错思路------从"不可达"到"端口拒绝"

PsPing 学习笔记(14.10):常见错误与排错思路------从"不可达"到"端口拒绝"

这一篇的目标是两句话:

看到 PsPing 报错时,不再慌,而是知道:

"这是哪一层的问题?下一步我要查什么?"

我会按错误类型 → 可能原因 → 建议排查步骤来整理,你可以直接当"现场小抄"。


一、先分层:PsPing 报错大多逃不出这三类

用一句粗暴的分层记忆:

  • 名字都找不到:DNS / 主机名解析问题
  • 主机不通:路由 / 防火墙 / IP 配置问题
  • 主机可达但端口不行:服务没起来 / 端口被拦 / 错协议

所以每次看到报错,可以先问自己:

"它是死在哪一层?"

下面按常见错误信息来拆。


二、名称解析类错误:Unknown host、could not resolve

1)典型报错

  • Ping request could not find host xxx. Please check the name and try again.
  • Unknown host
  • could not resolve

2)常见原因

  • DNS 服务器不可用 / 配置错误
  • 主机名写错 / 缺少域后缀
  • Hosts 里有奇怪配置(被写死到错误 IP)

3)排查步骤

  1. 先试 IP,而不是主机名

    bash 复制代码
    psping 10.0.0.12:80
    • IP 可通、主机名不通 → 80% 是 DNS 问题
    • IP 也不通 → 看下一类"主机不通类"
  2. 在本机检查 DNS 配置

    bash 复制代码
    ipconfig /all
    nslookup your-server-name
  3. 检查 hosts

    bash 复制代码
    notepad C:\Windows\System32\drivers\etc\hosts

小结:

名字解析问题优先改 DNS/hosts,不要一上来改防火墙。


三、主机不可达类:Request timed out / 100% loss / No route

1)典型表现

  • ICMP:Request timed out,丢包 100%
  • TCP:一直 Connecting,然后 Timed out
  • 或者 PsPing 输出类似:Destination host unreachable / No route to host

2)常见原因

  • 目标机关机 / 未接入网络
  • 网络不通:路由缺失、三层交换配置问题
  • 防火墙 / 安全组直接丢弃包(既不回复,也不拒绝)
  • 访问的是内网地址,但你不在那个内网

3)排查步骤

  1. 先用普通 ping 测一发

    bash 复制代码
    ping 10.0.0.12
    • 普通 ping 不通:路由/主机/ICMP ACL 问题
    • 普通 ping 通,PsPing TCP 连接超时:多半是端口/服务问题(见下一节)
  2. 确认目标是否真的在线

    • 让现场同事上去看
    • 或者通过管理平台/监控看心跳
  3. 简单路由检查(在客户端)

    bash 复制代码
    tracert 10.0.0.12
    • 在第一跳就超时:本段网络/网关问题
    • 在中间某一跳一直超时:中间路由/ACL 问题
  4. 问一句"你这是外网/云环境吗?"

    • 公有云(AWS/Azure/阿里云等)常见:
      • 安全组/网络 ACL 未放行
      • 只开放了 80/443,其他随手测的端口都被丢弃

四、端口级错误:Connection refused / 拒绝连接

1)典型报错

  • Connection refused

  • Actively refused

  • PsPing 输出类似:

    text 复制代码
    Connecting to 10.0.0.12:1433:
    TCP connect failed (error code 10061)

2)常见原因

  • 目标机器在线,但该端口上没有进程在监听
  • 服务挂了 / 配错了监听地址(只绑定到 127.0.0.1)
  • 本机或目标机防火墙主动拒绝(返回 RST)

3)排查步骤

  1. 在目标机上看监听情况

    bash 复制代码
    netstat -ano | findstr :1433
    • LISTENING → 看进程号+防火墙
    • 没有 → 服务根本没起来
  2. 配合 PsExec 远程看服务

    bash 复制代码
    psexec \\server01 cmd /c "netstat -ano | findstr :1433"
    psexec \\server01 cmd /c "sc query MSSQLSERVER"
  3. 检查防火墙规则

    • Windows 防火墙入站规则
    • 云安全组是否放行这个端口
    • 中间防火墙/IPS 是否拦截

心法一句话:

"Connection refused = 目标机清醒地告诉你:'这里没人听你说话'。"


五、延迟抖动/丢包类:高 RTT 与波动

1)典型症状

  • 平均延迟正常,但最大延迟特别高
  • 丢包率在 5%~30% 不等
  • 同一条链路白天抖、晚上稳(反之也有)

2)常见原因

  • 链路拥塞(上网高峰)
  • 中间设备(防火墙/NAT/代理)负载高
  • QoS 设置不合理
  • 无线链路质量差(Wi-Fi/4G)

3)排查方式

  1. 多发几次 PsPing + 直方图观察

    bash 复制代码
    psping -n 100 -h 10.0.0.12:443
    • 观察 RTT 分布:是否有明显"长尾"
    • 是否跟某个时间段稳定对应
  2. 换入口/换线路做对比

    • 在同一机房不同机器测
    • 在不同网络(运营商/公司 VPN 外)测
  3. 辅助数据

    • 看监控:CPU、带宽、丢包、错误包
    • tracert 看哪个跳数开始发散

关键点:

不要只盯着"平均延迟",最大/百分位延迟 + 丢包率更反映用户体验。


六、权限/安全相关问题:Access denied / 权限不足

虽然 PsPing 比 PsExec 对权限要求低很多,但某些场景还是会撞墙。

常见情况

  • 在某些受控终端上,PsPing 直接被安全软件拦截
  • 对特定端口探测被认为是"端口扫描行为"

建议处理

  1. 与安全/网安同事明确沟通用途:
    • 说明只做指定目标 / 指定端口
    • 提供命令样例,避免被误判为扫全网
  2. 工具路径/签名加入白名单(尤其是在大量运维终端部署 PsTools 套件时)
  3. 内部约定"测试窗口":
    • 某些合规严格的环境(金融、政务),需要提前登记
    • 避免突然在业务高峰做压力型测试(带宽测试)

七、一个"万能排错模板"

以后你看到 PsPing 报错,可以直接按这个小 checklist:

  1. 先确认:能不能 ping 通(IP)?

    • 不通 → 网络/路由/主机问题,找网管
    • 通 → 往端口/服务方向查
  2. 再确认:主机名 vs IP

    • IP 通、主机名不通 → DNS/hosts
  3. 看错误类型

    • Timeout(无响应)→ 丢包/路由/防火墙丢弃
    • Refused(主动拒绝)→ 服务未监听/防火墙拒绝
    • Unknown host → 名称解析
  4. 在目标机上使用 netstat/ss 看监听

    bash 复制代码
    netstat -ano | findstr :PORT
  5. 记录下来:时间 + 命令 + 错误

    • 方便后面跟网络/安全/供应商对线
    • 也方便你自己后续写一篇"实战排障总结博客"(顺便涨 CSDN 分)

收尾:把错误变成经验库

PsPing 本身很简单,但你踩过的每一次错误,其实都是"网络排障经验值"

建议你:

  • 每次遇到典型错误,都记一条简短的"现象 → 根因 → 命令"

  • 积累到 10~20 条,就可以再写一篇

    《PsPing 实战排障 20 例:从 ping 不通到端口被墙》

既能帮到别人,也能帮你在下一次遇到类似问题时,三两条命令就定位到根因。

相关推荐
北岛寒沫10 小时前
北京大学国家发展研究院 经济学原理课程笔记(第二十五课 开放宏观基本概念)
经验分享·笔记·学习
Mqh18076210 小时前
day61 经典时序模型3
python
北京理工大学软件工程10 小时前
代码随想录-C-笔记
笔记
我想吃烤肉肉10 小时前
logger比print优秀之处
python
2501_9418771310 小时前
在法兰克福企业级场景中落地零信任安全架构的系统设计与工程实践分享
开发语言·php
Cosmoshhhyyy10 小时前
《Effective Java》解读第32条:谨慎并用泛型和可变参数
java·python
Cherry的跨界思维10 小时前
【AI测试全栈:Vue核心】19、Vue3+ECharts实战:构建AI测试可视化仪表盘全攻略
前端·人工智能·python·echarts·vue3·ai全栈·ai测试全栈
leiming610 小时前
c++ QT 开发第二天,用ui按钮点亮实体led
开发语言·qt·ui
2501_9418824810 小时前
在开普敦跨区域部署环境中构建高可靠分布式配置中心的设计思路与实现实践
开发语言·c#
一只小小Java10 小时前
Java面试场景高频题
java·开发语言·面试