← Downloads

iperf3 3.18

Package v3.18 x86_64 TAR.GZ August 20, 2025

Measures achievable network throughput between two hosts by generating traffic, reporting bandwidth, retransmits, and jitter for TCP and UDP.

Download TAR.GZ Project website ↗

Download Mirrors

Mirror Region Download
ESnet (Official) Primary Global Download
GitHub Releases Global Download

iperf3 answers “how fast is the network between these two machines,” which is different from what a speed test website tells you and usually more relevant.

Running it

One side is a server, the other a client. Both need iperf3.

# On the server
iperf3 -s

# On the client
iperf3 -c server.local
iperf3 -c server.local -R          # reverse, tests download
iperf3 -c server.local -t 30       # 30 seconds
iperf3 -c server.local -P 4        # 4 parallel streams

Reading the output

[ ID] Interval        Transfer     Bitrate         Retr
[  5] 0.00-10.00 sec  1.09 GBytes  938 Mbits/sec   0

938 Mbits/sec on a gigabit link is about right; protocol overhead accounts for the rest.

Retr is retransmits, and it is the column people ignore. Non-zero means packets are being lost and resent, which points at a cable, a duplex mismatch, or a saturated buffer. High throughput with high retransmits is a link that is working hard to look fine.

Check the interface counters alongside it with ethtool.

Parallel streams

iperf3 -c server.local -P 8

A single TCP stream is limited by the bandwidth-delay product, so on a high-latency link one stream cannot fill the pipe regardless of capacity. Parallel streams show what the link can actually carry.

If one stream is much slower than eight, latency is your constraint rather than bandwidth.

UDP, for jitter and loss

iperf3 -c server.local -u -b 100M

TCP hides loss by retransmitting. UDP does not, so this is how you measure jitter and packet loss, which is what matters for voice and video rather than raw throughput.

What it does not tell you

It measures the path between two machines you control. It says nothing about your internet connection unless the other end is on the internet, and a public iperf3 server is measuring a path you do not control end to end.

For diagnosing a slow LAN, this is the right tool. For diagnosing a slow internet connection, look at bufferbloat as well as throughput, because latency under load is usually the real complaint.

Firewall

The server listens on TCP 5201 by default. Open it or the client just times out:

sudo ufw allow 5201/tcp

Verify Your Download

Source releases on GitHub are published with checksums.