Linux : comment tester son débit Internet en ligne de commande ?

I. Présentation

Dans ce tutoriel, nous allons voir comment tester son débit Internet en ligne de commande sur une machine Linux avec les outils Speedtest et Speedtest-cli.

Lorsqu'il s'agit de tester son débit Internet, que ce soit le débit descendant (download), le débit montant (upload) ou encore la latence, on a tous l'habitude d'utiliser un site en ligne. D'ailleurs, on peut en lister quelques-uns sans trop réfléchir : Speedtest, nPerf et Fast.

C'est facile sur Windows, car on a une interface graphique (dans une très grande majorité des cas) donc il suffit de dégainer un navigateur, d'accéder au site et le tour est joué. Sous Linux par contre, s'il n'y a pas d'interface graphique, on se retrouve coincé ! Comment faire ? Nous allons voir qu'il existe plusieurs outils, avec plus ou moins d'options, pour tester sa connexion Internet en ligne de commande !

Pour la suite de ce tutoriel, je vais utiliser une machine sous Debian 11, mais les outils sont multiplateformes (se référer aux liens).

II. Speedtest CLI sous Linux

Le site Speedtest.net propulsé par Ookla dispose d'une version accessible en ligne de commande nommée "Speedtest CLI". Compatible avec macOS, Windows (exécutable à télécharger) et plusieurs distributions Linux (Debian, Ubuntu, CentOS, Red Hat, Fedora, FreeBSD). Son installation est expliquée sur le site officiel de Speedtest : Speedtest CLI.

Sur Debian, il suffit d'exécuter ces commandes (cela nécessite d'avoir curl sur la machine) :

curl -s https://install.speedtest.net/app/cli/install.deb.sh | sudo bash
sudo apt-get install speedtest

speedtest-cli sous Linux

Ensuite, pour réaliser un test de débit, il suffit d'exécuter la commande suivante :

speedtest

Lors de la première exécution, il faudra accepter les différentes licences d'utilisation. Ensuite, ce ne sera plus nécessaire. Le test de débit va s'exécuter et vous allez obtenir 4 informations :

  • Latence via le champ "Latency"
  • Débit descendant via le champ "Download"
  • Débit montant via le champ "Upload"
  • Pourcentage de paquets perdus via le champ "Packet Loss"

Voici un exemple :

Tester son débit Internet en ligne de commande

En regardant l'aide de l'outil Speedtest, on peut voir qu'il y a quelques options à notre disposition :

Vous pouvez obtenir la liste des serveurs Speedtest disponibles :

speedtest -L

Repérez l'ID du serveur que vous souhaitez utiliser et spécifiez cet ID au moment de relancer le test de débit :

speedtest -s 12746

Lorsque l'on effectue un test sans préciser de serveur, on ne sait pas trop quel serveur va être utilisé. En fait, c'est le serveur avec la latence la plus faible à l'instant t qui sera utilisé. Pour en savoir un peu plus sur le processus de sélection du serveur, il faut ajouter l'option "--selection-details" et on peut voir que le serveur avec la plus faible latence sera utilisé :

speedtest --selection-details

Nous venons de voir l'outil officiel du site Speedtest. Désormais, nous allons voir un second outil qui permet d'avoir quelques options supplémentaires.

III. Speedtest-cli : l'alternative avec plus d'options

L'outil Speedtest-CLI s'appuie toujours sur le site Speedtest, mais à la différence de l'outil officiel que nous venons de voir, il intègre des options pour effectuer seulement un test de download ou d'upload, par exemple. Voici le lien vers ce projet : Speedtest-CLI

Il est écrit en Python, donc vous devez installer Python sur votre machine avant toute chose :

sudo apt-get update
sudo apt-get install python

Ensuite, on peut télécharger Speedtest-cli à partir de GitHub via wget :

wget -O speedtest-cli https://raw.githubusercontent.com/sivel/speedtest-cli/master/speedtest.py

Nous devons ajouter les droits d'exécution au fichier "speedtest-cli" que l'on vient de télécharger :

chmod +x speedtest-cli

A partir de là, on peut exécuter l'outil et consulter son aide afin de visualiser toutes les options disponibles :

./speedtest-cli -h

speedtest-cli

Par exemple, pour tester uniquement le débit descendant (download), on utilisera la commande suivante :

./speedtest-cli --no-upload

Il est également possible de choisir le serveur distant que vous souhaitez utiliser pour ce test de débit. Il faut commencer par lister les serveurs disponibles (sur le même principe que "-L" de l'outil précédent) :

./speedtest-cli --list

Ensuite, on repère l'ID du serveur que l'on veut utiliser en regardant la première valeur au début de chaque ligne. Voici un exemple pour s'appuyer sur le serveur SFR avec l'ID "12746".

./speedtest-cli --server 12746

En complément, le mode CSV peut-être assez cool pour obtenir des données formatées :

./speedtest-cli --csv

Tout en sachant que les en-têtes sont :

Server ID,Sponsor,Server Name,Timestamp,Distance,Ping,Download,Upload,Share,IP Address

Comme promis, speedtest-cli est un outil qui propose quelques options pour affiner la requête même si l'outil officiel est déjà très complet. Personnellement, je préfère utiliser l'outil officiel, mais il est intéressant de connaître l'existence de cette alternative.

Connaissez-vous d'autres alternatives en ligne de commande ?

Partagez cet article Partager sur Twitter Partager sur Facebook Partager sur Linkedin Partager sur Google+ Envoyer par mail

Florian Burnel

Ingénieur système et réseau, cofondateur d'IT-Connect et Microsoft MVP "Cloud and Datacenter Management". Je souhaite partager mon expérience et mes découvertes au travers de mes articles. Généraliste avec une attirance particulière pour les solutions Microsoft et le scripting. Bonne lecture.

florian has 3872 posts and counting.See all posts by florian

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.

 

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.