Réaliser un Speedtest sur un serveur Linux avec iPerf
Speedtest avec speedtest-cli
La solution la plus simple pour réaliser un test de débit sur linux est d'utiliser speedtest-cli :
pip3 install --upgrade speedtest-cli
Utilisation de l'outil
Lister les server les plus proches, pour réaliser le test de débit
speedtest-cli --list
Réaliser un test basique et récupérer l'image du résultat
speedtest-cli --share
root@srvtest ~ $ speedtest-cli --share master
Retrieving speedtest.net configuration...
Testing from Hetzner Online GmbH (138.201.68.55)...
Retrieving speedtest.net server list...
Selecting best server based on ping...
Hosted by Cronon GmbH (Berlin) [1.64 km]: 17.256 ms
Testing download speed................................................................................
Download: 694.83 Mbit/s
Testing upload speed......................................................................................................
Upload: 597.40 Mbit/s
Share results: http://www.speedtest.net/result/10827725744.png
Réaliser un test de débit en spécifiant le serveur à utiliser
Identifiez le server ID sur lequel vous souhaitez pointer avec la commande --list, et lancez le speed-test avec l'option --server :
root@srvtest ~ $ speedtest-cli --server 18720 1 ↵ master
Retrieving speedtest.net configuration...
Testing from Hetzner Online GmbH (138.201.68.55)...
Retrieving speedtest.net server list...
Retrieving information for the selected server...
Hosted by SATAN s.r.o. (Trutnov) [279.56 km]: 29.058 ms
Testing download speed................................................................................
Download: 762.45 Mbit/s
Testing upload speed......................................................................................................
Upload: 612.23 Mbit/s
Speedtest avec iPerf3
Installation d'iPerf3
iPerf3 est disponible dans les repos Debian/Ubuntu/CentOS mais peut également être installé via Python PIP. Nous allons récupérer le paquet dans les repos :
apt install iperf3
Utilisation d'iPerf3 pour réaliser un test de débit entre deux hosts
L'outil utilise par défaut le port 5201 en TCP et UDP. Ouvrez donc ce port sur la machine cible :
ufw allow 5201/tcp
ufw allow 5201/udp
Lancez le mode server sur la machine cible :
iperf3 -s
Sur la machine source, lancez votre test de débit en spécifiant la machine cible :
iperf3 -c 192.168.1.10
Vous verrez ainsi passer les échanges sur les deux machines et une moyenne vous sera affichée :
Accepted connection from 192.168.1.11, port 38872
[ 5] local 192.168.1.10 port 5201 connected to 192.168.1.11 port 38874
[ ID] Interval Transfer Bitrate
[ 5] 0.00-1.00 sec 1.00 GBytes 8.62 Gbits/sec
[ 5] 1.00-2.00 sec 990 MBytes 8.31 Gbits/sec
[ 5] 2.00-3.00 sec 1012 MBytes 8.49 Gbits/sec
[ 5] 3.00-4.00 sec 1003 MBytes 8.41 Gbits/sec
[ 5] 4.00-5.00 sec 1006 MBytes 8.44 Gbits/sec
[ 5] 5.00-6.00 sec 1.07 GBytes 9.16 Gbits/sec
[ 5] 6.00-7.00 sec 1001 MBytes 8.39 Gbits/sec
[ 5] 7.00-8.00 sec 982 MBytes 8.24 Gbits/sec
[ 5] 8.00-9.00 sec 1.04 GBytes 8.92 Gbits/sec
[ 5] 9.00-10.00 sec 993 MBytes 8.33 Gbits/sec
[ 5] 10.00-10.00 sec 1.25 MBytes 7.64 Gbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bitrate
[ 5] 0.00-10.00 sec 9.93 GBytes 8.53 Gbits/sec receiver
Réalisation du test iPerf3 avec Docker
Sur la machine hôte, lancez le docker iPerfs comme ceci :
docker run -it --rm --network=host --name=iperf3-server -p 5201:5201 networkstatic/iperf3 -s
Ensuite, sur le client, lancez le test en pointant sur l'IP de la machine hôte :
docker run -it --rm networkstatic/iperf3 -c 192.168.1.10