» Networking » How to compile iperf for Windows using Cygwin
How to compile iperf for Windows using Cygwin
Iperf is a very versatile open source program that can be used for network performance testing. It can generate TCP or UDP data streams for measuring network throughput and can also be used for testing network latency and jitter. There are some older versions of iperf compiled for Windows available on the web but I couldn’t find a working link for iperf version 2.0.5 so I decided to try compiling it using Cygwin and it worked!
You can download iperf version 2.0.5 for Windows that I compiled from source or continue reading if you want to learn how to compile your own copy. You’ll need to copy iperf.exe and also the 3 cygwin DLL files included in the zip archive into your system in order for it to work.
1. Setting up Cygwin
Cygwin is basically a Linux emulation environment for Windows. Although your Linux apps will have to be recompiled from source before they will run in the Cygwin environment. To get started you will need to download and run setup.exe from the Cygwin site. You can use the default install options but when you reach the package selection screen click on ‘Devel’ so that ‘Default’ changes to ‘Install’ , this will install all of the development tools you will need.
You should have a shortcut to Cygwin on your desktop when the installation is finished.
2. Download the iperf source code
Next download and extract the iperf source code to C:\cygwin\iperf-2.0.5 , 7-zip works well for extracting tar and gzip files in Windows.
3. Configure the compiler
Start the Cygwin shell from the start menu or the shortcut on your desktop.
Enter the directory where you extracted the iperf source
cd /iperf-2.0.5
Configure the compiler (this might take a couple minutes)
./configure
If everything went well your output should look something like this.
4. Compile the source
To get the compile process started just type make and hit enter. It shouldn’t take very long for the compile to finish.
5. Make install
Assuming your build completed without errors your going to want to run ‘make install’, to do this just type make install in the shell and hit enter. As you can see from the output below iperf.exe was copied to /usr/local/bin/
6. Running iperf
You can run iperf directly from the Cygwin environment but you will have to specify the full path to the executable eg: /usr/local/bin/iperf. If you prefer to run iperf directly from a Windows command prompt or from another machine you can copy the iperf binary and the nessasary DLL files out of the cygwin environment.
If you installed Cygwin to the default location then iperf.exe will be located in C:\cygwin\usr\local\bin
You will also need the following DLL files found in C:\cygwin\bin.
- cygwin1.dll
- cyggcc_s-1.dll
- cygstdc++-6.dll
Copy the three DLL files and iperf.exe somewhere on your system that is in your path like c:\windows\system32 for example. You can then run iperf directly from a command prompt.
Enjoy!
I’m working on a separate post with some sample uses for iperf which should be completed in the near future.
Sam graduated from the University of Missouri – Kansas City with a bachelors degree in Information Technology. Currently he works as a network analyst for an algorithmic trading firm. Sam enjoys the challenge of troubleshooting complex problems and is constantly experimenting with new technologies.
This entry was posted by Sam Kear on March 18, 2011 at 3:17 pm, and is filed under Networking. Follow any responses to this post through RSS 2.0.You can leave a response or trackback from your own site.
-
-
Thanks for the work. I’ve been trying to find an updated version for Windows for awhile. I have a question though. The documentation page references a option -S, which allows you to set the type-of-service on the outgoing packets. It does not appear that this version supports that flag. Could you confirm please? Thanks again!
-
-
Thank you for putting this up. Working from Sourceforge and other places that Google searches show, it seems unnecessarily obtuse for a plain old Windows user to run an iperf test. Do I really need to figure out how to compile an executable??? Sheesh. With your files I got it going in a matter of minutes. Simple. THANK YOU.
-
#9 written by Mukesh 11 months ago
-
Hey Mukesh,
I didn’t have any luck trying to compile iperf-3.0b4 in cygwin either.
It turns out someone has already accomplished it though, you can download the precompiled version from the link below. It runs fine on my Win7 X64 box.
http://code.google.com/p/iperf3-cygwin/
Just make sure you extract iperf3.exe along with all of the cygwin dll files to the same directory.
Let me know if that works for you.
-
-
#13 written by Mukesh 11 months ago
-
In order to run without the cygwin dll files you need a version of iperf compiled for native win32. Below is a link to version 2.0.4 which has been patched and compiled to run without any cygwin dll files.
http://www.ivaturi.org/home/iperfv204pre-compiledbinaryforwin32
-
-
- Comment Feed for this Post









I haven’t tried it yet, but thanks for this tutorial!