问题及解决方法

下载

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

Windows端

  1. 不管是使用CMD还是Powershell,都必须要以管理员身份运行,否则无法正常使用
  2. Windows的%systemroot%目录是C:\Windows\System32

运行服务端

iperf3是一款c-s软件,即client-server软件,分为客户端和服务端,服务端需要一直运行,客户端才能够正常使用。

运行与退出

最常见的运行服务端的命令是:

iperf3 -s
# 这里的s就是server的意思 默认监听5201端口

Ctrl+C 关闭服务端

仅运行一次就退出
iperf3 -s -1
# 运行一次后自动退出服务端

指定监听端口

如果需要指定特定的监听端口,我们可以使用-p参数,这里的p就是port的意思。

iperf3 -s -p 7777
# 手动指定监听端口为7777

守护进程模式

如果需要服务端在后台运行而不被关闭,可以尝试使用守护进程模式。

Daemon()程序是一直运行的服务端程序,又称为守护进程。通常在系统后台运行,没有控制终端,不与前台交互,Daemon程序一般作为系统服务使用。Daemon是长时间运行的进程,通常在系统启动后就运行,在系统关闭时才结束。一般说Daemon程序在后台运行,是因为它没有控制终端,无法和前台的用户交互。Daemon程序一般都作为服务程序使用,等待客户端程序与它通信。我们也把运行的Daemon程序称作守护进程。
iperf3 -s -D
# 注意D一定要大写

运行客户端

运行客户端的前提是有服务端在运行且我们知道服务端的IP并能正常访问服务端(有时候可能会被防火墙或其他杀软拦截)。

因为外部设备所限,接下来小七同时在本机上运行服务端和客户端进行测速示例。

最简单的使用方法就是:

iperf3 -c ServerhostIP
# hostIP为服务端的IP地址

屏幕截图 2023-03-21 231358.png

自定义测试时间和输出格式

iperf3 -c localhost -i 2 -t 30 --logfile output.log
Copy

对于这一条指令,我们对后面的参数进行逐个解析。

  • -i 2的作用是每2秒输出一次测试结果,数字2可以按照需要改成不同的数字
  • -t 30的作用是连续测试30s的时间
  • --logfile output.log的作用是将测试的结果输出到当前目录的output.log文件里面,需要注意的是此时不会在控制台上输出测试信息

如果需要指定路径输出json文件,我们只需要使用-J并在文件名前面指定路径即可:

iperf3 -c localhost -i 2 -t 30 -J --logfile C:\Users\Mr7th\Desktop\output.log
# 以Json格式将测试结果文件输出到桌面

使用反转模式(Reverse)

默认情况下我们进行测试,都是客户端发送数据,服务器端接收数据,这种情况下相当于只对上行带宽进行了测试,如果我们需要检测下行带宽,只需要使用-R命令,即可变为客户端接收,服务器端发送。