it-swarm.dev

Jak zkontrolovat rychlost internetu přes terminál?

Místo toho, abych šel na weby jako speedtest.net , chci zkontrolovat svou současnou internetovou rychlost z terminálu na Ubuntu. Jak to mohu udělat?

532
kernel_panic

Doporučuji k tomu nástroj speedtest-cli . Vytvořil jsem blogový příspěvek ( Změřte rychlost internetového připojení z linuxového příkazového řádk ), který jde do detailů jeho stahování, instalace a použití.

Krátká verze je tato: (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ím pip install --user speedtest-cli vám získá verzi, která je pravděpodobně novější než verze dostupná z úložišť vaší distribuce.

Aktualizace v roce 2016:

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

Sudo apt install speedtest-cli
speedtest-cli
814
mweisel

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

101
Tachyons

Pokud nemůžete být obtěžováni instalací iperf, můžete předcházet každému příkazu, který posune známé množství dat pomocí příkazu time a provede součet.

iperf je jednoduchý a snadno použitelný.

Vyžaduje klienta a server.

(na serveru)

 [email protected]$ iperf -s

(na klienta)

 [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

Více informací

60
One Zero

K tomu používám wget. Tento malý nástroj mi pěkně říká, jakou rychlost mám.

Chcete-li jej použít, poukazujte na soubor na internetu, který je relativně větší, abyste mohli získat lepší odhad.

Například

psaní na stroji: wget http://hostve.com/neobuntu/pics/Ubu1.avi by začal stahovat soubor Ubu1.avi a ukazovat, jakou rychlostí stahuje.

enter image description here

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

  1. Otestujte se s dobrými servery. V případě mého odkazu je rychlost menší než 200 kB, takže pokud máte vyšší rychlost, server bude pro vás úzkým hrdlem, ne vaši skutečnou rychlost.

  2. Nejvyšší rychlost, kterou uvidíte, je maximální rychlost, kterou vaše připojení a připojení k serveru mohou nabídnout. Pokud je 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 je to maximum pro server, ze kterého stahujete.

  3. Pro spolehlivou kontrolu rychlosti musíte provést test nejméně 5krát, nebo alespoň minutu nebo dvě. To vám pomůže mít přesnější kontrolu.

  4. Musíte mít alespoň 4 nebo 5 různých testovacích zdrojů, abyste měli přesnější rychlost. Nikdy netestujte pouze ze stejného webu, protože to může ovlivnit vaše vzdálenost k němu, jakýkoli problém na serveru a jeho připojení atd. Vždy testujte z různých serverů.

ARIA2

Toto je alternativa k wget. Nevýhodou wget je nedostatek paralelních připojení. Chcete-li použít aria2, musíme ji nejprve stáhnout:

   Sudo apt-get install aria2

Použití je jednoduché:

enter image description here

Na obrázku je - x 4 kolik paralelních spojení chceme použít. Parametr CN na dalším řádku ukazuje, kolik aktivních paralelních připojení bylo povoleno stáhnout z tohoto webu. V tomto případě CN je 4. Ale pokud bychom se pokusili mít více spojení, dostali bychom něco podobného:

enter image description here

Nastavili jsme 8 paralelních připojení, ale stránka povolila maximálně 5, jak ukazuje CN: 5. To by bylo možné vyřešit volbou - j, která sdělí aria2c maximální požadovaná souběžná připojení (což je ve výchozím nastavení 5), ale pokud to server omezil, nebude fungovat -j.

35
Luis Alvarado

Protože speedtest-cli je aplikace python), je instalace mnohem snazší:

pip install speedtest-cli

nebo:

easy_install speedtest-cli

V závislosti na tom, jak Python je nainstalován ve vašem systému), budete možná muset být root, abyste udělali výše.

19
BobC

Náhodou se mi líbí speedometer Ubuntu cli.

speedometer -r eth0

Sledování živého grafu rychlosti příchozích dat.

6
6ft Dan

Pravidelně používám něco takového:

% wget -O /dev/null --progress=dot:mega http://cachefly.cachefly.net/10mb.test ; date
--2020-01-06 03:31:05--  http://cachefly.cachefly.net/10mb.test
Resolving cachefly.cachefly.net (cachefly.cachefly.net)... 2607:7700::18:0:1:cdea:afaf, 205.234.175.175
Connecting to cachefly.cachefly.net (cachefly.cachefly.net)|2607:7700::18:0:1:cdea:afaf|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 10485760 (10M) [application/octet-stream]
Saving to: <</dev/null>>

     0K ........ ........ ........ ........ ........ ........ 30% 3.02M 2s
  3072K ........ ........ ........ ........ ........ ........ 60% 3.97M 1s
  6144K ........ ........ ........ ........ ........ ........ 90% 3.94M 0s
  9216K ........ ........                                    100% 3.99M=2.8s

2020-01-06 03:31:08 (3.62 MB/s) - <</dev/null>> saved [10485760/10485760]

Mon Jan  6 03:31:08 CST 2020
%

Můžete změnit část 10mb V /10mb.test Na 1mb, 4mb, 5mb, 10mb, 50mb, 100mb, 200mb, 400mb, 2000mb, 4000mb, A možná nějaké další hodnoty.

Můžete také změnit část --progress=dot:mega Na --progress=dot:default, --progress=dot:binary, --progress=dot:mega A --progress=dot:giga; Toto nastavení vám pomůže zjistit, jak rychle stahování probíhá, a zachovat více než jedno čtení po celou dobu stahování, což je užitečné, když potřebujete sdílet výsledky s někým, nebo je jednoduše uložit pro vlastní záznamy jako jakýsi graf.

3
user273818

Spusťte několik instancí wgetu 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 poté napíšete skript, který spočítá celkový počet bajtů stažených a vydělením 5 sekund získáte bajt/sec. Měl by být docela přesný a můžete přidat více instancí k maximální šířce pásma.

Ještě musím otestovat celý skript, ale příkaz jednoho řádku „timeout 5 wget url“ funguje, a jako výsledek dostanete částečně stažený soubor (pokud 5 sekund nestačí k dokončení stahování).

3
rexis

můžete použít tespeed. je to test rychlosti terminálové sítě, který používá servery z Speedtest.net. Používá nejbližší testovací 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 

enter image description here

pro více informací použijte:

 ./tespeed.py  -h

poskytne více možností pro test rychlosti.

3
pl_rock

Jednoduchý bash skript založený na odpovědi @rexis. Můžete si dát své vlastní odkazy pro testování do pole links 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 -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

jednoduchý jednosměrný program, který testuje, jak dlouho trvá stahování 100 MB (funguje také na /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))

vysvětlení:

  1. uložit časové razítko do $ t
  2. stáhněte si 100 MB, ale nic neukládejte
  3. vypočítat 8 * 100mb / $t
2
rubo77

Ve skutečnosti Ookla, poskytovatel Speedtest , vydal nástroj příkazového řádku, který měří vaši rychlost proti velkému počtu serverů rozšířených po celém světě. Pokyny k instalaci na tento odkaz najdete a můžete jej použít poměrně jednoduše provedením:

speedtest -s XXXX -f csv|tsv|jsonl|json|json-pretty

kde -s nastavuje ID serveru, vůči kterému chcete otestovat rychlost internetu, -f definuje formát výstupu. Myslím, že nejužitečnější informace jsou generovány při použití json/json-pretty formát pro výstup, protože mnoho informací o nastavení testu se nevytiskne, pokud používáte csv/tsv formát. Oba -s a -f jsou pouze volitelné, ale pokud chcete automatizovat měření, mohou být užitečné.

Kromě toho můžete najít seznam serverů, které nejrychlejší používá na této adrese ve formě souboru XML nebo na této adrese s prohledávatelným pole: odkaz .

1
Georgе Stoyanov

Abych pohodlně dosáhl rychlosti stahování v bitech za sekundu, v souboru $ HOME/.bash_aliases definuji následující:

speed-test='wget --output-document=/dev/null --report-speed=bits http://speedtest.wdc01.softlayer.com/downloads/test500.Zip'

kde:

--output-document=/dev/null efektivně zahodí výstup wgetu

--report-speed=bits zobrazuje průměrnou rychlost stahování wgetů v bitech za sekundu (bps) místo výchozí bajty za sekundu (Bps)

1
trellem

Můžete také zkusit http://dl.getipaddr.net

Používají curl (což je dobře známý obslužný program příkazového řádku) ke spuštění testu rychlosti.

Ve zkratce

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

0
user385795

Chtěl jsem něco pokročilejšího než speedtest.net a různá řešení, která se spoléhají pouze na jeden web. Takže jsem udělal to, co normálně dělám, a napsal jsem vlastní řešení:

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

Ze seznamu funkcí:

  • Testování rychlosti SSH/SFTP (port 22).
  • Běžné TCP porty 80, 443 a 8080 a také náhodné TCP testování rychlosti portu pomocí vlastního serveru TCP/IP, který podporuje rychlosti až 2,2 Gbps dolů) a 780 Mb/s.
  • Poměrně základní testování latence sítě.
  • Roztočte kapičky Digital Ocean a test rychlosti SSH/SFTP a různých portů TCP).
  • Speedtest.net a vlastní testování rychlosti OoklaServeru. Vytváří podobné výsledky jako testy jednoduchého připojení na adrese single.speedtest.net.
  • Čistý výstup JSON v tichém režimu (-s).

Je to obecnější řešení, které mohou spotřebovat jiné aplikace. Podařilo se mi určit problém se sítí ISP, který měl za následek zdvojnásobení rychlosti downstream SFTP, což vedlo ke zvýšení štěstí.

0
CubicleSoft