This tool has to configure a server side and a client side to complete a test. It can test from either client side or server side, also can test from both direction. Both TCP and UDP testing is supported. Lots of options give this tool very powerful and accurate network speed testing function.
1. Download and Install iperf3
The main download site is from https://iperf.fr/iperf-download.php.
Ubuntu:apt install iperf3
Centos:yum install iperf3
Windows:
apt install iperf3
Centos:
yum install iperf3
In Linux, issue command iperf3 to run. In Windows, unzip the file and place it in a folder , run it from cmd window using administrator privilege.
2. Start it as server
Running command ‘iperf -s’ from command line as iperf server (ip address 100.99.136.66).
C:\Tools>iperf -s
————————————————————Server listening on TCP port 5001TCP window size: 8.00 KByte (default)————————————————————[188] local 100.99.136.66 port 5001 connected with 100.94.200.14 port 48410[ ID] Interval Transfer Bandwidth[188] 0.0-10.0 sec 121 MBytes 101 Mbits/sec
Server Mode:iperf3 -s -p <port number>
iperf3 -c <Server IP> -p <Server Port> -t <Test time, second> -P <Parallel stream numbers> -R <Test From Server to Client(Download), with -R, testing is from Client to Server(Uplod)>
C:\tools>iperf -c 100.99.136.66
————————————————————Client connecting to 100.99.136.66, TCP port 5001TCP window size: 8.00 KByte (default)————————————————————[1912] local 100.94.200.14 port 48410 connected with 100.99.136.66 port 5001[ ID] Interval Transfer Bandwidth[1912] 0.0-10.0 sec 121 MBytes 101 Mbits/sec
4. Send 100MBytes data for testing
5. Bi-direction test
iperf -c 100.99.136.66 -d
6. Parallel TCP connections
Add caption |
7. Other Parameters
iperf -c 12.12.12.12 -p 2233 -i 1 -t 60 -f M
p:set specific server port, which should be same as server side’s settings.
i:reporting intervals
t:length of test
f:change number output format
Other parameters can be found from https://iperf.fr/iperf-doc.php.
iperf3 –help
C:\temp\iperf-3.1.3-win64>iperf3 --h
Usage: iperf [-s|-c host] [options]
iperf [-h|--help] [-v|--version]
Server or Client:
-p, --port # server port to listen on/connect to
-f, --format [kmgKMG] format to report: Kbits, Mbits, KBytes, MBytes
-i, --interval # seconds between periodic bandwidth reports
-F, --file name xmit/recv the specified file
-B, --bind <host> bind to a specific interface
-V, --verbose more detailed output
-J, --json output in JSON format
--logfile f send output to a log file
-d, --debug emit debugging output
-v, --version show version information and quit
-h, --help show this message and quit
Server specific:
-s, --server run in server mode
-D, --daemon run the server as a daemon
-I, --pidfile file write PID file
-1, --one-off handle one client connection then exit
Client specific:
-c, --client <host> run in client mode, connecting to <host>
-u, --udp use UDP rather than TCP
-b, --bandwidth #[KMG][/#] target bandwidth in bits/sec (0 for unlimited)
(default 1 Mbit/sec for UDP, unlimited for TCP)
(optional slash and packet count for burst mode)
-t, --time # time in seconds to transmit for (default 10 secs)
-n, --bytes #[KMG] number of bytes to transmit (instead of -t)
-k, --blockcount #[KMG] number of blocks (packets) to transmit (instead of -t or -n)
-l, --len #[KMG] length of buffer to read or write
(default 128 KB for TCP, 8 KB for UDP)
--cport <port> bind to a specific client port (TCP and UDP, default: ephemeral port)
-P, --parallel # number of parallel client streams to run
-R, --reverse run in reverse mode (server sends, client receives)
-w, --window #[KMG] set window size / socket buffer size
-M, --set-mss # set TCP/SCTP maximum segment size (MTU - 40 bytes)
-N, --no-delay set TCP/SCTP no delay, disabling Nagle's Algorithm
-4, --version4 only use IPv4
-6, --version6 only use IPv6
-S, --tos N set the IP 'type of service'
-Z, --zerocopy use a 'zero copy' method of sending data
-O, --omit N omit the first n seconds
-T, --title str prefix every output line with this string
--get-server-output get results from server
--udp-counters-64bit use 64-bit counters in UDP test packets
[KMG] indicates options that support a K/M/G suffix for kilo-, mega-, or giga-
iperf3 homepage at: http://software.es.net/iperf/
Report bugs to: https://github.com/esnet/iperf
C:\temp\iperf-3.1.3-win64>
YouTube Video:
you might want to mention iperf 2 as well. It’s more feature rich than iperf 3 and has a multi-threaded design for better perfomance.
https://sourceforge.net/projects/iperf2/