今天给大家分享一款本地测速平台“iperf3”。
分享这款本地测速平台主要有以下几个原因: - Speedtest各地测速不够稳定,体验不好;
- Speedtest开源本地服务端搭建相对麻烦,基于http测速不够准确;
- 大路推荐的iperf3搭建简单,老少皆宜;
- 支持TCP/UDP测速稳定更有参考价值;
- 本地测速服务器更能考验路由器性能。
所以本文分两个部分:服务端和客户端。
实际iperf3的服务端和客户端都是一样的,基于不同的参数调用不同的属性和身份使用。 对,iperf3本质就是个命令行工具,可以在Windows上运行,也可以在linux或Mac上运行,当然不同平台需要下对应平台压缩包。 同时客户端不限于Windows,可以支持iOS和安卓平台,这点很给力(•́⌄•́๑)૭✧。 也就是作为手机端,也可以方便的使用。 那么iperf3到底是什么?
Iperf3就一个功能,测速,支持: - 单线程,多线程,支持TCP或UDP协议测速;
- 可以测试下行速率或上行速率或者双向测试;
- 支持和可玩性非常高,也支持IP v6等。
下载地址:
https://iperf.fr/iperf-download.php
https://files.budman.pw/
开启服务:
上面这个命令就是默认基于服务端启动,默认为TCP协议,默认端口5201,使用默认IP地址。 如果测试UDP协议,需要“-u”,如下: 但是使用UDP协议启动后,就无法使用TCP协议测速了,需要重新开,算一个小缺点。 但是你也别指望人家会更新或者升级该功能,虽然它支持IP v6,但是最近的更新是2015年的。 我们输入: 可以获得帮助信息,获得更多使用参数的介绍和示例。
如果需要退出,直接关闭命令行窗口即可。
开始测速
.\iperf3.17_64\iperf3.exe -c 192.168.0.112
更多参数:
iperf3.exe -c 192.168.8.8 -i 1 -t 10 -b 2M
我们参考下参数的释义就明白了: - -i 设定输出间隔时间,单位为秒,比如-i 1 就是每隔1秒打一次包;
- -t 设定测试时间,空格后加数字,单位为秒,比如-t 10 就是打包10秒;
- -b 设定一个传输速度,这里默认单位是Mbit/s
- -P 指定进程数(或者说线程数),如果设置为5,相当于建立5个并发连接同时打包。
- 注意:以上参数要区分大小写,比如-p就没法用,必须是-P。
像我上面的参数就是以2Mbps打包,因为这里的Mbit/s可以粗暴理解为Mbps,反正换算比例是8,即2Mbit=0.25MB/s,也就是256KB/s,打这种小包也是很有意义的。 因为一般的家用路由器并不怕你传大文件,就怕特么你发一堆小包,要排队啊,会堵死的。 这个跟我们在Windows中拷贝粘贴小文件传输一样,要排队,速度反而慢。 上面这个参数测试,基本刷一下就出来了,如果我们把-P赋值10线程,你会发现半天没反应。 如上图,直接模拟10个线程同时打包,甚至可以模拟100个线程,相当于模拟了100个PC,每个PC同时发1个包,这会给路由器或者交换机造成很大的负担。 你可以发现上面截图中,第一个都是1.38Mbytes,后面就降到了1.25Mbytes了。 如果默认参数,就是发大包,如下图,通常在有线测速时都还正常: 而在无线中使用该参数打包测速,效率会相对低下,因为默认为单线程打包。 在无线终端测速,建议使用2个线程或者5~10个更好,才能体现速度。 甚至一些支持iperf3打包测试的APP默认最低就是10线程。 毕竟我们正常的下载通常都是基于多线程。 当然如果我们有NAS,默认使用该参数即可测试家里有线或者无线速率的传输基准速度。 这个完全不受制于外网测速服务器的带宽。 但是你家里的网线质量不好,往往就会在本地测速中体现出来。 通常我们家里的普通网线千兆能测速在900Mbps以上;通常要达到AWG24美规的网线可以跑到950Mbps左右,当然这个也要看路由器和中间的链路设备;如果排除这个,使用屏蔽线全链路也实现屏蔽接地,甚至可以打包达到980Mbps以上。 其次差异不算很大,但是往后几十Mbps的提速,建设成本将大大的增高。 |