PsPing 学习笔记(14.2):TCP Ping——端口连通性与服务在线性秒级体检

PsPing 学习笔记(14.2):TCP Ping------端口连通性与服务在线性秒级体检

  • [PsPing 学习笔记(14.2):TCP Ping------端口连通性与服务在线性秒级体检](#PsPing 学习笔记(14.2):TCP Ping——端口连通性与服务在线性秒级体检)
    • 一、本篇你能收获什么?
    • [二、TCP Ping 是什么?跟普通 ping 有啥不同?](#二、TCP Ping 是什么?跟普通 ping 有啥不同?)
      • [1. 普通 ping:只看"主机"](#1. 普通 ping:只看“主机”)
      • [2. TCP Ping:看"端口上的服务"](#2. TCP Ping:看“端口上的服务”)
    • [三、基本语法:用 `host:port` 打开 TCP 模式](#三、基本语法:用 host:port 打开 TCP 模式)
      • [1. 基本形式](#1. 基本形式)
      • [2. 常用选项回顾(在 TCP 模式里照样好用)](#2. 常用选项回顾(在 TCP 模式里照样好用))
    • [四、典型实战场景:3 条命令解决 80% 的"端口是不是挂了"](#四、典型实战场景:3 条命令解决 80% 的“端口是不是挂了”)
      • [场景 1:用户在外网访问不了 Web](#场景 1:用户在外网访问不了 Web)
        • [第一步:先 ICMP 看主机是否在线(可选)](#第一步:先 ICMP 看主机是否在线(可选))
        • [第二步:用 TCP Ping 打 80/443](#第二步:用 TCP Ping 打 80/443)
      • [场景 2:内网数据库连不上](#场景 2:内网数据库连不上)
      • [场景 3:验证东西端防火墙策略](#场景 3:验证东西端防火墙策略)
    • [五、输出解读:成功 / 失败 / 延迟看什么?](#五、输出解读:成功 / 失败 / 延迟看什么?)
    • [六、TCP Ping 常见错误与分析思路](#六、TCP Ping 常见错误与分析思路)
      • [1. 连接被拒绝(connection refused)](#1. 连接被拒绝(connection refused))
      • [2. 请求超时](#2. 请求超时)
      • [3. 偶发性失败或高延迟](#3. 偶发性失败或高延迟)
    • 七、和其他模式的协同:构建一套路由到应用的"体检流程"
    • [八、小结 & 练习建议](#八、小结 & 练习建议)

PsPing 学习笔记(14.2):TCP Ping------端口连通性与服务在线性秒级体检

适用人群:日常要排查"服务是不是挂了""端口是不是被挡了"的运维 / 开发 / 测试 / 安全同学。

承接 14.1 的 ICMP 模式,这一篇我们把视角从"主机活着没"升级到"这个端口上的服务是不是也活着"。

一句话版本:

ICMP 告诉你"那台机器大概在线";
TCP Ping 告诉你"这个服务,真的在端口上听你说话"。


一、本篇你能收获什么?

看完你可以:

  • 知道 TCP Ping 和 ICMP Ping 的核心区别
  • 读懂 PsPing TCP 模式的输出含义(成功 / 失败 / 延迟)
  • 掌握几条 可直接用在生产上的排障命令
  • 能初步区分:
    • 网络不通
    • 还是 端口没开 / 监听失败
    • 还是 被防火墙/策略拒绝

二、TCP Ping 是什么?跟普通 ping 有啥不同?

1. 普通 ping:只看"主机"

  • 协议:ICMP Echo(网络层)
  • 问题:
    • 机器在线,但服务死了,它也会回 ICMP
    • 很多服务器 / 云厂商 直接丢弃 ICMP,你根本 ping 不通

2. TCP Ping:看"端口上的服务"

PsPing 的 TCP 模式,本质是:

  • 尝试对 host:port 建立 TCP 连接
  • 测量握手延迟(RTT)
  • 根据结果判断端口状态:

常见情况:

  • 能连上 → 端口开放且有人在监听(服务大概率在线)
  • 立即被拒绝(RST) → 主机在,但该端口没有服务监听
  • 超时 → 路由 / 防火墙 / 中间设备吃掉了你的 SYN,不回你话

你可以把它理解为:

"拿着 TCP SYN 去敲门,看看这道门有没有人开。"


三、基本语法:用 host:port 打开 TCP 模式

1. 基本形式

bash 复制代码
psping [选项] 主机:端口

示例:

bash 复制代码
psping web01.yourcorp.com:80
psping 10.0.0.5:443
psping 192.168.1.10:1433

只要你在地址后面跟了一个 :端口,PsPing 就会自动切换到 TCP 模式(后面章节再加服务器模式、带宽测试等花活)。


2. 常用选项回顾(在 TCP 模式里照样好用)

几个高频参数和 14.1 一样:

  • -n:测试次数
  • -i:间隔(秒,可小数)
  • -q:安静模式,只输出统计结果
  • -h:显示帮助
  • -accepteula:静默接受许可

搭个组合例子:

bash 复制代码
:: 对 10.0.0.5 的 443 端口做 50 次连接测试
psping -n 50 -i 0.2 10.0.0.5:443

四、典型实战场景:3 条命令解决 80% 的"端口是不是挂了"

场景 1:用户在外网访问不了 Web

用户喊:"网站打不开,是不是服务器死了?"

你可以这么排:

第一步:先 ICMP 看主机是否在线(可选)
bash 复制代码
psping -n 5 web01.yourcorp.com
  • 通:说明主机大概率在
  • 不通:要考虑 ICMP 被丢弃,继续第二步
第二步:用 TCP Ping 打 80/443
bash 复制代码
:: HTTP
psping -n 10 web01.yourcorp.com:80

:: HTTPS
psping -n 10 web01.yourcorp.com:443

解释结果:

  • 全部成功,延迟正常
    → 端口开着、服务在监听,多半是上层(Nginx/应用/脚本逻辑)问题
  • 立即失败,提示连接被拒绝
    → 主机活着,但服务没监听在这个端口(挂了 / 配置错 / 端口改了)
  • 一直超时
    → 中途被防火墙、WAF 或安全组挡掉了

场景 2:内网数据库连不上

应用连数据库超时,运维第一句话:"你先别怀疑我网。"

你可以:

bash 复制代码
:: 假设 SQL Server 端口 1433
psping -n 20 -i 0.5 db01.yourcorp.com:1433

结果解释:

  • RTT 稳定,全部成功
    → 网络 / 端口 OK,问题多半在账号密码、连接池、SQL 自身
  • 偶尔超时 / 延迟暴涨
    → 可以结合后续 PsPing 延迟直方图 + PerfMon/Procmon 分析
  • 完全连不上
    → 先看防火墙和安全组,再看 DB 监听配置(只绑了 127.0.0.1 之类)

场景 3:验证东西端防火墙策略

安全同学:

"新上了一条策略,这几台服务器之间只有某些端口能通。"

你可以直接用 PsPing 去打那个端口:

bash 复制代码
:: 检查 10.0.1.10 是否能从 172.16.0.5 访问 8443
psping -n 10 10.0.1.10:8443

结合源/目的变换测试,很快就能精确指出:

  • 客户端出不去
  • 还是 服务端进不来
  • 还是中间某个防火墙/IPS 做了手脚

五、输出解读:成功 / 失败 / 延迟看什么?

PsPing TCP 模式每次输出大致包括:

  • 是否成功连接
  • 每次往返时间(毫秒)
  • 汇总统计(最小 / 最大 / 平均 / 标准差)

你重点关注:

  1. 失败比例
    • 失败多 → 有丢包 / 端口不通 / 服务没监听 / 被拒绝
  2. 延迟平均值
    • 本地机房内:几 ms 级
    • 跨地域 / 跨运营商:几十 ms ~ 上百 ms 很正常
  3. 抖动(标准差)
    • 抖动大,说明延迟波动厉害 → 发包间隔拉长 / 结合路由、队列进一步排查

六、TCP Ping 常见错误与分析思路

1. 连接被拒绝(connection refused)

说明:

  • TCP 三次握手能到达目标主机
  • 但目标端口上 没有服务在监听
  • 或被中间设备主动发送 RST

排查方向:

  • 目标服务是否启动?
  • 是否监听在 0.0.0.0 / 对应 IP / 对应端口?
  • 中间有没有"端口探测防御"设备?

2. 请求超时

说明:

  • SYN 报文在中途被丢弃(很像 ICMP 被丢的那种无响应)
  • 或路径上有防火墙策略直接 drop

排查方向:

  • 换源地址测试(不同网段/不同机房)
  • tracert / pathping 看路径
  • 检查安全组、ACL、FW 规则日志

3. 偶发性失败或高延迟

说明网络链路不稳定,可能出现在:

  • 带宽打满(某段时间流量激增)
  • 队列排队严重(QoS 配置问题)
  • 无线链路质量差(Wi-Fi、移动网络等)

组合拳建议:

  • PsPing + 系统性能计数器 / SNMP 图表
  • 再加后续章节中的 直方图 分析延迟分布(14.7)

七、和其他模式的协同:构建一套路由到应用的"体检流程"

建议你把现在已经学到的东西整理成一条简单流程:

text 复制代码
1)主机是否在线?
   → PsPing ICMP(14.1)

2)端口是否开放?
   → PsPing TCP Ping(本篇)

3)端到端延迟 & 带宽性能如何?
   → PsPing 服务器模式 + TCP/UDP 延迟 & 带宽测试(14.3--14.6)

4)延迟抖动是否可接受?
   → PsPing 直方图 & 统计分析(14.7)

一旦你习惯用这条流水线去排查网络/服务问题,"是不是网络问题"这种灵魂拷问会好回答很多。


八、小结 & 练习建议

本篇的核心要点:

  • host:port = 启用 TCP 模式,用来检查端口连通性与服务在线性
  • 配合 -n / -i / -q 等选项,可以高频、多次、可脚本化地做体检
  • 通过成功/失败/延迟行为,区分:
    • 主机活着但服务没监听
    • 网络路径被丢弃或阻断
    • 链路抖动 / 延迟波动大

可以自己练几个小题:

  1. 对你公司常用的 Web / API / DB 服务做一遍 TCP Ping,记录延迟基线
  2. 故意关掉一个服务,再用 PsPing 打一下端口,看错误提示长什么样
  3. 在高并发时段和低峰时段各跑一次,比较下延迟统计的差异

下一篇(14.3)我们会走到 PsPing 的 服务器模式,开始做更"硬核"的 TCP/UDP 延迟测试,为后面的带宽压测和直方图分析打基础。

相关推荐
BullSmall2 小时前
后台任务与定时任务:软件开发中的异步处理利器
学习
航Hang*2 小时前
第1章:初识Linux系统——第12节:总复习①
linux·笔记·学习·考试复习
崎岖Qiu2 小时前
【设计模式笔记23】:长文解析-深刻理解「装饰器模式」
java·笔记·设计模式·装饰器模式
走在路上的菜鸟2 小时前
Android学Flutter学习笔记 第二节 Android视角认知Flutter(resource,生命周期,layout)
android·学习·flutter
发际线的忧伤2 小时前
论文中参考文献endnote引用常见问题整理
笔记·其他
KaiGer6662 小时前
AUTOSAR 学习效率翻倍:我如何把 CP/AP 规范重构成认知地图
学习
草莓熊Lotso3 小时前
Python 进阶核心:字典 / 文件操作 + 上下文管理器实战指南
数据结构·c++·人工智能·经验分享·笔记·git·python
科技林总3 小时前
【系统分析师】1.1 信息与信息系统
学习
HyperAI超神经8 小时前
在线教程丨 David Baker 团队开源 RFdiffusion3,实现全原子蛋白质设计的生成式突破
人工智能·深度学习·学习·机器学习·ai·cpu·gpu