649 votes

Comment vérifier la vitesse d'Internet via le terminal ?

Au lieu d'aller sur des sites comme speedtest.net Je veux vérifier ma vitesse Internet actuelle à partir du terminal sur Ubuntu. Comment puis-je le faire ?

4 votes

Les résultats que j'obtiens avec speedtest-cli sont largement inférieurs à ceux obtenus avec speedtest.net speedtest-cli Download 18.27 Mbits/s Upload 3.43 Mbits/s speedtest.net Download 59.38 Mbits/s Upload 12.14 Mbits/s Je ne peux pas considérer speedtest-cli comme un test valide de la vitesse du réseau.

2 votes

@user375058 : Le speedtest-cli utilise les mêmes serveurs (etc.) que SpeedTest.net. Vous devriez considérer le speedtest-cli y www.speedtest.net pour être équivalent, juste avec un front-end différent. Je serais surpris si vous obteniez de manière significative des résultats différents de manière cohérente s'ils utilisent tous deux le même serveur. S'ils n'utilisent pas le même serveur, vous n'avez aucune base de comparaison. Enfin, mes résultats pour les deux utilitaires varient d'un facteur de 2 à 4 d'une exécution à l'autre. Je vous suggère de tester 2-4 serveurs, d'effectuer 3-4 exécutions pour chaque serveur et de comparer les outils.

0 votes

@user375058 : En fait, je viens de faire ce que j'ai suggéré. Voir le lien dans mon commentaire ci-dessous pour mes résultats.

3voto

rexis Points 31

Exécuter plusieurs instances de wget avec la commande timeout sur les gros fichiers :

#!/bin/bash

timeout 5 wget -q url_1/100MB.zip &
timeout 5 wget -q url_2/file.zip &
timeout 5 wget -q url_3/sample.mov &
timeout 5 wget -q url_4/speech.mp4 &

Puis écrivez un script pour calculer le nombre total d'octets téléchargés et diviser 5 secondes, vous obtiendrez un chiffre d'octets/sec. Cela devrait être assez précis et vous pouvez ajouter plus d'instances pour maximiser votre bande passante.

Je n'ai pas encore testé le script complet mais la commande en une seule ligne "timeout 5 wget url" fonctionne, et vous obtenez comme résultat un fichier partiellement téléchargé (si 5 secs ne suffisent pas à terminer le téléchargement).

0 votes

Cela nécessiterait la mise en place d'un serveur...

0 votes

Url_1,2,3,4 peut être n'importe quoi, comme des serveurs publics.

0 votes

Par exemple timeout 5 wget http://speedtest.netcologne.de/test_100mb.bin -O /tmp/temp5sec puis analyser la taille des fichiers et diviser par 5 : expr $(stat --printf="%s" /tmp/temp5sec) / 5 / 1024 en kbit/s

2voto

sura Points 249

Simple bash script basé sur la réponse de @rexis. Vous pouvez mettre vos propres liens pour les tests dans links ou les lire depuis un fichier

#!/bin/bash
export LC_ALL=C  #make output in English eg for later use with "du | grep"

TMP_PATH=/tmp/speedtest_data/
TEST_TIME=5

rm -rf $TMP_PATH && mkdir $TMP_PATH

links=("http://client.cdn.gamigo.com/bp/eu/com/110a/BPClientSetup-2b.bin" "http://client.cdn.gamigo.com/bp/eu/com/110a/BPClientSetup-1b.bin" "http://client.cdn.gamigo.com/bp/eu/com/110a/BPClientSetup-1c.bin" "http://ftp.ntua.gr/pub/linux/ubuntu-releases-dvd/quantal/release/ubuntu-12.10-server-armhf+omap.img" "http://ftp.funet.fi/pub/Linux/INSTALL/Ubuntu/dvd-releases/releases/12.10/release/ubuntu-12.10-server-armhf+omap.img" "http://ftp.icm.edu.pl/pub/Linux/opensuse/distribution/13.2/iso/openSUSE-13.2-DVD-x86_64.iso")

echo "Testing download"

for link in ${links[*]}
do
    timeout $TEST_TIME wget -q -P $TMP_PATH $link &
done

wait

total_bytes=$(du -c -b $TMP_PATH | grep total | awk '{print $1}')

echo "Cleaning up"
rm -rf $TMP_PATH

speed=$(echo "scale=2; $total_bytes / $TEST_TIME / 128" |bc)

echo "Speed is $speed Mbit/s"

exit 0

0 votes

Un bémol - qu'en est-il lorsque j'utilise une autre langue que l'anglais ? voir : grep :) part

1voto

trellem Points 61

Pour obtenir commodément ma vitesse de téléchargement en bits par seconde, je définis ce qui suit dans mon fichier $HOME/.bash_aliases :

speed-test='wget --output-document=/dev/null --report-speed=bits http://speedtest.wdc01.softlayer.com/downloads/test500.zip'

où :

--output-document=/dev/null rejette effectivement la sortie de wget

--report-speed=bits affiche la vitesse moyenne de téléchargement de wget en bits par seconde (bps) au lieu des octets par seconde (Bps) par défaut.

1voto

arielf Points 2623

Pour les cartes + la vue à 30 000 pieds des vitesses réelles représentatives

Je cherchais :

  • Une vision large, multi-ISP et représentative des vitesses réelles.
  • Vitesse de téléchargement + latences aller-retour. Pas seulement les vitesses de téléchargement
  • Éliminez les préjugés des fournisseurs d'accès à Internet et les astuces qu'ils pourraient utiliser pour faire apparaître des tests de vitesse spécifiques plus rapides que la plupart des autres vitesses.
  • Une sortie graphique de haut niveau plutôt que de simples chiffres. Une image vaut mille mots

Ne trouvant rien qui réponde à toutes ces exigences, j'ai écrit le mien en évitant autant que possible de réinventer la roue.

Sous le capot, j'ai utilisé speedtest-cli pour la sélection des ISP et les métriques, et R/ggplot pour le traçage. Le code a été bien testé sur Ubuntu 16.04, 18.04 & 20.04.

Le résultat fournit les trois principales mesures (temps d'aller-retour pour le téléchargement, le chargement et le ping) pour les 20 centres de données les plus proches de vous (le testeur), ainsi que les distances estimées et les noms des fournisseurs d'accès à Internet.

Code source

Tout le code est disponible sur github avec des conseils, des exemples et mon histoire de recherche de meilleures vitesses.

Tout ce code est basé sur le CLI. Le visualisateur d'images peut également être appelé à partir de la ligne de commande.

Exemple des graphiques qu'il génère

Après une mise à niveau du plan (les vitesses DL sont excellentes, les vitesses UL pas tellement)

results 2020-05-25

Un test antérieur annoté manuellement, testant une théorie :

manually annotated earlier test

0voto

user385795 Points 1

Vous pouvez également essayer http://dl.getipaddr.net

Ils utilisent curl (qui est un utilitaire de ligne de commande bien connu) pour effectuer un test de vitesse.

En bref

wget https://raw.github.com/blackdotsh/curl-speedtest/master/speedtest.sh && chmod u+x speedtest.sh && bash speedtest.sh

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X