Au lieu d’accéder à des sites tels que speedtest.net , je souhaite vérifier ma vitesse Internet actuelle depuis le terminal sur Ubuntu. Comment puis-je le faire?
Au lieu d’accéder à des sites tels que speedtest.net , je souhaite vérifier ma vitesse Internet actuelle depuis le terminal sur Ubuntu. Comment puis-je le faire?
Je recommande l’outil speedtest-cli pour cela. J'ai créé un article de blog ( Mesurer la vitesse de connexion Internet à partir de Linux Command Line ) qui décrit en détail le téléchargement, l’installation et l’utilisation.
La version courte est la suivante: (aucune racine requise)
curl -s https://raw.githubusercontent.com/sivel/speedtest-cli/master/speedtest.py | python -
Sortie:
Retrieving speedtest.net configuration...
Retrieving speedtest.net server list...
Testing from Comcast Cable (x.x.x.x)...
Selecting best server based on ping...
Hosted by FiberCloud, Inc (Seattle, WA) [12.03 km]: 44.028 ms
Testing download speed........................................
Download: 32.29 Mbit/s
Testing upload speed..................................................
Upload: 5.18 Mbit/s
speedtest-cli
est maintenant dans les dépôts Ubuntu. Pour Ubuntu 16.04 (Xenial) et utilisation ultérieure:
sudo apt install speedtest-cli
speedtest-cli
Si vous ne parvenez pas à installer iperf, vous pouvez faire précéder toute commande qui déplace une quantité connue de données avec la commande time
et faire une somme.
iperf est simple et facile à utiliser.
Il nécessite un client et un serveur.
sur le serveur
[email protected]$ iperf -s
(sur le client)
[email protected]$ iperf -c server.domain
------------------------------------------------------------
Client connecting to 192.168.1.1, TCP port 5001
TCP window size: 16.0 KByte (default)
------------------------------------------------------------
[ 3] local 192.168.1.3 port 52143 connected with 192.168.1.1 port 5001
[ ID] Interval Transfer Bandwidth
[ 3] 0.0-10.0 sec 113 MBytes 94.7 Mbits/sec
Eh bien, j'utilise wget
pour cela. Ce petit outil me dit bien quelle vitesse j'ai.
Pour l'utiliser, pointez simplement sur un fichier sur Internet relativement plus gros afin de pouvoir en obtenir une meilleure estimation.
Par exemple
en tapant: wget http://hostve.com/neobuntu/pics/Ubu1.avi
commencerait à télécharger le fichier Ubu1.avi et montrerait à quelle vitesse il est en cours de téléchargement.
Bien sûr, il existe plusieurs recommandations:
Vitesse testez-vous avec de bons serveurs. Dans le cas de mon lien, la vitesse est inférieure à 200 Ko, donc si vous avez une vitesse supérieure, le serveur sera le goulot d'étranglement pour vous, pas votre vitesse réelle.
La vitesse maximale que vous verrez est la vitesse maximale que votre connexion et la connexion du serveur peuvent offrir. Si votre connexion est de 512 Ko et que votre site de téléchargement est à 400 Ko, votre connexion maximale sera de 400 Ko car il s'agit du maximum pour le serveur à partir duquel vous téléchargez.
Vous devez faire le test au moins 5 fois pour avoir un contrôle de vitesse fiable ou du moins le faire pendant une minute ou deux. Cela vous aidera à effectuer une vérification plus précise.
Vous devez avoir au moins 4 ou 5 sources de test différentes pour avoir une vitesse plus précise. Ne testez jamais uniquement à partir du même site car cela peut être affecté par votre distance, tout problème sur le serveur et ses connexions, etc. Testez toujours depuis différents serveurs.
ARIA2
Ceci est une alternative à wget
. L'inconvénient de wget
est le manque de connexions parallèles. Pour utiliser aria2, il faut le télécharger:
sudo apt-get install aria2
Pour l'utiliser c'est simple:
Dans l'image, le -x 4 correspond au nombre de connexions parallèles que nous souhaitons utiliser. Le paramètre CN de la ligne suivante indique le nombre de connexions parallèles actives autorisées à télécharger depuis ce site. Dans ce cas, CN est 4. Mais si nous essayions d'avoir plus de connexions, nous aurions quelque chose comme ça:
Nous établissons 8 connexions parallèles mais le site n'autorise qu'un maximum de 5, comme le montre CN: 5. Cela pourrait être résolu par l'option -j qui indique à aria2c le nombre maximal de connexions simultanées souhaitées (dont la valeur par défaut est 5), mais si le serveur l'a limité, -j ne fonctionnera pas.
Comme speedtest-cli est une application python, son installation est beaucoup plus simple:
pip install speedtest-cli
ou:
easy_install speedtest-cli
Selon la manière dont Python est installé sur votre système, vous devrez peut-être être root pour effectuer les opérations ci-dessus.
Exécutez plusieurs instances de wget avec la commande timeout sur les fichiers volumineux:
#!/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 &
Ensuite, écrivez un script pour calculer le nombre total d'octets téléchargés et divisez 5 secondes pour obtenir un nombre d'octets / s. 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 ligne "timeout 5 wget url" fonctionne, et vous obtenez un fichier partiellement téléchargé (si 5 secondes ne suffisent pas pour terminer le téléchargement).
vous pouvez utiliser tespeed
. c'est un test de vitesse du réseau Terminal Server qui utilise les serveurs de Speedtest.net
. Il utilise le serveur de test le plus proche mais peut également en utiliser un spécifié manuellement par l'utilisateur.
git clone git://github.com/Janhouse/tespeed.git
cd tespeed
git submodule init
git submodule update
./tespeed.py
pour plus d’informations, utilisez:
./tespeed.py -h
cela fournira plus d'option pour le test de vitesse.
Script bash simple basé sur la réponse de @rexis. Vous pouvez mettre vos propres liens pour tester le tableau 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 $TMP_PATH | grep total | awk '{print }')
echo "Cleaning up"
rm -rf $TMP_PATH
speed=$(expr $total_bytes / $TEST_TIME)
echo "Speed is $speed Kb/s"
exit 0
un simple traceur qui teste combien de temps il faut pour télécharger 100 Mo (fonctionne également sur /bin/sh
):
t=$(date +"%s"); wget http://speedtest.tele2.net/100MB.zip -O ->/dev/null ; echo -n "MBit/s: "; expr 8 \* 100 / $(($(date +"%s")-$t))
explication:
8 * 100mb / $t
Lire d'autres questions sur les étiquettes command-line internet download-speed