最近对网络方面的事又是心血来潮,在这里介绍一个用于测试内网带宽的工具 iperf 。
下载
官网下载就好:https://iperf.fr/
下载后是一个压缩包,里面是一个 exe 文件和一个 dll 库文件,直接运行 exe 文件即可,注意 iperf 是命令行工具。
测试
首先,内网中两个主机之间的数据传输带宽是受整个链路上每一个点所影响的,例如两个网卡、网线、中间的路由器或者交换机,注意不要顾此失彼了。
iperf 测试的原理很简单,两个主机一个做服务端一个做客户端,客户端不停的用 TCP 或者 UDP 给服务端发送数据,然后两端一起在数据传输过程中统计带宽即可。
iperf 的参数比较简单,可以直接用 ./iperf.exe -h
查看,下面简要介绍一下服务端和客户端的常用参数。
服务端
iperf -s options
,-s
表示以服务端模式运行,后面接一些参数。
参数 -p port
表示服务端监听的端口。参数 -i sec
表示每隔多少秒打印一次带宽统计。
所以我们服务端程序可以这样运行:./iperf.exe -s -p 12321 -i 1
。
如图,此时已经开始监听。
客户端
iperf -c host options
,-c
表示以客户端模式运行,后面接要连接的服务端的 IP 地址,后面接一些参数。
和之前一样,参数 -p port
表示要连接的服务端的端口。参数 -i sec
表示每隔多少秒打印一次带宽统计。
所以我们的客户端程序可以这样运行:./iperf.exe -c 192.168.1.2 -p 12321 -i 1
。
连接上后客户端和服务端会同时打印自己的统计信息,默认测试 10 秒,可以通过参数调整,打印如下:
可以看到,带宽基本在 100 Mbits/sec,看来还是垃圾路由器拖了后腿了,我的老路由器 LAN 口都是 100M 的,顺便吐槽这些路由器的商家,WAN LAN 口带宽藏在犄角旮旯里,把数值最大的无线速率标在最显眼的地方,我难道要局域网里俩无线设备传输数据才能跑到这个值么。