iPerf3 测速工具使用教程
标签搜索
侧边栏壁纸
  • 累计撰写 22 篇文章
  • 累计收到 3 条评论

iPerf3 测速工具使用教程

admin
2023-09-22 / 0 评论 / 29 阅读 / 正在检测是否收录...
温馨提示:
本文最后更新于2023年09月23日,已超过578天没有更新,若内容或图片失效,请留言反馈。

iperf-3-destacada.webp

简介

目前它的大版本是 3,对应的命令行名称是 iperf3。它的自我介绍是『A TCP, UDP, and SCTP network bandwidth measurement tool』,简单直接,其实就是测试网络带宽的。

安装

由于是个比较古老的工具,目前已经可以在大多数操作系统中直接安装了。

brew install iperf3 # MacOS
sudo apt install iperf3 # Ubuntu
sudo yum install iperf3 # CentOS

或者,也可以使用 Docker:

docker search iperf3

然后从中挑选一个即可,我挑了个版本比较新的:

docker pull mlabbe/iperf3

需要注意的是,这种情况下,测出的速率可能无法真实反映网速,毕竟经过了 Docker 的虚拟层。

使用

由于这种测速是测两台机器之间的网速,我们需要部署两个点,一台用来当做服务器,另一台用来当做客户端。

对于服务端需要注意,需要确保本地的 5201 端口没有被其它进程占用:

netstat -nltp | grep 5201

如果端口被占用,可以另外指定端口。

然后,就可以开始测试了:

服务端: iperf3 -s(或者 iperf3 -p <port> -s );
客户端(服务器到本地的 上行 速度): iperf3 -c <server-address> (或者 iperf3 -p <port> -c <server-address> );
客户端(服务器到本地的 下行 速度): iperf3 -c <server-address> -R (或者 iperf3 -p <port> -c <server-address> -R );

然后,你可以同时在两个端的输出中,看到类似于下面的输出:

Connecting to host 192.168.1.108, port 5201
[  7] local 192.168.1.101 port 51365 connected to 192.168.1.102 port 5201
[ ID] Interval           Transfer     Bitrate
[  7]   0.00-1.00   sec  49.7 MBytes   416 Mbits/sec
[  7]   1.00-2.00   sec  49.7 MBytes   417 Mbits/sec
[  7]   2.00-3.00   sec  49.1 MBytes   412 Mbits/sec
[  7]   3.00-4.00   sec  49.7 MBytes   417 Mbits/sec
[  7]   4.00-5.00   sec  43.3 MBytes   363 Mbits/sec
[  7]   5.00-6.00   sec  45.7 MBytes   383 Mbits/sec
[  7]   6.00-7.00   sec  43.8 MBytes   368 Mbits/sec
[  7]   7.00-8.00   sec  40.8 MBytes   341 Mbits/sec
[  7]   8.00-9.00   sec  41.8 MBytes   351 Mbits/sec
[  7]   9.00-10.00  sec  42.4 MBytes   356 Mbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate
[  7]   0.00-10.00  sec   456 MBytes   382 Mbits/sec                  sender
[  7]   0.00-10.01  sec   456 MBytes   382 Mbits/sec                  receiver

iperf Done.

从输出来看,我们可以看到,iperf3 以最高速度(默认 TCP 连接)测试了我本地两个点之间的带宽,测试了 10 秒,平均速度为 382 Mbits/sec,也就是 47.75 Mbytes/sec,我测试的时候是 WiFi 网络,这个速值基本反映了我本地网络的带宽。

更多的应用场景

测试本地公网速率
你可以用别人提供的 iperf3 服务器来测试,比如 Public iPerf3 servers,其实这就相当于开头提到的 SpeedTest 了。

** 测试 Kubernetes 各个节点之间的网速
这个需求挺常见的,尤其是有可能遇到 Kubernetes 内网络问题的时候,毕竟你部署的地方,不知道会不会有节点之间网速问题。所以你可以直接看这个项目 Pharb/kubernetes-iperf3。

它的原理,可以简单描述下:

将 iperf3 server 部署在 master 节点上;
将 iperf3 client 部署在所有节点上,包括 master,并保持空转(即睡眠状态);
最后用 kubectl 获取所有的 client,依次执行测试命令;

其它

测试 VPN、P2P 网络等,另外,它还可以测试 UDP、SCTP 协议。

相信你也应该看出来了,它也非常适合于虚拟网络的测试,因为这样可以测试虚拟之后带来的网络损耗等问题。

0

评论 (0)

取消