tcpping通过发送TCP SYN包并测量SYN到SYN-ACK(或RST)的响应时间来测试端口连通性与RTT延迟,依赖tcptraceroute和bc,需root权限运行,不建立完整连接,无侵入性。

Linux中用tcping测试TCP延迟,核心是模拟TCP三次握手并测量SYN到SYN-ACK的时间(即RTT),它比ping更贴近真实业务流量,尤其在ICMP被屏蔽的环境中依然有效。
安装tcpping前先装好依赖
tcpping本质是一个Shell脚本,依赖外部工具运行:
- 必须安装 tcptraceroute:用于发送和解析TCP SYN包
- 必须安装 bc(任意精度计算器):用于毫秒级延迟计算
Ubuntu/Debian系统执行:
sudo apt-get install tcptraceroute bc
CentOS/RHEL系统执行:
sudo yum install tcptraceroute bc(或dnf,视版本而定)
下载并部署tcpping脚本
从官方源获取稳定版本:
wget http://www.vdberg.org/~richard/tcpping
赋予可执行权限并放到系统路径:
chmod +x tcpping && sudo cp tcpping /usr/bin/
验证是否可用:
tcpping -h(应显示帮助信息)
测端口连通性与TCP延迟
基础语法:tcpping [选项] 主机名或IP [端口],端口默认为80
- 测百度443端口延迟:tcpping baidu.com 443 —— 输出类似 tcping: 110.242.68.6:443: 27.4 ms
- 加时间戳便于日志分析:tcpping -d baidu.com 443
- 每2秒测一次,共测5次:tcpping -r 2 -x 5 example.com 22
- 分列输出(适合脚本解析):tcpping -c 192.168.1.100 3306,字段含时间、状态、延迟、丢包标识
看懂关键输出含义
典型成功响应:192.168.1.100:3306: 12.8 ms → 表示端口开放,TCP连接建立耗时12.8毫秒
失败响应可能有两类:
- No answer from 192.168.1.100:3306 → 端口未监听、防火墙拦截、路由不通
- Connection refused → 目标主机响应了RST,说明端口存在但服务未运行
注意:tcpping不建立完整连接(不发ACK),只完成半开握手,因此对服务无侵入性。


















