常规我们多数使用 ping 命令来检查网络延时, ping 命令是基于ICMP的请求应答报文来测量网络延时情况。ICMP处在网络层协议层, 某些场景下, ICMP 容易被防火墙阻止, 这样场景下 ping 工具就无法使用了。这种场景下, 需要使用TCP/UDP协议来测试三层网络的延时状态。

我们可以使用 tcpping 来进行网络延迟的测量, tcpping 是使用TCP协议的三次握手利用半开连接技术实现.比如想远端的80端口建立连接, 会先发送一个 TCP SYN 包, 如果远端的80端口正常, 将回复 TCP ACK 包, 否则将响应 TCP RST 包。因此 tcpping 可以定时通过 发送 SYN 包, 接收 ACKRST包来计算到远程主机的访问延时(RTT)。

tcptraceroute 软件已经实现了半开连接技术,tcpping依赖该软件来实现网络延迟的测量。

安装依赖

tcpping 是一个 shell 脚本, 依赖tcptraceroutebc 软件包

Debian

apt -y install tcptraceroute bc

CentOS

yum -y install tcptraceroute bc

安装 tcpping

tcpping官网下载源码安装

$ wget http://www.vdberg.org/~richard/tcpping
$ sudo cp tcpping /usr/bin
$ sudo chmod 755 tcpping

命令使用教程

tcpping 帮助信息

tcpping
tcpping v1.7 Richard van den Berg <richard@vdberg.org>

Usage: tcpping [-d] [-c] [-C] [-w sec] [-q num] [-x count] ipaddress [port]

        -d   print timestamp before every result
        -c   print a columned result line
        -C   print in the same format as fping's -C option
        -w   wait time in seconds (defaults to 3)
        -r   repeat every n seconds (defaults to 1)
        -x   repeat n times (defaults to unlimited)

See also: man tcptraceroute

注意 tcpping 依赖 root 权限

你可以简单使用 tcpping 测量访问网站的延迟, 比如我们访问腾讯首页 www.qq.com

tcpping www.qq.com

【腾讯云】境外1核2G服务器低至2折,半价续费券限量免费领取!
https://cloud.tencent.com/act/cps/redirect?redirect=1068&cps_key=e4b50f6c64a4480367f8a8d16fd07c5a&from=console

标签: linux, tcpping, icmp

添加新评论