Come verificare la velocità di Internet tramite terminale?

352

Invece di visitare siti come speedtest.net , voglio controllare la mia attuale velocità di Internet dal terminale su Ubuntu. Come posso farlo?

    
posta kernel_panic 16.02.2012 - 15:24

11 risposte

551

Raccomando lo strumento speedtest-cli per questo. Ho creato un post sul blog ( Misura la velocità della connessione a Internet dal Linux Command Line ) che entra nei dettagli di download, installazione e utilizzo di esso.

La versione breve è questa: (nessuna root richiesta)

curl -s https://raw.githubusercontent.com/sivel/speedtest-cli/master/speedtest.py | python -

Output:

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

Aggiornamento 2016:

speedtest-cli è ora disponibile nei repository di Ubuntu. Per Ubuntu 16.04 (Xenial) e versioni successive:

sudo apt install speedtest-cli
speedtest-cli
    
risposta data mweisel 19.03.2013 - 09:11
78

prova su riga di comando

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

prova anche questo

sourceforge.net/projects/tespeed/

preso dal link sopra

    
risposta data Tachyons 16.02.2012 - 15:57
45

Se non puoi preoccuparti di installare iperf, puoi precedere qualsiasi comando che sposta una quantità nota di dati con il comando time e fare una somma.

iperf è semplice e facile da usare.

Richiede un client e un server.

(sul server)

 [email protected]$ iperf -s

(sul 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

Altri dettagli

    
risposta data One Zero 16.02.2012 - 16:21
31

Bene, io uso wget per questo. Quel piccolo strumento mi dice bene quale velocità ho.

Per utilizzarlo basta puntare a un file in Internet che sia relativamente più grande in modo da poterne ottenere una stima migliore.

Ad esempio

digitando: wget http://hostve.com/neobuntu/pics/Ubu1.avi inizierà a scaricare il file Ubu1.avi e mostrerà a quale velocità sta scaricando.

Naturalmente ci sono diversi consigli:

  1. Verifica la velocità con buoni server. Nel caso del mio collegamento la velocità è inferiore a 200 KB, quindi se hai una velocità maggiore, il server sarà il collo di bottiglia per te, non la velocità effettiva.

  2. La velocità massima che vedrai è la velocità massima che la tua connessione e la connessione del server possono offrire. Se la tua connessione è 512KB e il luogo dove stai scaricando è 400KB, la tua connessione massima sarà 400KB perché è il massimo per il server da cui stai scaricando.

  3. È necessario eseguire il test almeno 5 volte per avere un controllo affidabile della velocità o almeno farlo per un minuto o due. Questo ti aiuterà ad avere un controllo più accurato.

  4. È necessario disporre di almeno 4 o 5 diverse origini di test per avere una velocità più accurata. Non provate mai solo dallo stesso sito in quanto questo può essere influenzato dalla vostra distanza, qualsiasi problema nel server e le connessioni ad esso, ecc. Test sempre da server diversi.

Aria2

Questa è un'alternativa a wget . Lo svantaggio di wget è la mancanza di connessioni parallele. Per usare aria2 abbiamo bisogno di scaricarlo pugno:

   sudo apt-get install aria2

Per usarlo è semplice:

Nell'immagine, -x 4 indica quante connessioni parallele desideriamo utilizzare. Il parametro CN nella riga successiva mostra quante connessioni parallele attive sono state autorizzate a scaricare da quel sito. In questo caso CN è 4. Ma se provassimo ad avere più connessioni avremmo qualcosa del genere:

Abbiamo impostato 8 connessioni parallele, ma il sito ha consentito solo un massimo di 5 come mostrato da CN: 5. Questo potrebbe essere risolto con l'opzione -j che dice a aria2c le connessioni simultanee massime che vogliamo (che di default è 5) ma se il server ha limitato questo, -j non funzionerà.

    
risposta data Luis Alvarado 16.02.2012 - 16:12
16

Poiché speedtest-cli è un'applicazione python, è molto più semplice da installare:

pip install speedtest-cli

o

easy_install speedtest-cli

A seconda di come Python è installato sul tuo sistema, potresti aver bisogno di essere root per fare quanto sopra.

    
risposta data BobC 02.12.2013 - 16:06
5

Mi è piaciuto il speedometer Ubuntu cli.

speedometer -r eth0

Per vedere un grafico in tempo reale della velocità dei dati in arrivo.

    
risposta data 6ft Dan 02.09.2016 - 23:22
3

Esegui diverse istanze di wget con il comando timeout su file di grandi dimensioni:

#!/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 &

Quindi scrivi uno script per calcolare i byte totali scaricati e dividi 5 secondi per ottenere una cifra in byte / sec. Dovrebbe essere abbastanza preciso e puoi aggiungere più istanze per massimizzare la larghezza di banda.

Devo ancora testare lo script completo, ma il comando a linea singola "timeout 5 wget url" funziona e ottieni un file parzialmente scaricato come risultato (se 5 secondi non sono sufficienti per completare il download).

    
risposta data rexis 20.09.2013 - 04:29
3

puoi utilizzare tespeed . è un test di velocità della rete Terminal che utilizza server da Speedtest.net . Utilizza il server di prova più vicino, ma può anche utilizzarne uno specificato manualmente dall'utente.

 git clone git://github.com/Janhouse/tespeed.git
 cd tespeed
 git submodule init
 git submodule update
 ./tespeed.py 

per ulteriori informazioni usa:

 ./tespeed.py  -h

fornirà più opzioni per il test della velocità.

    
risposta data pl_rock 12.09.2015 - 08:08
2

Semplice script bash basato sulla risposta @rexis. Puoi mettere i tuoi link per testare in links array o leggerli dal file

#!/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
    
risposta data Darkside 24.03.2015 - 13:28
0

Puoi anche provare link

Usano curl (che è una ben nota utility da riga di comando) per eseguire un test di velocità.

In breve

wget link & amp; & amp; chmod u + x speedtest.sh & amp; & amp; bash speedtest.sh

    
risposta data user385795 07.03.2015 - 19:17
0

un semplice one-liner che verifica quanto tempo ci vuole per scaricare 100 MB (funziona anche su /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))

spiegazione:

  1. memorizza il timestamp in $ t
  2. scarica 100mb ma non memorizza nulla
  3. calcola 8 * 100mb / $t
risposta data rubo77 29.08.2015 - 09:29

Leggi altre domande sui tag