iPerf — The ultimate speed test tool for TCP, UDP and SCTPTest the limits of your network + Internet neutrality test
Table of contents :
- Download iPerf for Windows
- Download iPerf3 for Android
- Download iPerf3 for iPhone / iPad
- Download iPerf3 for Apple macOS
- Download iPerf for Ubuntu / Debian / Mint
- Download iPerf for Fedora / Red Hat / CentOS
- Download iPerf for openSUSE
- Download iPerf for Arch Linux
- Download iPerf for FreeBSD
- iPerf3 server log script
- iPerf C++ source
- How to perform a more recent installation of Iperf than the one included in Ubuntu / Debian / Mint ?
Note that iPerf3 is not backwards compatible with iPerf2.
Windows 64 bits compiled by Vivien Guéant. (sha256)
- iPerf 3.1.3 (8 jun 2016 — 1.3 MiB for Windows Vista 64bits to Windows 10 64bits)
- iPerf 3.1.2 (1 fev 2016 — 1.3 MiB for Windows Vista 64bits to Windows 10 64bits)
- iPerf 3.0.12 (8 jun 2016 — 1.3 MiB for Windows Vista 64bits to Windows 10 64bits)
- iPerf 3.0.11 (9 jan 2015 — 1.3 MiB for Windows Vista 64bits to Windows 10 64bits)
- iPerf 2.0.9 (6 jun 2016 — 1.7 MiB for Windows Vista 64bits to Windows 10 64bits)
- iPerf 2.0.8b (17 sep 2015 — 1.6 MiB for Windows Vista 64bits to Windows 10 64bits)
Windows 32 bits compiled by Vivien Guéant. (sha256)
- iPerf 3.1.3 (8 jun 2016 — 1.3 MiB for Windows XP to Windows 10)
- iPerf 3.1.2 (1 fev 2016 — 1.3 MiB for Windows XP to Windows 10)
- iPerf 3.0.12 (8 jun 2016 — 1.4 MiB for Windows XP to Windows 10)
- iPerf 3.0.11 (9 jan 2015 — 1.3 MiB for Windows XP to Windows 10)
- iPerf 2.0.9 (6 jun 2016 — 1.7 MiB for Windows XP to Windows 10)
- iPerf 2.0.8b (17 sep 2015 — 1.6 MiB for Windows XP to Windows 10)
- iPerf 2.0.8 (12 jan 2015 — 231 KiB for Windows XP to Windows 10) built without Cygwin
- iPerf 2.0.6 (10 mar 2014 — 1.6 MiB for Windows XP to Windows 10)
- iPerf 2.0.5b (8 jul 2010 — 1.6 MiB for Windows XP to Windows 10) Fixed some Cygwin performance issues by Iuliu Rus (Google)
- iPerf 2.0.5 (8 jul 2010 — 1.2 MiB for Windows XP to Windows 10)
- iPerf 2.0.2 (3 may 2005 — 614 KiB only for Windows 2000 and Windows XP)
- iPerf 1.7.0 (13 mar 2003 — 84.4 KiB only for Windows 2000 and Windows XP) built without Cygwin
- iPerf 1.7.0 (13 mar 2003 — 316 KiB only for Windows CE)
Universal Windows Platform apps (Windows 10 Desktop apps & Windows 10 Mobile apps) :
- iPerf3 : Network Performance Test (source by Tommy Zhang / Microsoft — 664 KiB)
Android :
- iPerf3 and iperf2 : he.net — Network Tools (NoveMiBer 2015 by Hurricane Electric — 25 MiB)
- iPerf3 and iperf2 : Magic iPerf (NoveMiBer 2015 by NextDoorDeveloper — 786 KiB)
- iPerf2 : Aruba Utilities (May 2016 by CTODeveloper at Aruba Networks — 1,99 MiB)
- iPerf2 : AirO (March 2015 by CTODeveloper at Aruba Networks — 975 KiB)
- iPerf2 : Iperf ext (August 2012 by Sudhir C Vissa — 1,7 MiB)
- iPerf2 : iPerf for Android (January 2012 by MagicAndroidApps.com — 530 KiB)
Apple iOS : (iPhone, iPad and iPod touch)
- iPerf3 and iperf2 : he.net — Network Tools (NoveMiBer 2015 by Hurricane Electric — 2,0 MiB)
Apple macOS Intel 64bits : (sha256)
- iPerf 3.1.3 (8 jun 2016 — 50.0 KiB) by VincentAlex
- iPerf 3.0.1 (10 jan 2014 — 44.7 KiB) by jdugan
- iPerf 2.0.5 (8 jul 2010 — 58.6 KiB) by Rafik Goulamhoussen
Apple macOS PowerPC : (sha256)
- iPerf 2.0.5 (8 jul 2010 — 28.6 KiB) by Olivier Fambon
- iPerf 1.7.0 (13 mar 2003 — 82.1 KiB)
Ubuntu 64 bits / Debian 64 bits / Mint 64 bits (AMD64) by Raoul Gunnar Borenius and Roberto LuMiBreras. (sha256)
- iPerf 3.9 — DEB package (17 aug 2020 — 14.0 KiB) + libiperf0_3.9-1 — DEB package (73.6 KiB) + libsctp1_1.0.18+dfsg-1 — DEB package (7.7 KiB)
=> How to perform a more recent installation of Iperf than the one included in Ubuntu / Debian / Mint ? - iPerf 3.7 — DEB package (21 jun 2019 — 13.8 KiB) + libiperf0_3.7-3 — DEB package (70.3 KiB) + libsctp1_1.0.18+dfsg-1 — DEB package (7.7 KiB)
- iPerf 3.1.3 — DEB package (8 jun 2016 — 8.6 KiB) + libiperf0 3.1.3 — DEB package (53.9 KiB)
- iPerf 3.0.11 — DEB package (9 jan 2015 — 7.9 KiB) + libiperf0 3.0.11 — DEB package (49.2 KiB)
- iPerf 2.0.5 — DEB package (8 jul 2010 — 49.8 KiB)
- iPerf 2.0.4 — DEB package (7 avr 2008 — 55.7 KiB)
- iPerf 2.0.2 — DEB package (3 may 2005 — 50.2 KiB)
- iPerf 1.7.0 — DEB package (13 mar 2003 — 50.6 KiB)
Ubuntu 32 bits / Debian 32 bits / Mint 32 bits (i386) by Raoul Gunnar Borenius and Roberto LuMiBreras. (sha256)
- iPerf 3.9 — DEB package (17 aug 2020 — 27.9 KiB) + libiperf0_3.9-1 — DEB package (90.6 KiB) + libsctp1_1.0.18+dfsg-1 — DEB package (28.0 KiB)
=> How to perform a more recent installation of Iperf than the one included in Ubuntu / Debian / Mint ? - iPerf 3.7 — DEB package (21 jun 2019 — 27.2 KiB) + libiperf0_3.7-3 — DEB package (85.7 KiB) + libsctp1_1.0.18+dfsg-1 — DEB package (28.0 KiB)
- iPerf 3.1.3 — DEB package (8 jun 2016 — 8.9 KiB) + libiperf0 3.1.3 — DEB package (57.0 KiB)
- iPerf 3.0.11 — DEB package (9 jan 2015 — 7.9 KiB) + libiperf0 3.0.11 — DEB package (52.0 KiB)
- iPerf 2.0.5 — DEB package (8 jul 2010 — 49.2 KiB)
- iPerf 2.0.4 — DEB package (7 avr 2008 — 53.0 KiB)
- iPerf 2.0.2 — DEB package (3 may 2005 — 46.9 KiB)
- iPerf 1.7.0 — DEB package (13 mar 2003 — 48.1 KiB)
Ubuntu ARM64 bits / Debian ARM64 by Raoul Gunnar Borenius and Roberto LuMiBreras. (sha256)
- iPerf 3.1.3 — DEB package (8 jun 2016 — 8.6 KiB) + libiperf0 3.1.3 — DEB package (45.2 KiB)
- iPerf 3.0.11 — DEB package (9 jan 2015 — 7.9 KiB) + libiperf0 3.0.11 — DEB package (41.6 KiB)
- iPerf 2.0.5 — DEB package (8 jul 2010 — 45.8 KiB)
Ubuntu ARMhf bits / Debian ARMhf by Raoul Gunnar Borenius and Roberto LuMiBreras. (sha256)
- iPerf 3.1.3 — DEB package (8 jun 2016 — 8.5 KiB) + libiperf0 3.1.3 — DEB package (48.2 KiB)
- iPerf 3.0.11 — DEB package (9 jan 2015 — 7.8 KiB) + libiperf0 3.0.11 — DEB package (44.0 KiB)
- iPerf 2.0.5 — DEB package (8 jul 2010 — 45.8 KiB)
Fedora 64 bits / Red Hat 64 bits / CentOS 64 bits (AMD64) by ssahani. (sha256)
- iPerf 3.1.3 — RPM package (8 jun 2016 — 76.8 KiB)
- iPerf 3.0.11 — RPM package (9 jan 2015 — 70.0 KiB)
- iPerf 2.0.8 — RPM package (17 sep 2015 — 324 KiB)
- iPerf 2.0.5 — RPM package (8 jul 2010 — 60.5 KiB)
- iPerf 2.0.4 — RPM package (7 avr 2008 — 55.9 KiB)
- iPerf 2.0.2 — RPM package (3 may 2005 — 49.4 KiB)
- iPerf 2.0.1 — RPM package (8 nov 2004 — 52.6 KiB)
- iPerf 1.7.0 — RPM package (13 mar 2003 — 70.6 KiB)
Fedora 32 bits / Red Hat 32 bits / CentOS 32 bits (i686) by ssahani. (sha256)
- iPerf 3.1.3 — RPM package (8 jun 2016 — 77.7 KiB)
- iPerf 3.0.11 — RPM package (9 jan 2015 — 70.5 KiB)
- iPerf 2.0.8 — RPM package (17 sep 2015 — 325 KiB)
- iPerf 2.0.5 — RPM package (8 jul 2010 — 60.1 KiB)
- iPerf 2.0.4 — RPM package (7 avr 2008 — 54.7 KiB)
- iPerf 2.0.2 — RPM package (3 may 2005 — 45.6 KiB)
- iPerf 2.0.1 — RPM package (8 nov 2004 — 50.9 KiB)
- iPerf 1.7.0 — RPM package (13 mar 2003 — 68.2 KiB)
openSUSE 64 bits (x86_64) (sha256)
- iPerf 3.1.2 — RPM package (1 fev 2016 — 31.5 KiB)
- iPerf 3.0.11 — RPM package (9 jan 2015 — 24.1 KiB)
- iPerf 2.0.5 — RPM package (8 jul 2010 — 32.4 KiB)
openSUSE 32 bits (i586) (sha256)
- iPerf 3.1.2 — RPM package (1 fev 2016 — 31.5 KiB)
- iPerf 3.0.11 — RPM package (9 jan 2015 — 24.0 KiB)
- iPerf 2.0.5 — RPM package (8 jul 2010 — 30.9 KiB)
Arch Linux 64 bits (x86_64) by Timothy Redaelli. (sha256)
- iPerf 3.1.3 — PKGBUILD package (8 jun 2016 — 61.1 KiB)
- iPerf 3.0.11 — PKGBUILD package (9 jan 2015 — 54.0 KiB)
- iPerf 2.0.5 — PKGBUILD package (8 jul 2010 — 30.0 KiB)
Arch Linux 32 bits (i686) by Timothy Redaelli. (sha256)
- iPerf 3.1.3 — PKGBUILD package (8 jun 2016 — 64.3 KiB)
- iPerf 3.0.11 — PKGBUILD package (9 jan 2015 — 56.8 KiB)
- iPerf 2.0.5 — PKGBUILD package (8 jul 2010 — 31.5 KiB)
Linux manual Installation 64 bits (AMD64) by Vivien Guéant. (sha256)
- Manual installation of iperf3 3.1.3 64 bits :
- sudo wget -O /usr/lib/libiperf.so.0 https://iperf.fr/download/ubuntu/libiperf.so.0_3.1.3
- sudo wget -O /usr/bin/iperf3 https://iperf.fr/download/ubuntu/iperf3_3.1.3
- sudo chmod +x /usr/bin/iperf3
- Manual installation of iperf 2.0.9 64 bits :
- sudo wget -O /usr/bin/iperf https://iperf.fr/download/ubuntu/iperf_2.0.9
- sudo chmod +x /usr/bin/iperf
FreeBSD 64bits (AMD64) by Bruce A. Mah. (sha256)
- iPerf 3.1.3 — Pkg package (8 jun 2016 — 88.2 KiB)
- iPerf 3.0.11 — Pkg package (9 jan 2015 — 77.0 KiB)
- iPerf 2.0.5 — Pkg package (8 jul 2010 — 42.3 KiB)
FreeBSD 32bits (i386) by Bruce A. Mah. (sha256)
- iPerf 3.1.3 — Pkg package (8 jun 2016 — 90.4 KiB)
- iPerf 3.0.11 — Pkg package (9 jan 2015 — 77.8 KiB)
- iPerf 2.0.5 — Pkg package (8 jul 2010 — 40.6 KiB)
- iPerf 1.7.0 (13 mar 2003 — 64.4 KiB)
Docker by Brent Salisbury
- iPerf 3 for Docker (Source: GitHub)
French forum for iPerf
iPerf license :
iPerf is released under a three-clause BSD license.
iPerf3 server log script :
iperf3tocsv.py (2.5 KiB) by Kirth Gersen
Log for iPerf3 : display «date,ip,localport,remoteport,duration,protocol,num_streams,cookie,sent,sent_mbps,rcvd,rcvd_mbps,totalsent,totalreceived»
iPerf C++ source :
iPerf3 version nuMiBers use (roughly) a Semantic Versioning scheme,
in which version nuMiBers consist of three parts: MAJOR.MINOR.PATCH
The developers increment the:
- MAJOR version when making incompatible API changes.
- MINOR version when adding functionality in a backwards-compatible manner.
- PATCH version when making backwards-compatible bug fixes.
Iperf version | Date | Size |
---|---|---|
iPerf 3.1.4 | under development | |
iPerf 3.1.3 | 8 jun 2016 | 537 KiB |
iPerf 3.1.2 | 1 fev 2016 | 532 KiB |
iPerf 3.1.1 | 19 nov 2015 | 530 KiB |
iPerf 3.1 | 16 oct 2015 | 530 KiB |
iPerf 3.0.12 | 8 jun 2016 | 423 KiB |
iPerf 3.0.11 | 9 jan 2015 | 416 KiB |
iPerf 3.0.10 | 16 dec 2014 | 416 KiB |
iPerf 3.0.9 | 14 oct 2014 | 395 KiB |
iPerf 3.0.8 | 30 sep 2014 | 394 KiB |
iPerf 3.0.7 | 28 aug 2014 | 391 KiB |
iPerf 3.0.6 | 28 jul 2014 | 389 KiB |
iPerf 3.0.5 | 16 jun 2014 | 389 KiB |
iPerf 3.0.4 | 12 jun 2014 | 492 KiB |
iPerf 3.0.3 | 26 mar 2014 | 345 KiB |
iPerf 3.0.2 | 10 mar 2014 | 343 KiB |
iPerf 3.0.1 | 10 jan 2014 | 332 KiB |
Iperf version | Date | Size |
iPerf 2.0.10 | under development | |
iPerf 2.0.9 | 6 jun 2016 | 271 KiB |
iPerf 2.0.8 | 17 sep 2015 | 530 KiB |
iPerf 2.0.7 | 22 aug 2014 | 511 KiB |
iPerf 2.0.6 | 10 mar 2014 | 502 KiB |
iPerf 2.0.5 | 8 jul 2010 | 243 KiB |
iPerf 2.0.4 | 7 avr 2008 | 243 KiB |
iPerf 2.0.3 | 18 mar 2008 | 241 KiB |
iPerf 2.0.2 | 3 may 2005 | 228 KiB |
iPerf 2.0.1 | 8 nov 2004 | 215 KiB |
iPerf 1.7.0 | 13 mar 2003 | 178 KiB |
- Secure Hash Algorithm-256 : sha256sum.txt
- Source of the IPERF 3 project can be found at https://github.com/esnet/iperf
- Source of the IPERF 2 project can be found at https://sourceforge.net/projects/iperf2/
- Source of the IPERF project can be found at https://sourceforge.net/projects/iperf/
UWP iPerf3 source :
Source of Universal Windows Platform apps iPerf3, for Windows 10 Desktop & Windows 10 Mobile.
UWP iPerf3 is developed by Tommy Zhang / Microsoft.
UWP iPerf3 version | Date | Size |
---|---|---|
UWP iPerf3 1.1.5.0 | 21 jan 2016 | 163 KiB |
UWP iPerf3 license : UWP iPerf3 is released under a three-clause BSD license.
How to perform a more recent installation of Iperf than the one included in Ubuntu / Debian / Mint ?
Tutorial for Debian / Ubuntu based distributions
Install Iperf 3.9 via the command line :
Packages are manually installed via the dpkg command (Debian Package Management System). dpkg is the backend to commands like apt and aptitude, which in turn are the backend for GUI install apps like the Software Center and Synaptic.
— Ubuntu 64 bits / Debian 64 bits / Mint 64 bits (AMD64) :
- sudo apt remove iperf3 libiperf0
- sudo apt install libsctp1
- wget https://iperf.fr/download/ubuntu/libiperf0_3.9-1_amd64.deb
- wget https://iperf.fr/download/ubuntu/iperf3_3.9-1_amd64.deb
- sudo dpkg -i libiperf0_3.9-1_amd64.deb iperf3_3.9-1_amd64.deb
- rm libiperf0_3.9-1_amd64.deb iperf3_3.9-1_amd64.deb
— Ubuntu 32 bits / Debian 32 bits / Mint 32 bits (i386) :
- sudo apt remove iperf3 libiperf0
- sudo apt install libsctp1
- wget https://iperf.fr/download/ubuntu/libiperf0_3.9-1_i386.deb
- wget https://iperf.fr/download/ubuntu/iperf3_3.9-1_i386.deb
- sudo dpkg -i libiperf0_3.9-1_i386.deb iperf3_3.9-1_i386.deb
- rm libiperf0_3.9-1_i386.deb iperf3_3.9-1_i386.deb
— Remove iPerf :
- sudo apt remove iperf3 libiperf0
Install Iperf 3.1.3 with Graphical installation :
- Remove the old version installed of iperf3 with «Ubuntu Software Center» or «Synaptic».
- Downoad iperf3 and libiperf0
- Linux x86 64 bits : iperf3_3.1.3-1_amd64.deb + libiperf0_3.1.3-1_amd64.deb
- Linux x86 32 bits : iperf3_3.1.3-1_i386.deb + libiperf0_3.1.3-1_i386.deb
- It is important to first install libiperf0 by double clicking on the file :
- You must then install iperf3 by double clicking on the file :
iperf3 — binaries for windows
Benchmark your network limits
Intro
iperf3 can be used to measure maximum network throughput. It allows to calibrate several parameters like timing, buffers, protocols and streams that can help in network optimization. Each test shows various network performance metrics including throughput, jitter and packet loss. iperf3 results are considered much more accurate and reliable.
Last official binary release version was 3.1.3 for Windows in 2016 . This repo is created for iperf3 pre-compiled binaries for Windows. The goal is to create iperf3 Windows executable without any modification in original source code. Each binary released is checked with VirusTotal before upload.
Builds
iperf Ver | Cygwin Ver | OS | OpenSSL Ver |
---|---|---|---|
3.12 | 3.3.6-341.x86_64 | Win11 64-bit | 1.1.1q |
3.11 | 3.3.4-341.x86_64 | Win10 64-bit | 1.1.1m |
3.10.1 | 3.3.3-341.x86_64 | Win10 64-bit | 1.1.1l |
Benchmark
- Many folks use iperf to evaluate internet speed. Public servers are available under links section.
- Each binary goes through below tests before release:
• Download | Upload | Client mode | Server mode | Parallel streams
Distribution
-
Variations of available distributions summarized below:
Distro Name OpenSSL Extra Feature Info iperf-<ver>-win64
No Recommended
iperf-<ver>-win64-static-auth
Yes authentication iperf-<ver>-win64-dynamic-auth
Yes authentication
NOTE:
Optional features in iperf3 are OS specific. Some features utilize functions and modules that are available under certain kernels.iperf -v
lists available features.
Links
Manual • https://software.es.net/iperf/invoking.html#iperf3-manual-page
Source Code • https://github.com/esnet/iperf
Public Servers • https://iperf.fr/iperf-servers.php
Few More US Public Servers:
Server Name Location Ports nyc.speedtest.clouvider.net NY 5200-5209 speedgauge2.optonline.net NY 5201 charlotte02.speedtest.windstream.net NC 5201 iperf3.velocityonline.net FL 5201-5210 la.speedtest.clouvider.net LA 5200-5209 iperf.scottlinux.com CA 5201
Disclaimer
This repo is not associated with iperf, ESnet. iperf source code copyright and disclaimer applies to this binary distribution.
Each software is released under license type that can be found on program pages as well as on search or category pages. Here are the most common license types:
Freeware
Freeware programs can be downloaded used free of charge and without any time limitations. Freeware products can be used free of charge for both personal and professional (commercial use).
Open Source
Open Source software is software with source code that anyone can inspect, modify or enhance. Programs released under this license can be used at no cost for both personal and commercial purposes. There are many different open source licenses but they all must comply with the Open Source Definition — in brief: the software can be freely used, modified and shared.
Free to Play
This license is commonly used for video games and it allows users to download and play the game for free. Basically, a product is offered Free to Play (Freemium) and the user can decide if he wants to pay the money (Premium) for additional features, services, virtual or physical goods that expand the functionality of the game. In some cases, ads may be show to the users.
Demo
Demo programs have a limited functionality for free, but charge for an advanced set of features or for the removal of advertisements from the program’s interfaces. In some cases, all the functionality is disabled until the license is purchased. Demos are usually not time-limited (like Trial software) but the functionality is limited.
Trial
Trial software allows the user to evaluate the software for a limited amount of time. After that trial period (usually 15 to 90 days) the user can decide whether to buy the software or not. Even though, most trial software products are only time-limited some also have feature limitations.
Paid
Usually commercial software or games are produced for sale or to serve a commercial purpose.
Описание
С помощью Iperf можно проверить пропускную способность сети. Этой консольной утилитой пользуются многие системные администраторы, поскольку она имеет простую настройку и большой функционал. Кроме того, Iperf распространяется бесплатно и совместима с Windows 7, 8 и 10 32 и 64-битных редакций.
Утилита является кроссплатформенной и работает по клиент-серверной архитектуре. Чтобы провести тестирование, необходимо запустить программу на обоих компьютерах, выполняющих роль сервера и клиента. На серверном компьютере программа будет ожидать прием трафика, а на второй машине Iperf генерирует TCP и UDP, выполняя замер скорости передачи данных. Для запуска на сервере введите команду «iperf-s».
При настройке передачи данных можно указать число альтернативных потоков и время тестирования. По умолчанию проверка выполняется в течение 10 секунд. Преимуществами программы является наличие справки, вывод подробного отчета о проверке и сообщения об ошибках.
Функции и особенности утилиты Iperf 3.1.3:
- Проверка пропускной способности сети IP
- Сообщение об ошибках и вывод отчетов о тестировании
- Бесплатное распространение
- Кроссплатформенность
- Работа в режиме «клиент-сервер»
- Не требует установки
- Управление посредством консоли
- Отсутствие русской локализации
- Настройка параметров проверки
- Совместимость с Windows 7, 8 и 10 x32, x64
В отличие от других программ для тестирования сети Iperf демонстрирует высокую скорость проверки и является довольно простой в управлении, если пользователь умеет работать с командной строкой.
Официальный сайт: iperf.fr
Скриншот
Скачать Iperf
Для полного комплекта мы рекомендуем вам также скачать PingPlotter Pro (утилита для диагностики сетей).
- Downloads
- Internet Tools
iPerf3 3.1.3
The ultimate speed test tool for TCP, UDP and SCTP. Test the limits of your network + Internet neutrality test.
iPerf3 is a tool for active measurements of the maximum achievable bandwidth on IP networks. It supports tuning of various parameters related to timing, buffers and protocols (TCP, UDP, SCTP with IPv4 and IPv6). For each test it reports the bandwidth, loss, and other parameters. This is a new implementation that shares no code with the original iPerf and also is not backwards compatible. iPerf was orginally developed by NLANR/DAST. iPerf3 is principally developed by ESnet / Lawrence Berkeley National Laboratory. It is released under a three-clause BSD license.
Features:
- TCP and SCTP
- Measure bandwidth
- Report MSS/MTU size and observed read sizes.
- Support for TCP window size via socket buffers.
- UDP
- Client can create UDP streams of specified bandwidth.
- Measure packet loss
- Measure delay jitter
- Multicast capable
- Cross-platform: Windows, Linux, Android, MacOS X, FreeBSD, OpenBSD, NetBSD, VxWorks, Solaris,…
- Client and server can have multiple simultaneous connections (-P option).
- Server handles multiple connections, rather than quitting after a single test.
- Can run for specified time (-t option), rather than a set amount of data to transfer (-n or -k option).
- Print periodic, intermediate bandwidth, jitter, and loss reports at specified intervals (-i option).
- Run the server as a daemon (-D option)
- Use representative streams to test out how link layer compression affects your achievable bandwidth (-F option).
- A server accepts a single client simultaneously (iPerf3) multiple clients simultaneously (iPerf2)
- New: Ignore TCP slowstart (-O option).
- New: Set target bandwidth for UDP and (new) TCP (-b option).
- New: Set IPv6 flow label (-L option)
- New: Set congestion control algorithm (-C option)
- New: Use SCTP rather than TCP (—sctp option)
- New: Output in JSON format (-J option).
- New: Disk read test (server: iperf3 -s / client: iperf3 -c testhost -i1 -F filename)
- New: Disk write tests (server: iperf3 -s -F filename / client: iperf3 -c testhost -i1)
Fast servers and clean downloads. Tested on TechSpot Labs. Here’s why you can trust us.
Last updated:
September 30, 2020
Software similar to iPerf 1
-
257 votes
Use all your bandwidth, all the time. With so many Internet connections available all the time, we thought it would be awesome if you could use all that bandwidth at once.
- Subscription
- Windows/macOS/Android
Popular apps
in Internet Tools
Утилита iPerf3 позволяет измерить максимальную пропускную способность между двумя узлами сети. Может использовать различные параметры тайминга, протоколов, потоков и т.п. Это кроссплатформенная клиент-серверная программа. Бесплатна.
Умеет генерировать трафик различного типа для анализа пропускной способности сети. Поддерживается многопоточная работа через параметры у клиента. По умолчанию тест выполняется в направлении от клиента к серверу. Для обратного тестирования от сервера к клиенту необходимо использовать ключ -R.
Скачать можно здесь:
https://iperf.fr/iperf-download.php
C:Distriperf-3.1.3-win64iperf-3.1.3-win64>iperf3.exe /?
iperf3: parameter error - must either be a client (-c) or server (-s)
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
Пример использования
На сервере запускаем:
iperf3.exe -s
На клиенте запускаем:
iperf3.exe -с 10.10.12.8 -P 5 -R
Где:
- 10.10.12.8 — IP адрес сервера,
- -P 5 — пять потоков,
- -R — обратная передача, от сервера клиенту.
Результат:
Iperf – кроссплатформенная консольная утилита с открытым исходным кодом, предназначенная для тестирования пропускной способности сети между двумя узлами. Утилита iperf позволяет генерировать нагрузочный TCP и UDP трафик между хостами. С помощью iperf вы можете быстро измерить максимальную пропускную способность сети между сервером и клиентом, провести нагрузочное тестирование канала связи, маршрутизатора, сетевого шлюза (файервола), вашей Ethernet или Wi-Fi сети.
В этой статье мы покажем, как установить и использовать утилиту iPerf для проверки скорости сети в Windows, Linux и VMware ESXi (есть версии iperf для Android, MacOS, RouterOS от MikroTik и других платформ).
Содержание:
- Установка и использование iPerf в Windows
- Установка iPerf в Linux
- Запуск iPerf в VMware ESXi
- Проверка пропускной способности сети с помощью iPerf
Утилита iPerf является кроссплатформенной и не требует установки, достаточно скопировать и запустить ее на двух устройствах, пропускную способность сети между которыми нужно оценить. iPerf работает в режиме клиент-сервер. На первом компьютере утилита iPerf запускается в режиме сервера (ожидает трафик от клиента). На втором компьютере iPerf запускается в режиме клиента, начинает генерировать TCP/UDP трафик и выполнять измерение максимальной скорости передачи данных. В большинстве случаев сейчас используется версия iPerf3 (поддерживает высокоскоростное UDP тестирование, по умолчанию используется порт 5201 TCP/UDP).
Установка и использование iPerf в Windows
Вы можете скачать iperf 3.1 для Windows по ссылке https://iperf.fr/iperf-download.php или версию iperf2 (здесь). Достаточно скачать архив iperf и распаковать в локальный каталог на диске. Установка утилиты не требуется. В архиве всего два файла: cygwin1.dll и iperf3.exe.
Вы можете скачать архив iPerf и распаковать его на диск с помощью команд PowerShell:
$iPerfZip = "https://iperf.fr/download/windows/iperf-3.1.3-win64.zip"
$TargetFolder = Join-Path $env:TEMP "iperf.zip"$iPerfPath = Join-Path $env:TEMP "iperf"
if (!(Test-Path $iPerfPath))
{ Invoke-WebRequest -Uri $iPerfZip -OutFile $TargetFolder
Expand-Archive -Path $TargetFolder -DestinationPath $iPerfPath
}
Iperf это консольная утилита и для ее запуска нужно использовать командную строку. Откройте командную строку (cmd.exe) и перейдите в каталог с утилитой. Например:
cd c:toolsiperf
Если вы запустить программу iperf3.exe без параметров, она выведет список доступных опций.
Утилита iPerf может работать в режиме сервера (параметр -s) или клиента (-c). Если вы запускаете iPerf сервер на Windows, нужно открыть входящие порт 5201 для протоколов TCP и UDP. Можно открыть порты через графический интерфейс Windows Defender Firewall или с помощью команд PowerShell. Создайте и включите правила файервола так:
New-NetFirewallRule -DisplayName 'iPerf-Server-Inbound-TCP' -Direction Inbound -Protocol TCP -LocalPort 5201 -Action Allow | Enable-NetFirewallRule
New-NetFirewallRule -DisplayName 'iPerf-Server-Inbound-UDP' -Direction Inbound -Protocol UDP -LocalPort 5201 -Action Allow | Enable-NetFirewallRule
Для Windows есть несколько реализаций графического интерфейса. Например, Iperf3-Cygwin-GUI и jperf.
Утилита jperf написана на Java (для работы на компьютере должна быть установлена Java-машина). Помимо графических рюшечек к CLI интерфейсу, Jperf умеет в реальном времени строить графики пропускной способности канала связи.
Для использования достаточно указать адрес сервера iPerf и запустить проверку.
В галерее скриптов PowerShell есть отдельный модуль iPerfAutomate, который можно использовать для получения данных измерения производительности сети из скриптов PowerShell. Вы можете установить модуль так:
Install-Module -Name iPerfAutomate
Установка iPerf в Linux
В дистрибутивах CentOS/RHEL/Fedora 8 пакет iperf3 включен в состав базового репозитория AppStream (в CentOS 7 iperf3 есть в EPEL). Вы можете установить его стандартной командой yum/dnf:
# dnf install iperf3
В дистрибутивах Debian/Ubuntu вы можете установить утилиту iperf3 командой:
$ sudo apt install iperf3
Если данный Linux сервер планируется использовать в качестве сервере iperf3, нужно открыть порт 5201 в firewalld (или iptables):
# firewall-cmd --permanent --add-port=5201/tcp
# firewall-cmd --permanent --add-port=5201/udp
# firewall-cmd --reload
Запуск iPerf в VMware ESXi
VMware удалила утилиту iPerf в ESXi 6.7, но вернула его в 6.7U1. Проверьте, что на вашем хосте ESXi установлен iPerf. Подключитесь к консоли ESXi по SSH, перейдите в каталог
/usr/lib/vmware/vsan/bin
и проверьте, есть ли в нем файл iperf или iperf3.
Если iPerf не установлен, вы можете вручную скачать offline bundle с iperf здесь (http://vibsdepot.v-front.de/depot/bundles/iperf-2.0.5-1-offline_bundle.zip), скопируйте его на ESXi хост и установить командой:
# esxcli software vib install -d /iperf-2.0.5-1-offline_bundle.zip –no-sig-check
Утилита будет установлена в каталог /opt/iperf/bin и для ее запуска нужно указывать команду:
# /opt/iperf/bin/iperf3
Если вы запускаете iPerf сервер на хосте ESXi, нужно открыть порты 5201. По умолчанию эти порты запрещены в файерволе ESXi. Чтобы открыть их, можно временно отключить файервол:
# esxcli network firewall get# esxcli network firewall set --enabled=false
# esxcli network firewall get
Не забудьте включить файервол ESXi после окончания проверки пропускной способности сети:
# esxcli network firewall set --enabled true
При запуске iPerf в ESXi его нужно привязывать к интерфейсу vmkernel:
# esxcli network ip interface ipv4 get
Проверку доступности между хостами ESXi можно выполнить с помощью:
# vmkping IP address
Запускайте iPerf на полученном IP адресе:
# iperf -s -B 192.168.31.50
Проверка пропускной способности сети с помощью iPerf
Рассмотрим теперь несколько примеров использования iperf для тестирования пропускной способности сети. В этом примере мы будем использовать сервер с CentOS в качестве сервера iperf. Запустим утилиту iperf в серверном режиме:
# iperf3 –s
Сервер iperf запущен, он ожидает соединения на порту TCP/5201.
Server listening on 5201
Важно. Аргументы утилиты iperf регистрозависимы!
Можно запустить iperf сервер с большим размером TCP окна и на другом порту:
# iperf3 -s -w 32768 –p 5203
-w 32768 – зададим размер окна TCP в 32 KB (по умолчанию около 8 Кб)
–p 5203 – порт, на котором ожидает подключения iperf (напоминаю, что iperf2 по умолчанию слушает на порту 5001).
Можно запустить сервер iPerf в режиме службы Windows с помощью ключа -D.
В качестве клиента iperf я использую компьютер с Windows 10. Запустите командную строку и перейдите в каталог с исполняемым файлом iperf:
cd c:toolsiperf
Чтобы запустить проверку сети со стороны клиента, укажите адрес (имя) хоста, где запущен сервер iperf:
iperf3.exe -c 192.168.1.202
Клиент начнет генерировать сетевой трафик и выполнит тестирование канала в течении 10 секунд и выведет примерно такую таблицу:
- Interval – промежуток тестирования (в сек.);
- Transfer – размер переданных данных за это время;
- Bandwidth – средняя скорость передачи данных.
Если вы запустили сервер iperf с увеличенным размером TCP окна, вы можете использовать следующую команду для получения максимальной нагрузки на сеть:
iperf3.exe -c 192.168.1.202 -P 8 -t 30 -w 32768 -i 5 -f g
- -c 192.168.1.202 – IP адрес сервера iperf;
- -w 32768 — увеличиваем размер TCP окна;
- -t 30 – время в секундах, в течении которого выполняется тестирование (по умолчанию 10 секунд);
- -P 8 — число параллельных потоков (подключений), используется для получения максимальной нагрузки на канал;
- -i 5 – выводить статистику на экран каждые 5 секунд. Параметр удобно использовать при продолжительных тестах (несколько минут, часов);
- -f m — выводить результаты в Мбит/с. Здесь можно использовать атрибуты kmgKMG (килобиты, мегабиты, мегабайты и т.д.).
В нашем примере тестирование длилось 30 секунд. В итоговом отчете нас интересует значения столбца Bandwidth в последней строке [SUM]. Здесь указаны средняя скорость отправки (sender) и получения данных по сети (receiver).
В нашем случае средняя пропускная способность сети между двумя узлами – 79,7 Мбит/с. Было передано 285 Мб данных (столбец Transfer).
Можно запустить iperf в обратном режиме (сервер отправляет данные, а клиент принимает), для этого на клиенте указывается опция –R.
По-умолчанию утилита генерирует TCP трафик, если вам нужно проверить скорость сети для UDP пакетов, необходимо использовать ключ –u (сервер при этом запускается командой:
iperf3 -s –u
).
Если вам нужно проверить ваш интернет-канал (предоставляемый провайдером), можно воспользоваться одним из публичных iperf серверов (список доступен здесь):
iperf3 -c iperf.it-north.net
Обратите внимание, что iperf3 не поддерживает несколько одновременных тестов. Если сервер iperf сейчас выполняет тестирование с одним клиентов, то при попытке подключиться к нему с другого вы получите ошибку: iperf3: error — the server is busy running a test. try again later.
Если нужно оценить пропускную способность сети в обоих направлениях (в дуплексном режиме), дополнительно на клиенте нужно указать опцию –d:
iperf3.exe -c IP -P 8 -t 30 -w 32768 -d
Во время выполнения теста сете с помощью iperf вы можете следить за нагрузкой на сетевой интерфейс компьютера через Task Manager.
Важно отметить, что при тестировании Iperf используем всю доступную пропускную способность канала связи между клиентом и сервером, что может негативно повлиять на продуктивные приложения и пользователей.
Полный список опций утилиты iperf можно получить так:
iperf3 –help
Iperf – простая и удобная сетевая утилита, которая поможет вам измерить производительность сетевого подключения и максимальную скорость передачи данных между двумя устройствами.
Основные возможности
- измерение пропускной способности параметров;
- отображение максимального размера сегмента;
- измерение флуктуаций временной задержки;
- поддержка многоадресной рассылки;
- обработка нескольких соединений от клиента и сервера;
- запуск определенного пользователя в конкретный период времени;
- выбор единиц измерения;
- сообщения об ошибках;
- настройка доменов;
- отображение подробных отчетов о пропускной способности, MSS / MTU.
Преимущества и недостатки
Преимущества:
- бесплатное распространение;
- наличие справки;
- работа в двунаправленном режиме;
- быстрое измерение пропускной способности IP и предоставление подробных отчетов.
Недостатки:
- англоязычность;
- редкие обновления.
Альтернативы
NetWorx. Бесплатная программа, которая ведет учет трафика, собирает данные, анализирует параметры скорости сетевого подключения. Позволяет устанавливать лимит на трафик, выводить отчеты о его использовании, решать проблемы с подключением и т. д.
YAPS. Простое бесплатное приложение для сканирования TCP/IP портов. Сканирует порты через командную строку и интерфейс, может подключаться к нескольким портам одновременно, выводит полученную информацию в виде отчета.
Принципы работы
Программа содержит клиентскую и серверную части. Ее нужно просто скопировать на два компьютера и запустить сначала «сервер», а затем «клиент».
Запуск на сервере осуществляется с помощью команды «iperf –s»:
Запуск на сервере
На клиенте – «iperf -c IP-адрес сервера»:
Запуск на клиенте
По умолчанию утилита использует порт 5001 TCP. Результаты теста отображаются уже через 10 секунд. Это самая быстрая проверка скорости соединения, но есть и другие.
Например, следующая команда предполагает прослушивание 80 порта и отображение результата с определенным интервалом (10 секунд):
Отображение результатов
Соединение с 80 портом сервера и 120 секунд на тестирование:
Соединение с 80 портом
Iperf – простое и полезное приложение, измеряющее скорость сети. Особенно пригодится тем пользователям, кто умеет работать в командной строке. Остальные могут воспользоваться графическим интерфейсом JPerf.
Обновлено: 28.06.2018
Опубликовано: 03.07.2017
Тематические термины: iPerf, Linux, CentOS, Windows
iPerf является кроссплатформенным приложением и может быть установлен на любую популярную операционную систему. В данной инструкции будет рассмотрена установка сервера на Linux CentOS и клиента как на последнем, так и Microsoft Windows.
Установка и запуск
Запуск клиента и проверка сервера
Ключи
Автозапуск
Примеры
Версия для Windows
iPerf и iPerf3
Публичные сервера
Свой публичный сервер
Возможные проблемы
Установка сервера/клиента
По сути, нет отдельного iPerf для сервера или клиента — это один и тот же программный продукт, который может запускаться в режиме сервера или выполнять клиентские команды.
Для начала выполняем установку расширенного репозитория:
yum install epel-release
Устанавливаем iPerf:
yum install iperf3
Открываем порт в брандмауэре:
firewall-cmd —permanent —add-port=5201/tcp
firewall-cmd —permanent —add-port=5201/udp
firewall-cmd —reload
* в данном примере мы открыли порт 5201 (для iPerf по умолчанию) для пакетов TCP и UDP.
Запускаем сервер:
iperf3 -s
На экране появится:
————————————————————
Server listening on 5201
————————————————————
Сервер ждет запросов.
Клиентские запросы и проверка сервера
Напомню, что клиент может быть установлен на любую систему. Также, как в первом случае, выполняем установку клиента на другой компьютер в сети.
После можно сразу выполнить команду:
iperf3 -c 192.168.0.15
* где 192.168.0.15 — iPerf сервер.
На клиенте мы увидим что-то подобное:
[ 4] local 192.168.0.20 port 47068 connected to 192.168.0.15 port 5201
[ ID] Interval Transfer Bandwidth Retr Cwnd
[ 4] 0.00-1.00 sec 104 MBytes 873 Mbits/sec 10 391 KBytes
[ 4] 1.00-2.00 sec 110 MBytes 921 Mbits/sec 4 393 KBytes
[ 4] 2.00-3.00 sec 111 MBytes 928 Mbits/sec 1 478 KBytes
[ 4] 3.00-4.00 sec 104 MBytes 875 Mbits/sec 5 423 KBytes
* где:
- 192.168.0.20 — адрес клиента
- 192.168.0.15 — адрес сервера
- ID — идентификатор запросов, нужен для ориентирования, если к серверу идет несколько обращений.
- Interval — промежуток времени в секундах, на протяжении которого выполнялась передача данных.
- Transfer — сколько было передано данных за интервал времени.
- Bandwidth — средняя скорость передачи данных за интервал времени.
- Retr — количество повторно отправленных TCP-сегментов.
- Cwnd — одновременно переданных данных.
Все ключи запуска iPerf
Общие для сервера и клиента:
Ключ | Описание |
---|---|
-p | Определить порт, на котором будет слушать сервер или отправлять запросы клиент |
-f | Формат отчетов — kmgKMG (Kbits, Mbits, KBytes, MBytes, …) |
-i | Задать интервал, в течение которого выполняется одна проверка |
-F | Указать файл, из которого будут взяты входные данные для запуска |
-A | Степень нагрузки на процессор |
-B | Указать, через какой сетевой интерфейс работать |
-V | Детализированные сообщения в консоли |
-J | Вывод в формате json |
—logfile | Весь вывод в отдельный лог-файл |
-d | Режим отладки (много сообщений) |
-v | Показать версию программы |
-h | Вызвать справку по работе с программой |
Для сервера:
Ключ | Описание |
---|---|
-s | Запустить iPerf в режиме сервера |
-D | Запустить как демона (как службу) |
-I | Указать pid-файл |
-1 | Принять запрос от одного клиента и завершить работу |
Для клиента:
Ключ | Описание |
---|---|
-c | Запустить iPerf в режиме клиента |
-u | Отправлять UDP-пакеты |
-b | Формат отчетов для bandwidth (средней скорости) |
-t | Количество секунд, в течение которых будет идти проверка скорости |
-n | Объем данных для проверки (применяется вместо времени -t) |
-k | Количество пакетов для проверки (вместо -t или -n) |
-l | Длина буфера записи/чтения |
-P | Число параллельных запросов |
-R | Обратный режим — сервер отправляет, клиент принимает |
-w | Размер сетевого окна |
-C | Установить алгоритм управления перегрузкой TCP |
-M | Задать максимальный размер MTU |
-4 | Работать только для IPv4 |
-6 | Работать только для IPv6 |
-Z | Использовать метод «нулевой копии» для отправки данных |
-O | Опустить первые n секунд |
-T | Задать префикс для каждой строки вывода |
Также самый свежий список ключей можно получить командой:
man iperf3
Автозапуск сервера (создание сервиса в systemd)
По умолчанию, программу нужно запускать вручную. Если мы хотим, чтобы сервер запускался автоматически и работал как служба systemd, выполняем инструкцию ниже.
Создаем юнит в systemd со следующим содержимым:
vi /etc/systemd/system/iperfd.service
[Unit]
Description=iPerf Service
After=network.target
[Service]
Type=forking
PIDFile=/run/iperf3.pid
ExecStart=-/bin/iperf3 -s -D -I /run/iperf3.pid
ExecReload=/bin/kill -HUP $MAINPID
Restart=always
[Install]
WantedBy=multi-user.target
* где
- Description — описание юнита;
- After указывает на юнит, после которого может загружаться наш сервис;
- Type — тип службы;
- PIDFile — путь к pid файлу, в котором хранится номер процесса;
- ExecStart — команда, которую нужно выполнить при старте сервиса (в данном примере запускается iPerf в режиме сервера как демон и создает pid-файл);
- ExecReload — команда для перезапуска службы;
- Restart=always — опция, позволяющая автоматически перезапускать сервис, если он перестанет работать;
- опция WantedBy=multi-user.target позволяет установить для автозапуска службу в обычном многопользовательском режиме.
Перезапускаем systemd:
systemctl daemon-reload
Разрешаем созданный сервис:
systemctl enable iperfd
Запускаем его:
systemctl start iperfd
Проверяем:
systemctl status iperfd
Примеры использования iPerf
Рассмотрим некоторые команды запросов к серверу для проверки скорости соединения.
Использование UDP
iperf3 -c 192.168.0.15 -u
* сам сервер не нужно запускать в UDP-режиме, так как он принимает любые запросы.
Альтернативные порты
Для этого необходимо сначала запустить сервер на нужном порту:
iperf3 -s -p 443
* кстати, можно запустить несколько процессов iperf одновременно, которые будут слушать на разных портах.
* стоит не забывать по настройки брандмауэра. В данном примере понадобиться ввести команды firewall-cmd —permanent —add-port=443/tcp и firewall-cmd —reload.
Теперь можно запускать клиента:
iperf3 -c 192.168.0.15 -p 443
Проверка скорости в течение 30 секунд с интервалами по 2 секунды
iperf3 -c 192.168.0.15 -t 30 -i 2
Несколько параллельных запросов
iperf3 -c 192.168.0.15 -P 3
Отправляем на проверку 3 Гб данных
iperf3 -c 192.168.0.15 -n 3G
Клиент/сервер для Windows
Скачиваем iPerf под Windows с официального сайта. Распаковываем архив и запускаем командную строку (cmd). Переходим в распакованную папку (команда cd).
Можем работать с iperf. Команды такие же, как для Linux, например:
iperf3.exe -c 192.168.0.15
GUI
Для работы с iPerf в графическом интерфейсе есть различные утилиты, например Iperf3-Cygwin-GUI. Скачиваем архив, распаковываем его и запускаем iperf3cygwingui.bat.
В открывшемся окне для простой проверки нужно только прописать адрес iPerf-сервера и нажать кнопку Run Iperf3:
Однако, на моей практике, программа не заработала, а после запуска зависала (или не запускался iperf3.exe). Проблему удалось решить с помощью скачанного с официального сайта клиента (файлов iperf3.exe и cygwin1.dll), которыми я заменил одноименные файлы в папке bin.
При желании, программу можно также запустить в режиме сервера:
jPerf
Для работы в графическом интерфейсе также есть популярная программа jperf. Ее можно скачать с сайта sourceforge. Однако, она создана с использованием старой версии iperf, поэтому я не стал уделять ей много внимания. В целом, процесс и внешний вид не сильно отличается от Iperf3-Cygwin-GUI.
Совместимость iPerf и iPerf3
Клиент и сервер совместимы, но нужно знать, что по умолчанию, рабочий порт для iPerf — 5001, для iPerf3 — 5201.
Поэтому либо необходимо запускать сервер:
iperf3 -s -p 5001
* также не забываем настроить брандмауэр.
Либо запускаем клиентские запросы командой:
iperf -c 192.168.0.15 -p 5201
Публичные сервера iPerf
Актуальные публичные сервера iPerf можно найти на официальном сайте программы. Внимательно смотрите на описания серверов и рабочие порты.
Пример проверки с использованием сервера во Франции:
iperf3 -c bouygues.testdebit.info -p 5200
или в Индонезии:
iperf3 -c iperf.biznetnetworks.com
Свой публичный сервер
Сервер iPerf может обрабатывать только одно подключение одновременно на порту. Поэтому, в условиях публичного использования необходим его запуск на множестве портов одновременно.
В официальной документации это предлагается делать скриптом:
#!/bin/dash
/bin/sleep 10
/usr/bin/killall iperf3
/bin/sleep 0.1
/usr/bin/killall -9 iperf3
/bin/sleep 0.1
if [ `ps -C iperf3 | wc -l` = «1» ]
then
/usr/bin/sudo -u nobody /usr/bin/iperf3 -s -p 5200 -D >/dev/null 2>&1
/usr/bin/sudo -u nobody /usr/bin/iperf3 -s -p 5201 -D >/dev/null 2>&1
/usr/bin/sudo -u nobody /usr/bin/iperf3 -s -p 5202 -D >/dev/null 2>&1
/usr/bin/sudo -u nobody /usr/bin/iperf3 -s -p 5203 -D >/dev/null 2>&1
/usr/bin/sudo -u nobody /usr/bin/iperf3 -s -p 5204 -D >/dev/null 2>&1
/usr/bin/sudo -u nobody /usr/bin/iperf3 -s -p 5205 -D >/dev/null 2>&1
/usr/bin/sudo -u nobody /usr/bin/iperf3 -s -p 5206 -D >/dev/null 2>&1
/usr/bin/sudo -u nobody /usr/bin/iperf3 -s -p 5207 -D >/dev/null 2>&1
/usr/bin/sudo -u nobody /usr/bin/iperf3 -s -p 5208 -D >/dev/null 2>&1
/usr/bin/sudo -u nobody /usr/bin/iperf3 -s -p 5209 -D >/dev/null 2>&1
fi
* пример данного скрипта будет работать не на всех системах. При его использовании необходимо внести в него корректировки.
Мы же настроим сервер при помощи systemd. Ранее мы уже создавали один юнит для запуска iperf. Повторяем процедуру с небольшими изменениями.
Создаем юнит со следующим содержимым:
vi /etc/systemd/system/iperfd5205.service
[Unit]
Description=iPerfService
After=network.target
[Service]
Type=forking
PIDFile=/var/run/iperf3.5205.pid
ExecStart=-/bin/iperf3 -s -p 5205 -D -I /var/run/iperf3.5205.pid
ExecReload=/bin/kill -HUP $MAINPID
Restart=always
[Install]
WantedBy=multi-user.target
* если сравнить с ранее созданным юнитом, мы добавили запуск сервера на порту 5205.
Перезапускаем systemd:
systemctl daemon-reload
Разрешаем юнит и запускаем сервис:
systemctl enable iperfd5205
systemctl start iperfd5205
Повторяем шаги для других портов — создаем для каждого отдельный юнит в systemd. Для публичного сервера лучше создать побольше.
Возможные ошибки
the server is busy running a test. try again later
В данный момент сервер обрабатывает другой запрос или он завис. Если мы являемся администратором сервера, перезагружаем его, в противном случае, ждем.