PsPing 学习笔记(14.10):常见错误与排错思路------从"不可达"到"端口拒绝"
- [PsPing 学习笔记(14.10):常见错误与排错思路------从"不可达"到"端口拒绝"](#PsPing 学习笔记(14.10):常见错误与排错思路——从“不可达”到“端口拒绝”)
-
- [一、先分层:PsPing 报错大多逃不出这三类](#一、先分层:PsPing 报错大多逃不出这三类)
- [二、名称解析类错误:Unknown host、could not resolve](#二、名称解析类错误:Unknown host、could not resolve)
- [三、主机不可达类:Request timed out / 100% loss / No route](#三、主机不可达类:Request timed out / 100% loss / No route)
- [四、端口级错误:Connection refused / 拒绝连接](#四、端口级错误:Connection refused / 拒绝连接)
- [五、延迟抖动/丢包类:高 RTT 与波动](#五、延迟抖动/丢包类:高 RTT 与波动)
- [六、权限/安全相关问题:Access denied / 权限不足](#六、权限/安全相关问题:Access denied / 权限不足)
- 七、一个"万能排错模板"
- 收尾:把错误变成经验库
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 hostcould not resolve
2)常见原因
- DNS 服务器不可用 / 配置错误
- 主机名写错 / 缺少域后缀
- Hosts 里有奇怪配置(被写死到错误 IP)
3)排查步骤
-
先试 IP,而不是主机名
bashpsping 10.0.0.12:80- IP 可通、主机名不通 → 80% 是 DNS 问题
- IP 也不通 → 看下一类"主机不通类"
-
在本机检查 DNS 配置
bashipconfig /all nslookup your-server-name -
检查 hosts
bashnotepad 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)排查步骤
-
先用普通 ping 测一发
bashping 10.0.0.12- 普通 ping 不通:路由/主机/ICMP ACL 问题
- 普通 ping 通,PsPing TCP 连接超时:多半是端口/服务问题(见下一节)
-
确认目标是否真的在线
- 让现场同事上去看
- 或者通过管理平台/监控看心跳
-
简单路由检查(在客户端)
bashtracert 10.0.0.12- 在第一跳就超时:本段网络/网关问题
- 在中间某一跳一直超时:中间路由/ACL 问题
-
问一句"你这是外网/云环境吗?"
- 公有云(AWS/Azure/阿里云等)常见:
- 安全组/网络 ACL 未放行
- 只开放了 80/443,其他随手测的端口都被丢弃
- 公有云(AWS/Azure/阿里云等)常见:
四、端口级错误:Connection refused / 拒绝连接
1)典型报错
-
Connection refused -
Actively refused -
PsPing 输出类似:
textConnecting to 10.0.0.12:1433: TCP connect failed (error code 10061)
2)常见原因
- 目标机器在线,但该端口上没有进程在监听
- 服务挂了 / 配错了监听地址(只绑定到 127.0.0.1)
- 本机或目标机防火墙主动拒绝(返回 RST)
3)排查步骤
-
在目标机上看监听情况
bashnetstat -ano | findstr :1433- 有
LISTENING→ 看进程号+防火墙 - 没有 → 服务根本没起来
- 有
-
配合 PsExec 远程看服务
bashpsexec \\server01 cmd /c "netstat -ano | findstr :1433" psexec \\server01 cmd /c "sc query MSSQLSERVER" -
检查防火墙规则
- Windows 防火墙入站规则
- 云安全组是否放行这个端口
- 中间防火墙/IPS 是否拦截
心法一句话:
"Connection refused = 目标机清醒地告诉你:'这里没人听你说话'。"
五、延迟抖动/丢包类:高 RTT 与波动
1)典型症状
- 平均延迟正常,但最大延迟特别高
- 丢包率在 5%~30% 不等
- 同一条链路白天抖、晚上稳(反之也有)
2)常见原因
- 链路拥塞(上网高峰)
- 中间设备(防火墙/NAT/代理)负载高
- QoS 设置不合理
- 无线链路质量差(Wi-Fi/4G)
3)排查方式
-
多发几次 PsPing + 直方图观察
bashpsping -n 100 -h 10.0.0.12:443- 观察 RTT 分布:是否有明显"长尾"
- 是否跟某个时间段稳定对应
-
换入口/换线路做对比
- 在同一机房不同机器测
- 在不同网络(运营商/公司 VPN 外)测
-
辅助数据
- 看监控:CPU、带宽、丢包、错误包
- 用
tracert看哪个跳数开始发散
关键点:
不要只盯着"平均延迟",最大/百分位延迟 + 丢包率更反映用户体验。
六、权限/安全相关问题:Access denied / 权限不足
虽然 PsPing 比 PsExec 对权限要求低很多,但某些场景还是会撞墙。
常见情况
- 在某些受控终端上,PsPing 直接被安全软件拦截
- 对特定端口探测被认为是"端口扫描行为"
建议处理
- 与安全/网安同事明确沟通用途:
- 说明只做指定目标 / 指定端口
- 提供命令样例,避免被误判为扫全网
- 工具路径/签名加入白名单(尤其是在大量运维终端部署 PsTools 套件时)
- 内部约定"测试窗口":
- 某些合规严格的环境(金融、政务),需要提前登记
- 避免突然在业务高峰做压力型测试(带宽测试)
七、一个"万能排错模板"
以后你看到 PsPing 报错,可以直接按这个小 checklist:
-
先确认:能不能 ping 通(IP)?
- 不通 → 网络/路由/主机问题,找网管
- 通 → 往端口/服务方向查
-
再确认:主机名 vs IP
- IP 通、主机名不通 → DNS/hosts
-
看错误类型
- Timeout(无响应)→ 丢包/路由/防火墙丢弃
- Refused(主动拒绝)→ 服务未监听/防火墙拒绝
- Unknown host → 名称解析
-
在目标机上使用 netstat/ss 看监听
bashnetstat -ano | findstr :PORT -
记录下来:时间 + 命令 + 错误
- 方便后面跟网络/安全/供应商对线
- 也方便你自己后续写一篇"实战排障总结博客"(顺便涨 CSDN 分)
收尾:把错误变成经验库
PsPing 本身很简单,但你踩过的每一次错误,其实都是"网络排障经验值" 。
建议你:
-
每次遇到典型错误,都记一条简短的"现象 → 根因 → 命令"
-
积累到 10~20 条,就可以再写一篇
《PsPing 实战排障 20 例:从 ping 不通到端口被墙》
既能帮到别人,也能帮你在下一次遇到类似问题时,三两条命令就定位到根因。