Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Iperf3

iperf3 measures the maximum achievable bandwidth between two machines. Unlike most tools in this guide, it has to run on both ends: one side acts as a server, the other connects to it as a client. Run it when you need to know whether the link itself is slow or the application on top of it is.

Availability

PlatformHow to get it
Windows (Cygwin)not packaged for Cygwin
Windows (native)unofficial builds from iperf.fr or winget / chocolatey
Fedorasudo dnf install iperf3
Ubuntu / Debiansudo apt install iperf3

Examples

  • On the server side (listens on TCP/UDP port 5201 by default, so open that port in the firewall):
iperf3 -s
  • On the client side, run a 10 second TCP throughput test:
iperf3 -c <server IP>
  • Measure the reverse direction (server sends, client receives) without swapping roles. Asymmetric links are common, so test both directions:
iperf3 -c <server IP> -R
  • Use 4 parallel streams for 30 seconds. Parallel streams do a better job of saturating high-bandwidth, high-latency links:
iperf3 -c <server IP> -P 4 -t 30
  • UDP test at a fixed 100 Mbit/s rate. The report includes jitter and packet loss, which TCP tests hide:
iperf3 -c <server IP> -u -b 100M
  • Machine-readable output for graphing later:
iperf3 -c <server IP> --json > result.json

Public Servers

When you do not control the far end, iperf3serverlist.net keeps a list of volunteer-run public servers.