网络与通信工具总览(14.0):从 PsPing 到 TCPView / Whois 的联合作战
- [网络与通信工具总览(14.0):从 PsPing 到 TCPView / Whois 的联合作战](#网络与通信工具总览(14.0):从 PsPing 到 TCPView / Whois 的联合作战)
-
- [一、Sysinternals 的"网络分队"都干啥?](#一、Sysinternals 的“网络分队”都干啥?)
- [二、为什么单靠 ping / tracert 已经不太够用了?](#二、为什么单靠 ping / tracert 已经不太够用了?)
- [三、PsPing 在整个工具链中的定位](#三、PsPing 在整个工具链中的定位)
- [四、PsPing 能解决哪些典型场景?](#四、PsPing 能解决哪些典型场景?)
- [五、和 TCPView / Whois 是什么关系?](#五、和 TCPView / Whois 是什么关系?)
- 六、实战推荐的"学习顺序"
- 七、给自己留一个"网络体检模版"
网络与通信工具总览(14.0):从 PsPing 到 TCPView / Whois 的联合作战
适用人群:运维 / 开发 / 测试 / 安全同学,尤其是经常被一句"网络是不是有问题?"支配的灵魂。
这一章我们先不急着敲命令,先把 Sysinternals 网络与通信工具 放到一张"大地图"里,搞清楚:
谁负责"能不能通",谁负责"谁在占用端口",谁负责"这个域名是谁的"。
后面 14.1--14.x 会一条一条拆开讲,这篇算是 全局导航 + 场景思维导图。
一、Sysinternals 的"网络分队"都干啥?
在 Sysinternals 家族里,比较典型的"网络/通信"相关工具可以简单分三类:
| 工具 | 核心作用 | 典型问题 |
|---|---|---|
| PsPing | 延迟 / 带宽 / 端口连通性测试 | "网络卡吗?""端口通吗?" |
| TCPView | 显示当前 TCP/UDP 连接和监听端口 | "谁占用了 8080 端口?" |
| Whois | 查询域名 / IP 归属信息 | "这个域名/IP 是谁的?" |
| 其它传统工具 | ping / tracert / netstat 等 | 系统自带,但信息不够细 / 不好统计 |
本章书里重点是 PsPing,但在实战里,你几乎不会只用一个工具就结束战斗,经常是:
PsPing 定位"延迟/丢包";
TCPView 看"到底哪个进程在占用";
Whois 查"对面这玩意是不是个鬼地址"。
二、为什么单靠 ping / tracert 已经不太够用了?
系统自带的 ping、tracert 很经典,但有几个硬伤:
- ICMP 协议经常被丢弃 / 限制
很多防火墙、网络设备直接丢 ICMP,导致你 ping 不通,却不代表 TCP 业务不通。 - 看不到"应用端口"是否真的可用
ping 只告诉你"机器还活着",但 TCP 80 / 443 / 1433 / 3306 到底能不能连,它不知道。 - 缺乏统计/可视化能力
想要看到 延迟分布、RTT 抖动、百/千次测试结果的直方图,只靠 ping 基本是折磨。
这就是 PsPing 登场的理由:
把"网络测量"做成一个专业工具,既能玩基础的 Ping,也能玩 TCP/UDP 延迟和带宽。
三、PsPing 在整个工具链中的定位
先把 PsPing 放在一个更大的排障流程里看,会清楚很多:
text
用户说"很卡"
↓
先用 PsPing 做延迟/带宽测试(ICMP + TCP)
↓
如果端口不通,用 TCPView / netstat 看本机监听和连接
↓
怀疑外部地址 / 域名,丢给 Whois 查归属和注册信息
↓
最终结合抓包(Wireshark)/日志确定是 网络 / 应用 / 配置 哪一层的问题
简单理解:
- PsPing:能告诉你"是不是网络传输问题""端口能不能通""延迟和带宽大概什么水平"
- TCPView / netstat:能告诉你"本机上谁在用网络""端口被谁占了"
- Whois:能告诉你"对面服务器属于谁"
后续几篇会专门展开 PsPing 的各种玩法,这里先给你一个脑内索引。
四、PsPing 能解决哪些典型场景?
先列出几个日常高频:
- 判断当前网络是否"真的很卡"
- 场景:用户上来一句"今天系统巨卡,肯定是网络问题"。
- 玩法:
- 用 PsPing 对核心服务 IP 做 ICMP + TCP 延迟测试。
- 测一段时间(比如 100 / 1000 次),看 平均值 / 最大值 / 标准差。
- 结论:延迟正常 → 更多怀疑业务本身;延迟、丢包明显异常 → 再往网络层深入。
- 验证某业务端口是否畅通
- 场景:应用连不上数据库、Redis、HTTP API。
- 玩法:
psping server:1433(SQL Server)psping server:6379(Redis)psping server:8080(自研服务)
- 比 curl/wget 更轻量,尤其是数据库类服务,很好用。
- 打 CRUD 之前先打带宽压测
- 场景:跨机房、跨地域部署新服务,想知道链路能扛多少。
- 玩法:
- 一端以
-s启动 PsPing 服务模式,另一端跑 TCP/UDP 带宽测试。
- 一端以
- 就像一个"小型 iperf",但更方便塞进脚本和自动化里。
- 做延迟/抖动的长期监控
- 场景:怀疑网络偶发抖动,平时一切健康,业务偶尔卡死。
- 玩法:
- 用 PsPing 写个循环脚本,每隔一段时间测一次,输出日志或直方图,
- 后面在 Excel / Grafana 里做图。
- 比"拍脑袋说偶发异常"有说服力得多。
五、和 TCPView / Whois 是什么关系?
虽然这一章目录主要写的是 PsPing 的各种测试模式,但在你的脑子里,可以顺手把它和另外两个工具连起来:
- TCPView :
- 看本机所有 TCP/UDP 连接 & 监听端口
- 匹配进程名、PID、远程地址、状态(LISTENING、ESTABLISHED 等)
- 用于回答:"这个端口到底被谁占了? ""这台机到底连去了哪些外部地址?"
- Whois :
- 查询某个域名/IP 的注册信息、归属机构、联系人
- 尤其在安全场景下很常用:
- 比如某个可疑 IP 一直有连接,Whois 一查,结果是国外某云 + 可疑邮箱,就值得警惕
- 在做黑白名单、策略调整、威胁分析时极其顺手
三者组合,可以搭出类似这样的 快速排障路径:
text
用户反馈"访问 A 系统很慢"
↓
PsPing 测延迟 & 丢包(到 A 系统网关/服务)
↓
本机用 TCPView 看是不是很多连接半开/等待,或端口冲突
↓
对异常远程 IP 用 Whois 看归属,辅助判断是否被劫持/错误转发
六、实战推荐的"学习顺序"
后面我们会按章节拆解 PsPing 的各个功能,这里给你一个 建议学习路线:
- 14.1 / 14.2:基础认识 + ICMP Ping 进阶
- 先搞懂 PsPing 的语法结构(目标、次数、间隔、统计)
- 把它当"加强版 ping"用熟
- 14.3 / 14.4:TCP Ping + 服务器模式(-s)
- 从"机器活着"进化到"端口也活着"
- 学会自建回显端点,做端到端链路测试
- 14.5 / 14.6:延迟 / 带宽测试
- 用 TCP/UDP 模式搞清楚"延迟"和"速度"分别是不是问题
- 熟悉测试参数,避免对业务造成过大冲击
- 14.7:直方图 + 可视化输出
- 为后面做汇报、写周报、向领导解释"不是我锅",提供图形证据
- 额外实践:配合 TCPView / Whois
- 做一两个完整的"网络体检脚本",把诊断流程写进批处理或 PowerShell
七、给自己留一个"网络体检模版"
最后给你一个很轻量的"体检脚本思路",后面章节学完可以自己实现:
text
1)对核心服务做 ICMP + TCP 延迟测试(PsPing)
2)查看本机端口占用与连接数(TCPView / 命令行版 netstat)
3)对出现频率最高的外部 IP 做 Whois 查询
4)生成一份简单的"网络诊断报告":延迟分布、端口健康、连接分布
配合你前面学过的 Process Explorer / Process Monitor 等工具,就可以从 "进程视角 + 网络视角" 双线排障 ,
而不是每次都被一句"网有问题吧?"带着跑。
下一篇我们就正式进入 14.1 / 14.2 ,从 "PsPing 到底怎么用" 和 ICMP Ping 进阶 开刀,把它从"新工具"变成你日常脚本的一部分。