iperf——局域网速度测试的方便工具

发布日期:分类:智能硬件 & IOT iperf——局域网速度测试的方便工具有3条评论
时效性提醒:本文首次编写发布于6年前。

最近开始折腾路由器,这种常见的小东西却每台都是“麻雀虽小,五脏俱全”,运行着Linux而又有着和通常PC大不一样的特殊硬件,是我们平时接触最多也是最有趣的一种嵌入式设备。简单粗暴的SPI Flash能让我们逐字节的了解设备底层的真是原理,而openwrt的SquashFS + JFFS2 Overlay的文件系统结构,又能让我们感受到linux虚拟文件系统的独特魅力,自然是十分有趣的。

回归正题,如今测试广域网的网速已是一件十分方便的事情,直接speedtest.net即可。而有时需要测试局域网中的速度时,使用广域网的测试服务器会受制于宽带的速度,所以往往只能用传文件这种原始且麻烦的方法。其实,局域网也可以有更准确且便捷的方法——既然没有测速服务器,那我们就自己建一个。

而iperf就是用来作这件事情的,它是一种linux下的C/S架构的网络带宽测试工具,各大发行版的软件源中都有,甚至包括openwrt以及termux/neoterm,以在路由器(不过由于多数路由器的CPU比较弱鸡,所以不建议在路由器上使用)和Android手机上运行。而Android上甚至还有专门的包含iperf的app,十分方便。

有一点值得注意的是,iperf分为iperfiperf3两个版本,这两个版本各自的Server和Client不互相兼容,建议使用iperf3,更加好用一些。

使用方法

iperf3的用法十分简单,首先在一台设备上启动服务端:

iperf3 -s

若要作为一个daemon启动以保持后台运行,可以加入-D参数。

之后,另一台设备上运行客户端,连接服务端即可测试其之间的连接速度:

iperf3 -c <server_ip>

输出类似这样:

$ iperf3 -c 192.168.1.128
Connecting to host 192.168.1.128, port 5201
[  5] local 192.168.1.247 port 38736 connected to 192.168.1.128 port 5201
[ ID] Interval           Transfer     Bitrate         Retr  Cwnd
[  5]   0.00-1.00   sec   113 MBytes   945 Mbits/sec    0    428 KBytes       
[  5]   1.00-2.00   sec   111 MBytes   934 Mbits/sec    0    450 KBytes       
[  5]   2.00-3.00   sec   112 MBytes   937 Mbits/sec    0    450 KBytes       
[  5]   3.00-4.00   sec   111 MBytes   934 Mbits/sec    0    482 KBytes       
[  5]   4.00-5.00   sec   112 MBytes   937 Mbits/sec    0    505 KBytes       
[  5]   5.00-6.00   sec   112 MBytes   942 Mbits/sec    0    505 KBytes       
[  5]   6.00-7.00   sec   111 MBytes   932 Mbits/sec    0    505 KBytes       
[  5]   7.00-8.00   sec   112 MBytes   937 Mbits/sec    0    505 KBytes       
[  5]   8.00-9.00   sec   112 MBytes   940 Mbits/sec    0    505 KBytes       
[  5]   9.00-10.00  sec   111 MBytes   930 Mbits/sec    0    526 KBytes       
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate         Retr
[  5]   0.00-10.00  sec  1.09 GBytes   937 Mbits/sec    0             sender
[  5]   0.00-10.00  sec  1.09 GBytes   934 Mbits/sec                  receiver

iperf Done.

这样就可以反映出设备间真实的连接速度,其实也许你已经注意到了,iperf不仅可以在局域网中用,也可以在广域网中的服务器上运行服务端,不过由于一般都直接用httpd之类的服务测速度了,所以不是很常用。

后记

其实除了iperf,还有更加简单粗暴的方法,即使用Netcat当作透传的服务端和客户端,用dd来发送数据并统计速度:

Server:
nc -vvlnp <port> > /dev/null

Client:
dd if=/dev/zero bs=1M count=1K | nc -vvn <server_ip> <port>

不过这样只能测试Client -> Server单向的速度,且比较简陋。

作者:WuSiYu

学生,Web开发者,智能硬件&IOT爱好者

3条评论

  1. 您好!这里是本地磁盘ww,窝的blog换惹新的域名辣,http://ohayou.aimo.moe/,新的一年里也请多多关照的说!谢谢!!

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注