The Problem with Traditional Speed Tests

Many people use services like speedtest.net or fast.com to test their network / WiFi performance. However, there’s a fundamental bottleneck: these tests measure your internet speed combined with WiFi speed, not WiFi performance alone.

For example, if you want to accurately measure your WiFi throughput, you need to test within your local network, eliminating the internet connection as a variable.

The Solution: iperf3

The iperf3 tool is the industry standard for testing network performance. It allows you to measure bandwidth between two points on your network without internet dependency.

Setting Up iperf3 Server

Using Proxmox LXC

You can run iperf3 on any device within your network. But as I am running proxmox for my homelab setup, the most efficient approach is to spin up a lightweight Linux LXC container such as Alpine.

Steps:

  • Use Proxmox helper scripts to quickly deploy an Alpine LXC
  • If you use VLANs, in the network settings, select the VLAN tag of you want to test on
  • Note the IP address assigned to the container

Installing and Running iperf3

Update the system and install iperf3. On Alpine it’s done using apk:

apk update && apk upgrade
apk add iperf3

Start the iperf3 server on the default port (5201):

iperf3 -s -p 5201

The server will now listen for incoming connections and display throughput results

Testing from Clients

Linux/macOS/Windows

Install iperf3 on your client device Run a basic test to the server:

iperf3 -c SERVER_IP -p 5201

For reverse mode (test upload speed):

iperf3 -c SERVER_IP -p 5201 -R

For parallel streams (more realistic WiFi testing):

iperf3 -c SERVER_IP -p 5201 -P 4

Mobile Clients

Android:

iOS:

Understanding Results

  • iperf3 will display throughput in Mbits/sec or Gbits/sec, for example:
[ ID] Interval           Transfer     Bandwidth
[  4]   0.00-1.00   sec   283 MBytes  2.38 Gbits/sec
[  4]   1.00-2.00   sec   283 MBytes  2.37 Gbits/sec
[  4]   2.00-3.00   sec   283 MBytes  2.37 Gbits/sec
[  4]   3.00-4.00   sec   283 MBytes  2.37 Gbits/sec
[  4]   4.00-5.00   sec   280 MBytes  2.35 Gbits/sec
[  4]   5.00-6.00   sec   281 MBytes  2.36 Gbits/sec
[  4]   6.00-7.00   sec   283 MBytes  2.37 Gbits/sec
[  4]   7.00-8.00   sec   283 MBytes  2.37 Gbits/sec
[  4]   8.00-9.00   sec   283 MBytes  2.37 Gbits/sec
[  4]   9.00-10.00  sec   283 MBytes  2.37 Gbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bandwidth       Retr
[  4]   0.00-10.00  sec  2.76 GBytes  2.37 Gbits/sec    0             sender
[  4]   0.00-10.00  sec  2.76 GBytes  2.37 Gbits/sec                  receiver
  • Compare results across different locations in your home to identify WiFi dead zones
  • Expected results for different WiFi standards:
    • WiFi 5 (802.11ac): 300-900 Mbps
    • WiFi 6 (802.11ax): 600-1200+ Mbps
    • WiFi 6E/7: 1000-2400+ Mbps (with compatible hardware)