#干货满满Linux下的TCP测试工具
  

cyq 35971人觉得有帮助

{{ttag.title}}
测量到远程主机的网络延迟的一种常用方法是使用ping应用程序。该ping工具依赖 ICMP ECHO 请求和回复数据包来测量远程主机的往返延迟。但是,在某些情况下,ICMP 流量可能会被防火墙阻止,这使得该ping应用程序对于受限制的防火墙后面的主机毫无用处。在这种情况下,你将需要依赖使用 TCP/UDP 数据包的第 3 层测量工具,因为这些第 3 层数据包更有可能绕过常见的防火墙规则。
一种这样的第 3 层测量工具是tcpping. 为了测量延迟,tcpping利用所谓的半开放连接技术,基于 TCP 三路握手。也就是说,它通过端口号(默认为 80)向远程主机发送 TCP SYN 数据包。如果远程主机正在侦听该端口,它将以 TCP ACK 数据包响应。否则,它将以 TCP RST 数据包响应。无论哪种方式,tcpping都可以通过定时传出 SYN 数据包和传入 ACK(或 RST)数据包来测量远程主机的往返时间 (RTT) 延迟。
在 Linux 上安装tcpping
tcpping作为 shell 脚本实现,该脚本响应外部工具来执行和报告 RTT 测量。因此,为了安装tcpping,你首先需要先安装这些先决条件。
安装依赖 tcptraceroute
要在 Ubuntu 或 Debian 上安装tcptraceroute:
$ sudo apt-get install tcptraceroute[size=0.8em]Bash
Copy


要在 CentOS 或 RHEL 上安装tcptraceroute,首先在你的系统上设置 RepoForge,然后运行:
$ sudo yum install tcptraceroute [size=0.8em]Bash
Copy


安装依赖 bc
使用的另一个工具tcpping是GNUbc,它预装在所有主要的 Linux 发行版上。但是,如果你tcpping在最小 Linux 运行时环境(例如Docker容器、AWS 最小映像 AMI)中运行,则bc可能不会预先安装。在这种情况下,你需要bc自己安装。
在Debian 的 Linux 上安装:
$ sudo apt-get install bc  [size=0.8em]Bash
Copy


在 Red Hat 的 Linux 上安装:
$ sudo yum install bc[size=0.8em]Bash
Copy


安装 tcpping
安装这些必备工具后,最后继续tcpping从官方源下载。
$ wget http://www.vdberg.org/~richard/tcpping   $ cp tcpping /usr/bin   $ chmod 755 tcpping[size=0.8em]Bash
Copy


使用tcpping来衡量延迟
要使用 测量网络延迟tcpping,你可以使用以下格式。
tcpping [-d [-c [-r sec [-x count ipaddress [端口  [size=0.8em]Bash
Copy


  • -d: 在每个结果之前打印时间戳。
  • -c: 使用分列输出以便于解析。
  • -r:连续探测之间的间隔(以秒为单位)(默认为 1 秒)。
  • -x: 重复 n 次(默认无限制)。
  • [port]: 目标端口(默认为 80)。
请注意,你需要 root 权限才能运行,tcpping因为它需要调用特权tcptraceroute命令。
对于任何开放 80 端口的目标 Web 服务器,你可以使用以下方法测量其 RTT 延迟tcpping。
tcpping www.rumenz.com  seq 0: tcp response from 42.194.162.109 (42.194.162.109) <syn,ack>  33.822 ms  traceroute to rumenz.com (42.194.162.109), 255 hops max, 60 byte packets  seq 1: tcp response from 42.194.162.109 (42.194.162.109) <syn,ack>  33.975 ms  traceroute to rumenz.com (42.194.162.109), 255 hops max, 60 byte packets  seq 2: tcp response from 42.194.162.109 (42.194.162.109) <syn,ack>  32.010 ms  traceroute to rumenz.com (42.194.162.109), 255 hops max, 60 byte packets  seq 3: tcp response from 42.194.162.109 (42.194.162.109) <syn,ack>  32.209 ms  traceroute to rumenz.com (42.194.162.109), 255 hops max, 60 byte packets  seq 4: tcp response from 42.194.162.109 (42.194.162.109) <syn,ack>  30.866 ms  traceroute to rumenz.com (42.194.162.109), 255 hops max, 60 byte packets  seq 5: tcp response from 42.194.162.109 (42.194.162.109) <syn,ack>  34.866 ms  traceroute to rumenz.com (42.194.162.109), 255 hops max, 60 byte packets  seq 6: tcp response from 42.194.162.109 (42.194.162.109) <syn,ack>  32.604 ms  traceroute to rumenz.com (42.194.162.109), 255 hops max, 60 byte packets  seq 7: tcp response from 42.194.162.109 (42.194.162.109) <syn,ack>  30.495 ms  [size=0.8em]Bash
Copy


对于任意远程主机,在运行tcpping. 要检查远程 TCP 端口是否打开,你可以使用nc如下命令。
$ nc -vn <ip-address> <port-number> [size=0.8em]Bash
Copy


-t: 连续 TCPing ,直到使用 Ctrl+C 键停止tcping -t 1.1.1.1 80 [size=0.8em]Bash
Copy


-n 5: TCPing 5次后停止tcping -i 5 1.1.1.1 80[size=0.8em]Bash
Copy


-w 0.5: 设置超时时间为 0.5秒(1秒=1000毫秒),单位 秒tcping -w 0.5 1.1.1.1 80  [size=0.8em]Bash
Copy


-d:在每行返回信息中加入时间信息tcping -d 1.1.1.1 80[size=0.8em]Bash
Copy


-s: 当 TCPing 测试成功后(在超时时间以内返回 TCPing 延迟数据)自动停止 TCPingtcping -s 1.1.1.1 80[size=0.8em]Bash
Copy


-4: 优先 IPv4(如果一个域名有 IPv4 和 IPv6 解析,那么走 IPv4)tcping -s 1.1.1.1 80 [size=0.8em]Bash
Copy


-6:优先 IPv6(如果一个域名有 IPv4 和 IPv6 解析,那么走 IPv6)tcping -6 www.rumenz.com 80[size=0.8em]Bash
Copy


–file: TCPing 将逐行循环遍历文件内的 服务器IP/域名 信息(一行一个,支持端口,例如:1.1.1.1 443)tcping --file rumenz.txt

打赏鼓励作者,期待更多好文!

打赏
20人已打赏

一个无趣的人 发表于 2022-6-26 22:06
  
楼主的文章图文并茂,清晰易懂,看完这波操作可以轻松上手了,如遇到问题再向楼主请教~
steingate 发表于 2022-5-5 14:15
  


感谢分享有助于工作和学习!
JM 发表于 2022-5-5 10:18
  

感谢分享有助于工作和学习!
何茂源 发表于 2022-5-4 20:24
  
感谢分享有助于工作和学习!
ChengGF 发表于 2022-5-4 20:07
  
感谢分享有助于工作和学习!
新手899116 发表于 2022-5-4 17:08
  
感谢分享有助于工作和学习!
新手517842 发表于 2022-5-4 17:03
  

感谢分享有助于工作和学习!
糖果星球 发表于 2022-5-4 16:56
  

感谢分享有助于工作和学习!
JM 发表于 2022-5-3 13:14
  
感谢分享有助于工作和学习!
发表新帖
热门标签
全部标签>
每日一问
每周精选
技术盲盒
技术笔记
2024年技术争霸赛
产品连连看
干货满满
2023技术争霸赛专题
技术咨询
标准化排查
技术晨报
新版本体验
通用技术
自助服务平台操作指引
GIF动图学习
秒懂零信任
文档捉虫活动
信服课堂视频
答题自测
功能体验
每日一记
SDP百科
技术圆桌
在线直播
安装部署配置
测试报告
问题分析处理
畅聊IT
专家问答
MVP
网络基础知识
升级
安全攻防
上网策略
日志审计
流量管理
运维工具
云计算知识
用户认证
原创分享
解决方案
sangfor周刊
VPN 对接
项目案例
SANGFOR资讯
专家分享
技术顾问
信服故事
功能咨询
终端接入
授权
设备维护
资源访问
地址转换
虚拟机
存储
迁移
加速技术
排障笔记本
产品预警公告
玩转零信任
信服圈儿
S豆商城资讯
技术争霸赛
「智能机器人」
追光者计划
深信服技术支持平台
社区帮助指南
答题榜单公布
纪元平台
卧龙计划
华北区拉练
天逸直播
以战代练
山东区技术晨报
齐鲁TV
华北区交付直播
北京区每日一练

本版版主

12
185
6

发帖

粉丝

关注

本版达人

LoveTec...

本周分享达人

新手24116...

本周提问达人