Jak zkontrolovat rychlost internetu přes terminál?

363

Místo toho, abychom se dostali na stránky jako speedtest.net , chci zkontrolovat aktuální rychlost internetu z terminálu v Ubuntu. Jak to mohu udělat?

    
dané kernel_panic 16.02.2012 15:24

11 odpovědí

570

Pro tento účel doporučuji nástroj speedtest-cli . Vytvořil jsem blogový příspěvek ( změřte rychlost připojení k internetu z Linux Command Line ), který přichází do podrobností o stahování, instalaci a použití.

Krátká verze je následující: (není vyžadován root)

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

Výstup:

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

Aktualizace v roce 2018:

Použití aplikacepip install --user speedtest-cli vám získá verzi, která je pravděpodobně novější než verze dostupná v úložištích vaší distribuce.

Aktualizace v roce 2016:

speedtest-cli je nyní v úložištích Ubuntu. Pro Ubuntu 16.04 (Xenial) a pozdější použití:

sudo apt install speedtest-cli
speedtest-cli
    
odpověděl mweisel 19.03.2013 09:11
78

zkuste to na příkazovém řádku

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

zkuste to také

sourceforge.net/projects/tespeed/

dostal to z výše uvedeného odkazu

    
odpověděl Tachyons 16.02.2012 15:57
47

Pokud se nemůžete obtěžovat při instalaci iperf, můžete předcházet jakémukoli příkazu, který přesměruje známé množství dat příkazemtime a udělá součet.

iperf je jednoduchý a snadno ovladatelný.

Vyžaduje klient a server.

(na serveru)

 user@server$ iperf -s

(na klientovi)

 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

Další informace

    
odpověděl One Zero 16.02.2012 16:21
31

No, pro to používámwget. Ten malý nástroj mi jasně říká, jakou rychlost mám.

Chcete-li ji použít, přesuňte na soubor v Internetu, který je poměrně větší, abyste získali lepší odhad.

Například

typování:wget http://hostve.com/neobuntu/pics/Ubu1.avi by začal stahovat soubor Ubu1.avi a ukázat, jakou rychlostí se stáhne.

Samozřejmě existuje několik doporučení:

  1. Otestujte rychlost pomocí dobrých serverů. V případě mého odkazu je rychlost nižší než 200KB, takže pokud máte vyšší rychlost, server bude pro vás úzkým úhlem, nikoli skutečnou rychlostí.

  2. Nejvyšší rychlost, kterou uvidíte, je maximální rychlost, kterou může vaše připojení a připojení serveru nabídnout. Je-li vaše připojení 512 kB a místo, kde stahujete, je 400 kB, vaše maximální připojení bude 400 kB, protože to je maximální hodnota pro server, ze kterého stahujete.

  3. Musíte provést test nejméně pětkrát, abyste měli spolehlivou kontrolu rychlosti nebo alespoň to za minutu nebo dvě. To vám pomůže provést přesnější kontrolu.

  4. Chcete-li mít přesnější rychlost, musíte mít alespoň 4 nebo 5 různých testovacích zdrojů. Nikdy neprovádějte testy pouze na stejném místě, protože to může být ovlivněno vaší vzdáleností, jakýkoliv problém na serveru a jeho připojení atd. Vždy testujte z různých serverů.

ARIA2

Toto je alternativa kwget. Nevýhodouwget je nedostatek paralelních připojení. Chcete-li použít aria2, potřebujeme ji stáhnout:

   sudo apt-get install aria2

Použití je jednoduché:

Na obrázku je -x 4 kolik paralelních připojení chceme použít. Parametr CN v dalším řádku ukazuje, kolik aktivních paralelních připojení bylo povoleno ke stažení z tohoto webu. V tomto případě je CN 4. Pokud bychom se však pokusili mít více spojení, získali bychom něco takového:

Nastavili jsme 8 paralelních připojení, ale místo povoleno maximálně 5, jak je uvedeno v KN: 5. To by mohlo být vyřešeno volbou -j , která řeší aria2c požadované maximální souběžné připojení (což je ve výchozím nastavení 5), ale pokud je server omezen, -j nebude fungovat.

    
odpověděl Luis Alvarado 16.02.2012 16:12
18

Vzhledem k tomu, že speedtest-cli je aplikace typu python, je mnohem jednodušší instalovat:

pip install speedtest-cli

nebo:

easy_install speedtest-cli

V závislosti na tom, jak je Python nainstalován ve vašem systému, možná budete muset být kořenem.

    
odpověděl BobC 02.12.2013 16:06
5

Stále se mi líbíspeedometer Ubuntu kli.

speedometer -r eth0

Chcete-li sledovat živý graf příchozích datových rychlostí.

    
odpověděl 6ft Dan 02.09.2016 23:22
3

Spusťte několik instancí příkazu wget s příkazem timeout na velkých souborech:

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

A pak napište skript pro výpočet celkového počtu stažených bajtů a rozdělte 5 sekund, dostanete číslo bajtů / sec. Měla by být docela přesná a můžete přidat více instancí na maximální šířku pásma.

Zatím jsem musel otestovat celý skript, ale příkaz single-line "timeout 5 wget url" funguje a jako výsledek získáte částečně stažený soubor (pokud 5sekundové stačí stahování dokončit)

    
odpověděl rexis 20.09.2013 04:29
3

můžete použíttespeed. je to test rychlosti terminálové sítě, který používá servery zSpeedtest.net. Používá nejbližší zkušební server, ale může také použít jeden ručně zadaný uživatelem.

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

pro více informací použijte:

 ./tespeed.py  -h

poskytuje další možnost testu rychlosti.

    
odpověděl pl_rock 12.09.2015 08:08
2

Jednoduchý bash skript na základě odpovědi @rexis. Můžete napsat vlastní odkazy pro testování vlinks array nebo je přečíst ze souboru

#!/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
    
odpověděl Darkside 24.03.2015 13:28
1

Jednoduchý one-liner, který testuje, jak dlouho trvá stahování 100 MB (pracuje na/bin/sh také):

t=$(date +"%s"); wget http://speedtest.tele2.net/100MB.zip -O ->/dev/null ; echo -n "MBit/s: "; expr 8 \* 100 / $(($(date +"%s")-$t))

vysvětlení:

  1. uložit časové razítko v $ t
  2. stáhněte 100mb, ale nic neukládejte
  3. vypočítat8 * 100mb / $t
odpověděl rubo77 29.08.2015 09:29
0

Můžete také vyzkoušet Odkaz

Pro běh testu rychlosti používají zvlnění (což je dobře známý nástroj příkazové řádky).

Stručně

wget Odkaz & chmod u + x speedtest.sh & bash speedtest.sh

    
odpověděl user385795 07.03.2015 19:17