其他分享
首页 > 其他分享> > 电脑测速软件_iPerf3 搭建局域网内部测速环境

电脑测速软件_iPerf3 搭建局域网内部测速环境

作者:互联网

这篇文章主要来简单写写局域网里怎么测速,比如日常换了个新路由,想要测试一下无线性能和覆盖之类的情况。

外网测速这一块,市面上的各类软件已经是数不清了,最有名的应该就是 Ookla 出的 Speedtest 了,各种平台都有对应客户端,使用起来极其方便,结果输出简单直接。

但局域网这一块就相对来说麻烦一点了,尤其是服务器端的搭建,本文说说测速工具之一的iperf的配置。


实际对于有线连接,Windows 系统自带的 SMB 共享就是最简单的测速工具,也是最可靠的,能直接反应实际应用中的传输速度。找两台 pc,一台开共享,另一台直接拷贝个文件过去就能测出来有线传输的速度,一般来说内网千兆能实际跑到 980Mbps 左右,如下图:

6c1989d054f6d593a39e656a57074eb9.png

有群晖这类 NAS 的话,也是一样的,直接拷文件,看速度就行。

注意此方法仅限于收发双方都是有线连接的情况,如果是无线连接的情况,那要考虑各种损耗因素。


特别提示:安卓和 iOS 系统,不要和 windows 之间用 SMB 传文件来当做测速!

SMB 在非 windows 平台上有很大的效率问题,不同的 app 里能跑出来的速度都不一样,毫无参考性。比如说 nPlayer 这款很有名的播放器,不管是 iOS 还是安卓,我测试下来都只能最高跑到 60M/s 出头的速度,但 iperf 测试会发现实际带宽远不止这点。


当然了,有人可能会觉得这种测试方法太 low 了,想用高级一点的软件,这就是本文要说的内容了,主要来说一下 iperf3 这个软件的使用。

iperf 是一个有很多年历史的网络测试工具了,目前最新版本是 iperf3。

官网:https://iperf.fr/iperf-download.php

各种系统平台全都支持,包括几大主流的 Linux 发行版。

Linux 这边,一般情况下系统默认源里就会带有 iperf3,这里以 Debian 系统作为例子,要安装的话只需要一句:

apt install iperf3

然后 iperf3 就装好了,安装之后,可以任意选择要作为服务器端还是客户端,一般作为服务器端的话,则运行:

iperf3 -s

程序会自动监听默认的 5201 端口,防火墙注意也要放行此端口,这样服务器端就准备好了。

-s 表示运行在服务器模式下,还可以用-p 指定监听其他端口,-D 参数则可以后台运行。比如想自定义监听 8888 端口,并且后台运行,则命令如下:

iperf3 -s -p 8888 -D

iperf 实际还有很多可以额外指定的参数,这个具体自己参考网上资料,也不一个个解释了。

如果有 Docker 的,还能用 Docker 运行,只需要一句命令,即可自动拉取镜像并运行,傻瓜式完成服务器端搭建:

docker run --restart=unless-stopped --name=iperf3 -d -p 5201:5201/tcp -p 5201:5201/udp mlabbe/iperf3

Windows 系统这边的服务器搭建是一样的的办法,先去下载对应的版本,这年头一般也就是直接选 64 位最新版的 3.1.3 了。

5d6c16a014af58b5b123e08681827184.png

下载后解压,进入文件夹后会发现只有这俩文件:

248351a4e6ac670884a115bb0dd94496.png

不要点 exe 运行(实际点了也不会有任何效果),而是在程序文件所在的文件夹空白处,按住键盘的 shift 键,同时单击鼠标右键,选择在此处打开 PowerShell 窗口,也就是命令行窗口,要注意的是由于 PowerShell 的安全限制,命令前面要加上.,也就是变成:

.iperf3 -s

后面跟的附加参数之类都是一样的用法,不再赘述。不过个人感觉是 windows 主机作为服务端效率似乎不高,更推荐 linux 作为服务端。

搭完了服务端,最后就是用客户端来测速了,其实区别就是输的指令不同,客户端最简单的测速指令就是输入:

iperf3 -c 192.168.2.165

IP 地址换成自己服务器端的,PowerShell 里运行的话记得前面加.,然后就可以看到测速结果了,如下图:

86bc55d5dbb8ab458e398e1376174681.png

默认是客户端发送,服务器端接收。也可以反过来,让服务器端发送,客户端接收,那就是后面跟随-R 参数,注意 R 要大写:

iperf3 -c 192.168.2.165 -R

默认单线程压力可能会不够,可以加-P 参数指定多线程,注意是大写的 P,一般可以设定 5-10 线程:

iperf3 -c 192.168.2.165 -P 5

客户端默认只会显示发送的成绩,接收的成绩在服务器端那边显示,显然看起来不方便,于是还可以跟随--get-server-output参数,让客户端显示服务器端的信息:

iperf3 -c 192.168.2.165 --get-server-output

效果如下图,第二段的 Server output 部分就是服务器端的接收信息:

1c6495f327a6d6a470a48b4f9297b439.png


最后再来说一下无线速率测试,也就是移动端 app 的使用,支持 iperf 的 app 有很多,我个人一般使用的是 he.net - Network Tools 这一款软件,安卓和 IOS 平台都支持,官网为 http://networktools.he.net/。

实际这是一个测试网络的综合型工具,里头各种功能都有,iperf 只不过是其中一项。软件的用法也很简单,菜单列表里直接选择 iperf3。

秒表图表是设定数据汇报时间,也就是每隔 N 秒显示一次速率数据。

第二个芯片图标是设定测试数据包大小,单位可以是 K 或者 M,10G 数据包就可以直接填 10240M。

最后输入服务器端的 ip 即可进行测试:

aed329a3ea192c9c01ac11e3e0d28159.png


0bb1c1d2ad0eba08a3e3134e016faa23.png

特别要注意的是无线网络的速率是会有损耗的,不是握手显示多少速率就能跑多少。比如上图是两个手机不同的握手速率,分别为 433Mbps 和 1733Mbps,并不代表就能跑到这么高的速率。

实际能跑到的峰值速度一般是 WiFi 握手速率的 70% 左右,也就是手机单天线 433Mbps 实际能跑到 300Mbps 就算是到顶了,双天线 866Mbps 一般是 600Mbps 就封顶了。

最后还要说的是测速一概仅供参考,不要盲目迷信测速结果,认为测速成绩没跑满就是设备或路由有问题。

标签:iPerf3,服务器端,iperf3,局域网,5201,iperf,测速,客户端
来源: https://www.cnblogs.com/iangel/p/15131188.html