iperf

Run on server

iperf -s -i 1 # (older versions support also option -m)

(on linux you should disable the firewall or allow connections to port 5001 UDP/TCP -- on windows you'll be prompted to allow iperf)

Run on client

first run this (replace 1.2.3.4 with the IP of the server)

iperf -i 1 -c 1.2.3.4 -r

To get first the client ---> server speed and THEN the server ---> client speed

Then run this

iperf -i 1 -c 1.2.3.4 -d

To get both speeds for SIMULTANEOUS transfer client <---> server

(note that the output of iperf when using -d is confusing -- you need to be noting the ids at the start of each line to know if the measurements refer to client-->server or server-->client)

Things that if you see may indicate problems:
  1. A warning like this "Path MTU Discovery may not be enabled"
  2. MTU that is not close to 1500 bytes

Re-run on server in UDP mode

iperf -s -u -i 1

Re-run on client in UDP mode

iperf -c 1.2.3.4 -u

iperf -c 1.2.3.4 -u -r # to test the reverse path

iperf -c 1.2.3.4 -u -b90m # 90m = 90Mbits/sec

iperf -c 1.2.3.4 -u -b90m -r

iperf -c 1.2.3.4 -u -b90m -d

And look for any packet loss or excessive jitter (variation in the time it takes for packets to arrive at the destination).

------------------------------------------------------------
Server listening on TCP port 5001
TCP window size: 85.3 KByte (default)
------------------------------------------------------------
Client connecting to IP.OF.SER.VER, TCP port 5001
TCP window size: 16.0 KByte (default)
------------------------------------------------------------
[ 5] local IP.OF.CLI.ENT port 35726 connected with IP.OF.SER.VER port 5001
[ 5] 0.0-10.0 sec 1.12 MBytes936 Kbits/sec
# client ---> server
[ 4] local IP.OF.CLI.ENT port 5001 connected with IP.OF.SER.VER port 1640
[ 4] 0.0-10.1 sec 74.2 MBytes 61.7 Mbits/sec
# server ---> client

Other options

-p changes the TCP/UDP port from the default 5001. You must specify it on both sides.
-t sets the test duration (default is 10 secs) (sec)
-i sets the interval between periodic reports (sec)
-r/-d if you don't use them you only get speeds for client ---> server transfers

This topic: KnowledgeBase > IperfLanSpeedMeter
Topic revision: 04 Mar 2022, NickDemou
Copyright © enLogic