iperf3
TLDR
Start a server
SYNOPSIS
iperf3 [-s|-c host] [-p port] [-t time] [-P parallel] [-u] [-b bandwidth] [-R] [options]
DESCRIPTION
iperf3 is a network throughput testing tool that measures maximum TCP and UDP bandwidth performance. It creates data streams between a server and client to measure achievable network speed, useful for troubleshooting, benchmarking, and capacity planning.
A typical test requires running iperf3 in server mode on one machine and client mode on another. The client initiates the test, and both sides report the measured throughput. By default, tests run for 10 seconds with TCP.
TCP mode measures bulk transfer speed, limited by congestion control, RTT, and link capacity. UDP mode with -b sets a target send rate, useful for testing whether a network can sustain specific bandwidth without packet loss.
Parallel streams (-P) can reveal aggregation limits and help saturate high-bandwidth links where a single stream can't achieve full capacity. The reverse mode (-R) tests upload by having the server send to the client.
JSON output enables automated testing and integration with monitoring systems. Server can run as a daemon for ongoing availability.
PARAMETERS
-s, --server
Run in server mode.-c, --client host
Run as client, connect to server.-p, --port port
Server port (default: 5201).-t, --time n
Test duration in seconds (default: 10).-P, --parallel n
Number of parallel streams.-u, --udp
Use UDP instead of TCP.-b, --bandwidth n[KMG]
Target bandwidth (UDP default: 1 Mbit/s).-R, --reverse
Run in reverse mode (server sends, client receives).--bidir
Bidirectional test simultaneously.-i, --interval n
Seconds between periodic reports.-n, --bytes n[KMG]
Number of bytes to transmit.-J, --json
Output in JSON format.-l, --length n[KMG]
Buffer/packet size.-w, --window n[KMG]
Socket buffer size.-B, --bind addr
Bind to specific address.-4, -6
Use IPv4/IPv6 only.-D, --daemon
Run server as daemon.--logfile file
Write output to file.
CAVEATS
Not compatible with iperf2 protocol. Server port (5201) must be accessible through firewalls. Tests consume significant bandwidth - don't run on production networks unexpectedly. Single server handles one client at a time. Results affected by CPU, memory, and network interface capabilities.
HISTORY
iperf3 was developed by ESnet (Energy Sciences Network) at Lawrence Berkeley National Laboratory, released around 2014 as a rewrite of the original iperf. The rewrite improved the codebase, added features like JSON output and bidirectional testing, and fixed protocol limitations. It has become the standard network throughput testing tool.
SEE ALSO
iperf(1), netperf(1), nuttcp(8), speedtest-cli(1)


