web-dev-qa-db-fra.com

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

Au lieu d'aller sur des sites tels que speedtest.net , je souhaite vérifier ma vitesse Internet actuelle à partir du terminal sous Ubuntu. Comment puis-je le faire?

430
kernel_panic

Je recommande l'outil speedtest-cli pour cela. J'ai créé un article de blog ( = Mesurer la vitesse de connexion Internet à partir de la ligne de commande Linux ), 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

Mise à jour en 2018:

Utiliser pip install --user speedtest-cli vous donne une version probablement plus récente que celle disponible dans les référentiels de votre distribution.

Mise à jour en 2016:

speedtest-cli est maintenant dans les référentiels Ubuntu. Pour Ubuntu 16.04 (Xenial) et versions ultérieures:

Sudo apt install speedtest-cli
speedtest-cli
699
mweisel

essayez ceci en ligne de commande

wget --output-document=/dev/null http://speedtest.wdc01.softlayer.com/downloads/test500.Zip

essayez aussi

sourceforge.net/projects/tespeed/

obtenu par le lien ci-dessus

89
Tachyons

Si vous ne souhaitez 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 effectuez une somme.

iperf est simple et facile à utiliser.

Cela nécessite un client et un serveur.

(sur le serveur)

 user@server$ iperf -s

(sur le client)

 user@client$ 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

Plus de détails

51
One Zero

Eh bien, j'utilise wget pour cela. Ce petit outil me dit joliment quelle est ma vitesse.

Pour l'utiliser, il suffit de pointer sur un fichier Internet relativement volumineux afin d'obtenir une meilleure estimation de celui-ci.

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 se télécharge.

enter image description here

Bien sûr, il y a plusieurs recommandations:

  1. Testez-vous rapidement avec de bons serveurs. Dans le cas de ma liaison, la vitesse est inférieure à 200 Ko. Par conséquent, si vous avez une vitesse supérieure, le serveur sera le goulot d'étranglement pour vous, et non votre vitesse réelle.

  2. La vitesse la plus élevée que vous verrez est la vitesse maximale que votre connexion et celle du serveur peuvent offrir. Si votre connexion est de 512 Ko et que vous téléchargez 400 Ko, le nombre maximal de connexions sera de 400 Ko, car il s'agit du maximum pour le serveur à partir duquel vous effectuez le téléchargement.

  3. Vous devez faire le test au moins 5 fois pour avoir un contrôle de vitesse fiable ou au moins pendant une minute ou deux. Cela vous aidera à avoir un contrôle plus précis.

  4. 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, par tout problème du serveur et de ses connexions, etc. Effectuez toujours des tests sur des serveurs différents.

ARIA2

C'est une alternative à wget. L'inconvénient de wget est le manque de connexions parallèles. Pour utiliser aria2, nous devons d'abord le télécharger:

   Sudo apt-get install aria2

Pour l'utiliser c'est simple:

enter image description here

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 pouvant être téléchargées à partir de ce site. Dans ce cas, CN est 4. Mais si nous essayions d'avoir plus de connexions, nous obtiendrions quelque chose comme ceci:

enter image description here

Nous avons défini 8 connexions parallèles mais le site ne permettait qu'un maximum de 5 comme indiqué par CN: 5. Cela pourrait être résolu par l'option -j qui indique à aria2c le nombre maximal de connexions simultanées que nous voulons (qui est 5 par défaut), mais si le serveur l'a limité, -j ne fonctionnera pas.

33
Luis Alvarado

Puisque speedtest-cli est une application python, il est beaucoup plus facile de l'installer de la manière suivante:

pip install speedtest-cli

ou:

easy_install speedtest-cli

En fonction de la manière dont Python est installé sur votre système, vous devrez peut-être accéder à la racine pour effectuer les opérations ci-dessus.

18
BobC

J'aime le speedometer Ubuntu cli.

speedometer -r eth0

Pour regarder un graphique en direct des vitesses de données entrantes.

7
6ft Dan

Exécutez plusieurs instances de wget avec la commande timeout sur des 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-le en 5 secondes pour obtenir un chiffre en 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 à ligne unique "timeout 5 wget url" fonctionne et vous obtenez un fichier partiellement téléchargé en conséquence (si 5 secondes ne suffisent pas pour terminer le téléchargement).

3
rexis

vous pouvez utiliser tespeed. il s’agit d’un test de vitesse du réseau de terminaux utilisant des 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 

enter image description here

pour plus d'informations, utilisez:

 ./tespeed.py  -h

il fournira plus d'option pour le test de vitesse.

3
pl_rock

Script bash simple basé sur la réponse @rexis. Vous pouvez mettre vos propres liens pour les tests dans le tableau links ou les lire à partir d'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
2
Darkside

Pour obtenir facilement 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 efficacement la sortie wget

--report-speed=bits affiche la moyenne de la vitesse de téléchargement wget en bits par seconde (bits/s) à la place des octets par seconde (bits/s) par défaut

1
trellem

un one-liner simple qui teste le temps nécessaire 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:

  1. stocker l'horodatage dans $ t
  2. télécharger 100 Mo mais ne rien stocker
  3. calculer 8 * 100mb / $t
1
rubo77

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

Ils utilisent curl (un utilitaire bien connu en ligne de commande) pour exécuter 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

0
user385795

Je voulais quelque chose de plus avancé que speedtest.net et diverses solutions qui reposent uniquement sur un seul site Web. J'ai donc fait ce que je fais normalement et écrit ma propre solution:

https://github.com/cubiclesoft/network-speedtest-cli

De la liste des fonctionnalités:

  • Tests de vitesse SSH/SFTP (port 22).
  • Common TCP ports 80, 443 et 8080 ainsi que des tests de vitesse de port aléatoires TCP à l'aide d'un serveur TCP/IP personnalisé prenant en charge des vitesses allant jusqu'à 2,2 Gbps et 780 Mbps.
  • Test de latence réseau assez basique.
  • Faites tourner les gouttelettes Digital Ocean et testez la vitesse SSH/SFTP et divers ports TCP.
  • Speedtest.net et tests de vitesse personnalisés sur OoklaServer. Produit des résultats similaires à ceux des tests de connexion unique sur single.speedtest.net.
  • Sortie JSON pure en mode silencieux (-s).

C'est une solution plus générique qui peut être consommée par d'autres applications. J'ai réussi à identifier un problème de réseau FAI avec lequel il a doublé ma vitesse en aval de SFTP, ce qui a augmenté le bonheur.

0
CubicleSoft