When network performance issues strike, everyone looks to the IT team for answers. Users report sluggish applications, executives want immediate fixes, and you’re caught in the middle trying to pinpoint the cause. Is your ISP delivering on their promises? Is there a hidden bottleneck in your network infrastructure? Or is that new application consuming more bandwidth than expected? What you need is concrete data, and that’s exactly what iPerf bandwidth testing gives you.
In our previous blog, we covered what iPerf is and its value for network testing. Now let’s get hands-on with the practical stuff – the commands, troubleshooting techniques, and when to reach for purpose-built testing tools that make your job easier.
What Exactly is iPerf and How Does it Work?
iPerf is a command-line tool designed for network performance measurement. It works on a client-server architecture. One machine sits there waiting for connections (the server), while another pumps data across the network (the client).
What makes iPerf so much better than those consumer-grade speed test websites is that it works between any two points in your network. Need to test if that fancy new fiber link between buildings is actually delivering what you paid for? iPerf’s got your back.
The tool generates both TCP traffic (for testing web browsing, file transfers, and other reliable connections) and UDP traffic (for simulating voice and video streams). Beyond just raw bandwidth, iPerf also measures jitter and packet loss – critical metrics when you’re troubleshooting why your VoIP calls sound like they’re coming from underwater. This shows you everything happening on your network, not just peak speeds during ideal conditions.
Differences Between iPerf2 and iPerf3
If you’ve used iPerf before, you might have stumbled across both version 2 and version 3. They’re not just sequential updates – iPerf3 was completely rebuilt from the ground up and is not backward compatible with iPerf2.
iPerf3 is the recommended choice for modern networks because it’s actively maintained, offers more detailed reporting options, and supports features like JSON output that make it easier to integrate with other systems. That said, you might still encounter iPerf2 on legacy systems or older network documentation.
Here’s what you need to know about the key differences:
Feature | iPerf2 | iPerf3 |
Default Port | 5001 | 5201 |
API | No API support | Library API available |
Codebase | Original | Complete rewrite |
Output Options | Basic | JSON output available |
Maintenance | Less active | Actively maintained |
Client/Server Results Exchange | Not supported | Supports results exchange between client and server |
Authentication | Not supported | Supports authentication |
Pro Tip:
The multithreading support in newer iPerf3 versions is crucial for testing high-speed networks. Early iPerf3 versions couldn’t use multiple CPU cores effectively, which meant your test results hit a CPU bottleneck before your network limits. NetAlly’s implementation in version 2.8 adds proper multithreading, letting you push throughput testing much higher. This is critical when you’re validating high speed links and don’t want false readings because your testing tool can’t keep up.
How Do You Install and Run an iPerf3 Test?
Getting iPerf3 up and running isn’t complicated. You need it installed on at least two devices, and you need to know a few basic commands. Here’s how to get started:
Step 1: Download/Install iPerf3
For Windows:
- Download the Windows binary from iperf.fr
- Extract the ZIP file to any folder you prefer
- Open Command Prompt and navigate to that folder
For Linux (Ubuntu/Debian/Mint):
- Download the Ubuntu binary from iperf.fr
- Launch a terminal
- Type: sudo apt-get install iperf3
For Linux (Fedora/Red Hat/CentOS/Rocky):
- Download the macOS binary from iperf.fr
- Launch a terminal
- Type: brew install iperf3
Step 2: Setting up the Server
On your server machine, run:
iperf3 -s
You’ll see output indicating the server is listening on port 5201. This means your server is ready to receive test traffic from clients.
Step 3: Running the Client Test
On your client machine, connect to the server:
iperf3 -c [server-ip]
Replace [server-ip] with your server’s actual IP address. This command runs a basic TCP test that measures throughput from client to server.
Step 4: Interpreting results
After the default 10-second test is completed, you’ll see output similar to this:

Key metrics to understand:
- Transfer: Total amount of data moved during the test
- Bitrate (Bandwidth): Average throughput achieved – this is your main performance metric
- Retr: Number of TCP retransmissions (high values indicate network problems)
- Jitter: Variation in packet arrival time (appears in UDP tests, lower values are better)
- Loss: Percentage of packets that failed to arrive (UDP tests only, should ideally be 0%)
What Are the Most Common iPerf3 Commands?
Basic testing is just the beginning. iPerf3 has a ton of options that let you customize tests for different scenarios:
Testing UDP Bandwidth (-u)
iperf3 -c [server-ip] -u -b 100M
Switches to UDP testing for streaming applications. UDP doesn’t automatically adjust like TCP, so you specify the target bandwidth you want to test.
Changing the Port (-p)
iperf3 -s -p 9000
iperf3 -c [server-ip] -p 9000
Uses a custom port when firewalls block the default 5201. Both server and client must use the same port.
Running a Test in Reverse (-R)
iperf3 -c [server-ip] -R
Flips the direction so the server sends data to the client. Handy for testing download performance instead of upload.
Setting the Test Duration (-t)
iperf3 -c [server-ip] -t 30
Runs a 30-second test instead of the default 10 seconds. Longer tests help smooth out network fluctuations.
Using Parallel Streams for Higher Performance Tests (-P)
iperf3 -c [server-ip] -P 4
Creates 4 parallel connections to fully utilize high-speed links. Essential for 10Gbps+ networks where single streams hit limits.
Additional Useful Commands
- Interval Reporting (-i): iperf3 -c [server-ip] -i 5 – Shows updates every 5 seconds during the test, helping spot intermittent issues that averages might hide.
- JSON Output (-J): iperf3 -c [server-ip] -J – Produces machine-readable results for easy integration with scripts and monitoring systems.
Quick Reference Table
Command | Description | Example |
-s | Run in server mode | Iperf3 -s |
-c | Run in client mode | Iperf3 -c 192.168.1.100 |
-p | Specify port | iperf3 -c 192.168.1.100 -p 9000 |
-t | Set test duration | iperf3 -c 192.168.1.100 -t 30 |
-i | Set interval reporting | iperf3 -c 192.168.1.100 -i 2 |
-R | Reverse direction | iperf3 -c 192.168.1.100 -R |
-u | Use UDP instead of TCP | iperf3 -c 192.168.1.100 -u |
-b | Set bandwidth target (UDP) | iperf3 -c 192.168.1.100 -u -b 50M |
-P | Parallel streams | iperf3 -c 192.168.1.100 -P 4 |
-J | JSON output format | iperf3 -c 192.168.1.100 -J |
The Limits of iPerf: When Do You Need a Professional Tool?
iPerf is an excellent tool for basic network testing, but it has important limitations in professional environments:
Command-Line Expertise Required
iPerf requires command-line knowledge that not all technical staff possess. This expertise barrier can limit who on your team can effectively run tests and interpret results.
No Historical Trending
iPerf only provides point-in-time measurements with no built-in capability to track performance over time or establish baseline metrics for comparison.
Limited Visualization Options
Using iPerf requires software installation and access to both endpoints of the connection you’re testing, which isn’t always feasible in complex networks or restricted environments.
No Layer 1/2 Insights
iPerf only tests at the transport layer, providing no visibility into physical or data link layer issues that might be causing performance problems. It can’t measure Wi-Fi specific metrics like signal strength, roaming performance, or RF interference.

This is where NetAlly’s purpose-built testing solutions come in with significant advantages:
- The Test Accessory provides a pocket-sized, dedicated iPerf server that eliminates software installation requirements and is always ready for testing
- EtherScope nXG and LinkRunner 10G offer built-in iPerf with graphical interfaces for intuitive testing, plus the ability to analyze Layer 1/2 issues
- Link-Live cloud platform automatically stores and organizes test results, enabling trend analysis and performance tracking over time
- The Performance Test app provides full line-rate testing up to 10Gbps with comprehensive measurements of throughput, latency, and jitter without requiring you to install software on end user devices or servers
In our video, we demonstrate how to effectively use iPerf to measure network throughput using both TCP and UDP protocols.
Pro Tip:
NetAlly’s implementation includes trend charts that show performance variations during your test. This visual representation makes it simple to spot intermittent issues that would be nearly impossible to identify in standard text output. When a user complains “the network gets slow sometimes,” these charts help you catch those momentary drops that text averages would hide. Plus, all results automatically upload to Link-Live, creating a searchable performance history that’s invaluable during troubleshooting.
Final Thoughts
Network pros rely on iPerf daily for their toughest troubleshooting tasks. It gives you quick, effective point-to-point bandwidth checks that help measure performance, validate changes, and troubleshoot problems without complex setups or expensive equipment.
By mastering the commands we’ve covered in this guide, you can move beyond basic testing to gain deeper insights into your network’s performance characteristics. But remember the core difference: iPerf tells you the “what” (the throughput numbers), while professional tools like NetAlly’s provide the “why” with deeper context and actionable insights.
Using the right tool for the job makes all the difference. When iPerf meets your needs, it’s a powerful ally. But when you need to move from simple measurements to true network performance validation with historical tracking, visual analysis, and comprehensive reporting, purpose-built testing solutions deliver results that command-line tools simply can’t match.
Ready to upgrade your testing toolkit? Explore NetAlly’s network testers to see how they can enhance your network validation and troubleshooting workflows.