Como verificar a velocidade da Internet via terminal?

363

Em vez de ir a sites como o speedtest.net , quero verificar a velocidade atual da Internet do terminal no Ubuntu. Como posso fazer isso?

    
por kernel_panic 16.02.2012 / 15:24

11 respostas

570

Eu recomendo a ferramenta speedtest-cli para isso. Criei uma postagem no blog ( Medir velocidade de conexão com a Internet a partir do Linux Command Line ) que entra em detalhes de download, instalação e uso do mesmo.

A versão curta é esta: (não é necessário root)

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

Saída:

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

Atualização em 2018:

Usar pip install --user speedtest-cli te dá uma versão que é provavelmente mais nova que a disponível nos repositórios da sua distribuição.

Atualização em 2016:

speedtest-cli está nos repositórios do Ubuntu agora. Para o Ubuntu 16.04 (Xenial) e posterior use:

sudo apt install speedtest-cli
speedtest-cli
    
por mweisel 19.03.2013 / 09:11
78

tente isso na linha de comando

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

tente isso também

sourceforge.net/projects/tespeed/

comprei o link acima

    
por Tachyons 16.02.2012 / 15:57
47

Se você não se incomoda em instalar o iperf, você pode preceder qualquer comando que mude uma quantidade conhecida de dados com o comando time e faça uma soma.

O

iperf é simples e fácil de usar.

Requer um cliente e um servidor.

(no servidor)

 user@server$ iperf -s

(no cliente)

 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

Mais detalhes

    
por One Zero 16.02.2012 / 16:21
31

Bem, eu uso wget para isso. Essa pequena ferramenta me diz muito bem a velocidade que tenho.

Para usá-lo, basta apontar para um arquivo na internet que seja relativamente maior para que você possa obter uma estimativa melhor dele.

Por exemplo

digitando: wget http://hostve.com/neobuntu/pics/Ubu1.avi iria começar a baixar o arquivo Ubu1.avi e mostrar a que velocidade ele está sendo baixado.

Claro que existem várias recomendações:

  1. Teste-se com bons servidores. No caso do meu link, a velocidade é menor que 200KB, então se você tiver uma velocidade maior, o servidor será o gargalo para você, não a velocidade real.

  2. A velocidade máxima que você verá é a velocidade máxima que sua conexão e a conexão do servidor podem oferecer. Se sua conexão for de 512 KB e o local de download for 400 KB, sua conexão máxima será de 400 KB, pois é o máximo para o servidor do qual você está fazendo o download.

  3. Você precisa fazer o teste pelo menos 5 vezes para ter uma verificação de velocidade confiável ou, pelo menos, fazer isso por um minuto ou dois. Isso ajudará você a ter uma verificação mais precisa.

  4. Você precisa ter pelo menos 4 ou 5 fontes de teste diferentes para ter uma velocidade mais precisa. Nunca teste apenas no mesmo site, pois isso pode ser afetado pela sua distância, por qualquer problema no servidor e pelas conexões com ele, etc. Sempre teste de diferentes servidores.

ARIA2

Esta é uma alternativa para wget . A desvantagem de wget é a falta de conexões paralelas. Para usar aria2, primeiro precisamos fazer o download:

   sudo apt-get install aria2

Para usá-lo é simples:

Na imagem, o -x 4 é quantas conexões paralelas desejamos usar. O parâmetro CN na próxima linha mostra quantas conexões paralelas ativas tiveram permissão para baixar desse site. Neste caso, o CN é 4. Mas se tentássemos ter mais conexões, obteríamos algo assim:

Nós definimos 8 conexões paralelas, mas o site só permitiu um máximo de 5, como mostrado por CN: 5. Isso poderia ser resolvido pela opção -j , que informa ao aria2c o máximo de conexões simultâneas que queremos (que, por padrão, é 5), mas se o servidor tiver limitado isso, -j não funcionará.

    
por Luis Alvarado 16.02.2012 / 16:12
18

Como speedtest-cli é um aplicativo python, é muito mais fácil de instalar fazendo:

pip install speedtest-cli

ou:

easy_install speedtest-cli

Dependendo de como o Python está instalado no seu sistema, você pode precisar ser o root para fazer o acima.

    
por BobC 02.12.2013 / 16:06
5

Por acaso gosto do speedometer do Ubuntu cli.

speedometer -r eth0

Para assistir a um gráfico ao vivo das velocidades de dados recebidas.

    
por 6ft Dan 02.09.2016 / 23:22
3

Execute várias instâncias do comando wget with timeout em arquivos grandes:

#!/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, em seguida, escreva um script para calcular o total de bytes baixados e divida 5 segundos para obter uma figura de bytes / s. Deve ser bastante preciso e você pode adicionar mais instâncias para maximizar sua largura de banda.

Eu ainda tenho que testar o script completo, mas o comando de linha única "timeout 5 wget url" funciona, e você obtém um arquivo parcialmente baixado como resultado (se 5 segundos não for suficiente para concluir o download).

    
por rexis 20.09.2013 / 04:29
3

você pode usar tespeed . é um teste de velocidade de rede do Terminal que usa servidores de Speedtest.net . Ele usa o servidor de teste mais próximo, mas também pode usar um especificado manualmente pelo usuário.

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

para mais informações, use:

 ./tespeed.py  -h

fornecerá mais opções para o teste de velocidade.

    
por pl_rock 12.09.2015 / 08:08
2

Script bash simples baseado na resposta @rexis. Você pode colocar seus próprios links para testes em links array ou lê-los no arquivo

#!/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
    
por Darkside 24.03.2015 / 13:28
1

um simples one-liner que testa quanto tempo leva para baixar 100MB (funciona em /bin/sh também):

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

explicação:

  1. armazena o registro de data e hora em $ t
  2. baixe 100mb mas não armazene nada
  3. calcular 8 * 100mb / $t
por rubo77 29.08.2015 / 09:29
0

Você também pode tentar o link

Eles usam curl (que é um utilitário de linha de comando bem conhecido) para executar um teste de velocidade.

Em suma

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

    
por user385795 07.03.2015 / 19:17