Domanda Come controllare la velocità di Internet tramite terminale?


Invece di andare a siti come speedtest.net, Voglio controllare la mia attuale velocità di Internet dal terminale di Ubuntu. Come posso farlo?


357
2018-02-16 14:24


origine


I risultati che sto ottenendo con speedtest-cli sono ampiamente inferiori a quello che ricevo da speedtest.net speedtest-cli Scarica 18.27 Mbits / s Upload 3.43 Mbits / s speedtest.net Scarica 59.38 Mbits / s Carica 12.14 Mbits / s Non posso considera speedtest-cli come un test valido della velocità della rete.
@ user375058: The speedtest-cli utilizza gli stessi server (ecc.) di SpeedTest.net. Dovresti considerare il speedtest-cli e www.speedtest.net per essere equivalente, solo con un front-end diverso. Sarei sorpreso se capisci in modo significativo risultati diversi in modo coerente se entrambi utilizzano lo stesso server. Se non utilizzano lo stesso server, non hai basi per il confronto. Infine, i miei risultati per entrambe le utilità variano di un fattore 2-4 dall'inizio alla fine. Suggerisco di testare 2-4 server, ed eseguire 3-4 esecuzioni per ogni server e confrontare gli strumenti. - jvriesem
@ user375058: In realtà ho appena fatto ciò che ho suggerito. Vedere il link nel mio commento qui sotto per i miei risultati. - jvriesem
sudo apt install speedtest-cli - ColdCold


risposte:


Raccomando il SpeedTest-cli strumento per questo. Ho creato un post sul blog (Misura la velocità della connessione Internet dalla riga di comando di Linux) che entra nei dettagli di download, installazione e utilizzo di esso.

La versione breve è questa: (nessuna radice richiesta)

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

Produzione:

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 nel 2016:

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

sudo apt install speedtest-cli
speedtest-cli

563
2018-03-19 08:11



Questo non sembra funzionare correttamente. Ho BT infinity 50bBit down e 20Mbit up. Ma i risultati appaiono come 0,53 Mbit in calo e 0,2 Mbit in aumento. Eh? Posizionamento decimale errato? usando wget ottengo 4.27M / s (34Mbit) (qualche altro server però)? - ppumkin
Come è già stato affermato Qui: 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. - CrandellWS
Confermando ciò speedtest-cli è rotto. Non mostra velocità superiori a 1 Mbps. Non trasferisce alcuna informazione quando si richiede di farlo. - int_ua
Questa dovrebbe essere la risposta accettata ... speedtest-cli sta funzionando bene per me; penso che @int_ua abbia o problemi di compatibilità o problemi di internet. - peelman
Questa dovrebbe essere la risposta giusta. Test di velocità significa scaricare e caricare. La prima risposta SOLO misura la velocità di download, che NON è un'immagine completa della velocità della tua connessione internet. Soprattutto se stai ospitando qualcosa su quella macchina! - Emil Borconi


provalo sulla riga di comando

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

prova anche questo

sourceforge.net/projects/tespeed/

ottenuto da sopra link


78
2018-02-16 14:57



Potresti spiegare cosa? /dev/null sta per? - nutty about natty
È un file speacial che semplicemente cancella i dati scritti su di esso, - Tachyons
Per me su Ubuntu 14.10 con python 2.7.8 il comando wget --output-document=/dev/null http://speedtest.wdc01.softlayer.com/downloads/test500.zip funziona molto meglio dell'uso speedtset-cli la versione successiva sembra bloccarsi e ^ C non interrompe il comando. Con wget non ho problemi a tagliare il download shrot con ^ C - Willoczy
@mlissner, sembra la prima velocità in megabit, la seconda in megabyte .. - vp_arth
@mlissner 1,5 x 8 = 12. uno è kbps e l'altro è KBps :-) - Tachyons


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

iperf è semplice e facile da usare.

Richiede un client e un server.

(sul server)

 user@server$ iperf -s

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

Più dettagli


46
2018-02-16 15:21



+1 iperf è fantastico per la convalida della velocità Ethernet e Wi-Fi - kfmfe04
iperf è ottimo per la LAN ma l'utente sta chiedendo informazioni sulla WAN. - IMTheNachoMan


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 è relativamente più grande in modo da poterne ottenere una stima migliore.

Per esempio

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

enter image description here

Certamente ci sono diverse raccomandazioni:

  1. Mettiti alla prova con ottimi 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 tua 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 della velocità affidabile 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 fonti 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:

   sudo apt-get install aria2

Per usarlo è semplice:

enter image description here

Nell'immagine, il -x 4 è il numero di connessioni parallele che 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:

enter image description here

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


31
2018-02-16 15:12



wget non è (ancora) in grado di fare un download segmentato, ovvero scaricare un singolo file usando più connessioni (parallele), quindi se il tuo ISP limita la velocità per 1 connessione, non otterrai risultati accurati ... sarebbe un test più preciso per utilizzare qualche altro strumento, che può almeno utilizzare il download segmentato (come aria2) - Mladen B.
@MladenB. Grazie. Aggiunto Aria2 ad esso. - Luis Alvarado♦
Questo NON è un test di velocità, questo è solo un test di velocità DOWNLOAD! Test di velocità di Internet significa down & up load! Seconda risposta, e tutti gli altri che menzionano speedtest-cli hanno l'approccio corretto. - Emil Borconi
@EmilBorconi Hai ragione ma nella vita reale non stiamo facendo benchmarking delle velocità di Internet qui, questo è solo il tuo test di velocità media corrente di qualsiasi utente domestico senza la necessità di siti come speedtest. Una velocità di download (che è sufficiente per chiunque cerchi di vedere se stanno avendo un collo di bottiglia) è un test abbastanza buono. Un test completo di velocità in discesa / in alto verificherebbe quale sia l'intero ambito della tua velocità in base al tuo ISP. Quindi sì, sarebbe la soluzione migliore, ma per qualsiasi scenario di test veloce, anche un semplice wget farebbe il trucco poiché normalmente le persone si preoccupano più della velocità di download che del caricamento. - Luis Alvarado♦
@LuisAlvarado scusate se ho suonato sgarbato, penso solo che le persone dovrebbero essere in grado di comprendere appieno ciò che stanno chiedendo / e qual è la risposta accettata. Molti neofiti guarderanno i forum e presumeranno / sceglieranno / fermeranno alla risposta accettata e formeranno un'immagine falsa nel loro had. E sì, il download è più importante del caricamento, a meno che tu non sia un maniaco di Facebook che posta selfie ogni 5 minuti, poi inizia a litigare con il tuo ISP solo perché hai testato il download che è buono, ma hai un upload scadente ... Ancora una volta scusa se il mio tono era maleducato, non volevo insultare ... - Emil Borconi


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.


18
2017-12-02 15:06





Mi è piaciuto il speedometer Ubuntu cli.

speedometer -r eth0

Per vedere un grafico dal vivo delle velocità dei dati in arrivo.


5
2017-09-02 21:22



questo è in realtà quello che stavo cercando per un po '! Grazie! ma non mi piace che mostri velocità in Kib e non Kb o KB - redbeam_


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 &

E poi scrivi uno script per calcolare i byte totali scaricati e dividi 5 secondi otterrai una cifra in byte / sec. Dovrebbe essere abbastanza preciso e puoi aggiungere più istanze al massimo della larghezza di banda.

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


3
2017-09-20 02:29



Ciò richiederebbe l'installazione di alcuni server ... - Braiam
url_1,2,3,4 può essere qualsiasi cosa, come i server pubblici. - rexis
per esempio timeout 5 wget http://speedtest.netcologne.de/test_100mb.bin -O /tmp/temp5sec quindi analizza la dimensione del file e parte per 5: expr $(stat --printf="%s" /tmp/temp5sec) / 5 / 1024 in kbit / s - rubo77


Puoi usare tespeed . è un test di velocità di 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 

enter image description here

per maggiori informazioni usa:

 ./tespeed.py  -h

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


3
2017-09-12 06:08



Nota: richiede lxml - Matt


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 $1}')

echo "Cleaning up"
rm -rf $TMP_PATH

speed=$(expr $total_bytes / $TEST_TIME)

echo "Speed is $speed Kb/s"

exit 0

2
2018-03-24 12:28



uno meno - che dire quando uso un'altra lingua come inglese? vedi: grep :) parte - ceph3us


Puoi anche provare http://dl.getipaddr.net

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

In breve

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


0
2018-03-07 18:17





un semplice one-liner che verifica quanto tempo ci vuole per scaricare 100 MB (funziona su /bin/sh anche):

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. memorizzare il timestamp in $ t
  2. scarica 100mb ma non memorizzare nulla
  3. calcolare 8 * 100mb / $t

0
2017-08-29 07:29



Questo ha funzionato alla grande come sto provando da un rootFS di sola lettura senza stato e wget non stava emettendo la velocità. - Josh Habdas