¿Cómo verificar la velocidad de Internet a través de la terminal?

468

En lugar de ir a sitios como speedtest.net , quiero verificar mi velocidad actual de Internet desde el terminal en Ubuntu. ¿Cómo puedo hacerlo?

panico kernel
fuente
44
Los resultados que obtengo con speedtest-cli están muy por debajo de lo que obtengo de speedtest.net speedtest-cli Descargar 18.27 Mbits / s Cargar 3.43 Mbits / s speedtest.net Descargar 59.38 Mbits / s Cargar 12.14 Mbits / s No puedo considere speedtest-cli como una prueba válida de la velocidad de la red.
2
@ user375058: speedtest-cliUtiliza los mismos servidores (etc.) que SpeedTest.net. Debería considerar el speedtest-cliy www.speedtest.netcomo equivalente, solo con un front-end diferente. Me sorprendería si obtienes resultados significativamente diferentes de manera consistente si ambos usan el mismo servidor. Si no están utilizando el mismo servidor, entonces no tiene base para la comparación. Por último, mis resultados para ambas utilidades varían en un factor de 2-4 de una ejecución a otra. Le sugiero que pruebe 2-4 servidores y realice 3–4 ejecuciones para cada servidor y compare herramientas.
jvriesem
@ user375058: en realidad acabo de hacer lo que sugerí. Vea el enlace en mi comentario a continuación para ver mis resultados.
jvriesem
1
sudo apt install speedtest-cli
ColdCold

Respuestas:

753

Recomiendo la herramienta speedtest-cli para esto. Creé una publicación de blog ( Medir la velocidad de conexión a Internet desde la línea de comandos de Linux ) que detalla la descarga, instalación y uso de la misma.

La versión corta es esta: (no se requiere root)

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

Salida:

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

Actualización en 2018:

El uso pip install --user speedtest-clile proporciona una versión que probablemente sea más nueva que la disponible en los repositorios de su distribución.

Actualización en 2016:

speedtest-cliestá en los repositorios de Ubuntu ahora. Para Ubuntu 16.04 (Xenial) y uso posterior:

sudo apt install speedtest-cli
speedtest-cli
mweisel
fuente
2
Esto no parece funcionar correctamente. Tengo BT infinity 50bBit abajo y 20Mbit arriba. Pero los resultados se muestran como 0.53Mbit abajo y 0.2Mbit arriba. ¿Eh? Colocación decimal incorrecta? usando wget obtengo 4.27M / s (34Mbit) (¿algún otro servidor sin embargo)?
Piotr Kula
34
Como ya se ha indicado aquí : dado que speedtest-cli es una aplicación de Python, es mucho más fácil de instalar haciendo: pip install speedtest-cli o: easy_install speedtest-cli Dependiendo de cómo esté instalado Python en su sistema, es posible que deba ser root para hacer lo anterior.
CrandellWS
1
Confirmando que speedtest-cli está roto . No muestra velocidades superiores a 1 Mbps. No transfiere ninguna información cuando dice hacerlo.
int_ua
55
Esta realmente debería ser la respuesta aceptada ... speedtest-cli está funcionando bien para mí; Creo que @int_ua estaba teniendo problemas de compatibilidad o problemas de Internet.
peelman
2
Esta debería ser la respuesta correcta. Prueba de velocidad significa descarga Y carga. La primera respuesta SOLO mide la velocidad de descarga, que NO es una imagen completa de la velocidad de su conexión a Internet. ¡Especialmente si estás alojando algo en esa máquina!
Emil Borconi
92

intente esto en la línea de comando

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

prueba esto también

sourceforge.net/projects/tespeed/

lo obtuve del enlace de arriba

Taquiones
fuente
2
¿Podrías explicar qué /dev/nullsignifica?
chiflado sobre natty
12
Es un archivo especial que simplemente borra los datos escritos en él.
Tachyons
2
Para mí, en Ubuntu 14.10 con python 2.7.8, el comando wget --output-document=/dev/null http://speedtest.wdc01.softlayer.com/downloads/test500.zipfunciona mucho mejor que usar speedtset-cliel último parece congelarse y ^ C no puede interrumpir el comando. Con wget no tengo problemas para cortar la descarga de descarga con ^ C
Willoczy
1
@mlissner, parece la primera velocidad en megabits, la segunda en megabytes ..
vp_arth
1
@mlissner 1.5 x 8 = 12. uno es kbps y otro es KBps :-)
Tachyons
55

Si no puede molestarse en instalar iperf, puede preceder cualquier comando que cambie una cantidad conocida de datos con el timecomando y hacer una suma.

iperf es simple y fácil de usar.

Requiere un cliente y un servidor.

(en el servidor)

 user@server$ iperf -s

(en el 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

Más detalles

Un cero
fuente
77
+1 iperf es fantástico para validar velocidades de Ethernet y WIFI
kfmfe04
1
iperfes genial para LAN pero el usuario pregunta sobre WAN.
IMTheNachoMan
34

Pues lo uso wgetpara ello. Esa pequeña herramienta me dice muy bien qué velocidad tengo.

Para usarlo, simplemente apunte a un archivo en Internet que sea relativamente más grande para que pueda obtener una mejor estimación.

Por ejemplo

escribiendo: wget http://hostve.com/neobuntu/pics/Ubu1.avicomenzaría a descargar el archivo Ubu1.avi y mostrará a qué velocidad se está descargando.

ingrese la descripción de la imagen aquí

Por supuesto que hay varias recomendaciones:

  1. Prueba tu velocidad con buenos servidores. En el caso de mi enlace, la velocidad es inferior a 200 KB, por lo que si tiene una velocidad mayor, el servidor será el cuello de botella para usted, no su velocidad real.

  2. La velocidad más alta que verá es la velocidad máxima que puede ofrecer su conexión y la conexión del servidor. Si su conexión es de 512 KB y el lugar donde está descargando es de 400 KB, su conexión máxima será de 400 KB porque es el máximo para el servidor desde el que está descargando.

  3. Debe realizar la prueba al menos 5 veces para tener una verificación de velocidad confiable o al menos hacerlo durante uno o dos minutos. Esto lo ayudará a tener una verificación más precisa.

  4. Debe tener al menos 4 o 5 fuentes de prueba diferentes para tener una velocidad más precisa. Nunca realice pruebas solo desde el mismo sitio ya que esto puede verse afectado por su distancia al mismo, cualquier problema en el servidor y las conexiones al mismo, etc. Siempre realice pruebas desde diferentes servidores.

ARIA2

Esta es una alternativa a wget. La desventaja de wgetes la falta de conexiones paralelas. Para usar aria2, primero debemos descargarlo:

   sudo apt-get install aria2

Para usarlo es simple:

ingrese la descripción de la imagen aquí

En la imagen, el -x 4 es cuántas conexiones paralelas deseamos usar. El parámetro CN en la siguiente línea muestra cuántas conexiones paralelas activas se permitieron descargar desde ese sitio. En este caso, CN es 4. Pero si intentáramos tener más conexiones obtendríamos algo como esto:

ingrese la descripción de la imagen aquí

Establecimos 8 conexiones paralelas, pero el sitio solo permitió un máximo de 5 como lo muestra CN: 5. Esto podría resolverse con la opción -j que le dice a aria2c las conexiones simultáneas máximas que queremos (que por defecto es 5), pero si el servidor lo ha limitado, -j no funcionará.

Luis Alvarado
fuente
1
wget no puede (todavía) hacer una descarga segmentada, es decir, descargar un solo archivo usando múltiples conexiones (paralelas), por lo que si su ISP está limitando la velocidad por 1 conexión, no obtendrá resultados precisos ... sería una prueba más precisa para usar alguna otra herramienta, que al menos puede usar descargas segmentadas (como aria2)
Mladen B.
3
¡Esta NO es una prueba de velocidad, esta es solo una prueba de velocidad de DESCARGA! ¡La prueba de velocidad de Internet significa carga y descarga! Segunda respuesta, y todas las demás que mencionan speedtest-cli tienen el enfoque correcto.
Emil Borconi
1
@EmilBorconi Tienes razón, pero en la vida real, no estamos haciendo una evaluación comparativa de las velocidades de Internet aquí, estas son solo las pruebas de velocidad actuales promedio de cualquier usuario doméstico sin la necesidad de sitios como speedtest. Una velocidad de descarga (que es suficiente para cualquiera que intente ver si tiene un cuello de botella) es una prueba suficientemente buena. Una prueba completa de velocidad de bajada / subida comprobaría cuál es el alcance total de su velocidad en función de su ISP. Entonces, sí, esa sería la mejor solución, pero para cualquier escenario de prueba rápida, incluso un simple wget sería suficiente, ya que normalmente las personas se preocupan más por la velocidad de descarga que por la carga.
Luis Alvarado
1
@LuisAlvarado, lo siento si soné grosero, solo creo que las personas deberían poder entender completamente lo que están preguntando y cuál es la respuesta aceptada. Muchos de los novatos mirarán los foros y asumirán / elegirán / detendrán la respuesta aceptada, y formarán una imagen falsa en su had. Y sí, la descarga es más importante que la carga a menos que seas un maníaco de Facebook que publique selfies cada 5 minutos, luego comience una pelea con tu ISP solo porque probaste la descarga, lo cual es bueno, pero tienes una carga horrible ... Una vez más, lo siento si mi tono era grosero, no quería insultar ...
Emil Borconi
1
Me gusta wgetmás que curlesto porque se wgetmuestra MB/s(muy claro que es MBytes / s), mientras que curlsolo se muestra k(no es muy obvio que es KBytes / s).
wisbucky
19

Dado que speedtest-cli es una aplicación de Python, es mucho más fácil de instalar haciendo:

pip install speedtest-cli

o:

easy_install speedtest-cli

Dependiendo de cómo esté instalado Python en su sistema, es posible que deba ser root para hacer lo anterior.

BobC
fuente
7

Me gusta el speedometercli de Ubuntu.

speedometer -r eth0

Para ver un gráfico en vivo de las velocidades de datos entrantes.

6 pies Dan
fuente
¡eso es lo que estaba buscando por un tiempo! ¡Gracias! pero no me gusta que muestre velocidades en Kib y no Kb o KB
redbeam_
3

Ejecute varias instancias de wget con el comando timeout en archivos 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 &

Y luego escribe un script para calcular el total de bytes descargados y divide 5 segundos para obtener una cifra de bytes / seg. Debe ser bastante preciso y puede agregar más instancias para maximizar su ancho de banda.

Todavía tengo que probar el script completo, pero el comando de línea única "timeout 5 wget url" funciona, y como resultado obtienes un archivo parcialmente descargado (si 5 segundos no son suficientes para completar la descarga).

rexis
fuente
Esto requeriría la configuración de un servidor ...
Braiam
url_1,2,3,4 puede ser cualquier cosa, como servidores públicos.
rexis
por ejemplo, timeout 5 wget http://speedtest.netcologne.de/test_100mb.bin -O /tmp/temp5secluego analice el tamaño del archivo y divida por 5: expr $(stat --printf="%s" /tmp/temp5sec) / 5 / 1024en kbit / s
rubo77
3

puedes usar tespeed. Es una prueba de velocidad de red de Terminal que utiliza servidores de Speedtest.net. Utiliza el servidor de prueba más cercano, pero también puede usar uno especificado manualmente por el usuario.

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

ingrese la descripción de la imagen aquí

para más información use:

 ./tespeed.py  -h

Proporcionará más opciones para la prueba de velocidad.

pl_rock
fuente
Nota: requierelxml
Matt
2

Una línea simple que prueba cuánto tiempo lleva descargar 100MB ( /bin/shtambién funciona):

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

explicación:

  1. almacenar la marca de tiempo en $ t
  2. descarga 100mb pero no guardes nada
  3. calcular 8 * 100mb / $t
rubo77
fuente
Esto funcionó muy bien ya que estoy probando desde un rootFS de solo lectura sin estado y wgetno estaba produciendo la velocidad.
Josh Habdas
2

Script bash simple basado en la respuesta @rexis. Puede poner sus propios enlaces para probar en la linksmatriz o leerlos desde el archivo

#!/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
Lado oscuro
fuente
uno menos: ¿qué pasa cuando uso otro idioma como inglés? ver: grep :) parte
ceph3us
1

Para obtener convenientemente mi velocidad de descarga en bits por segundo, defino lo siguiente en mi archivo $ HOME / .bash_aliases:

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

dónde:

--output-document=/dev/null descarta efectivamente la salida de wget

--report-speed=bits muestra el promedio de velocidad de descarga de wget en bits por segundo (bps) en lugar de los bytes por segundo predeterminados (Bps)

Trellem
fuente
0

Quería algo más avanzado que speedtest.net y varias soluciones que se basan únicamente en un único sitio web. Entonces hice lo que normalmente hago y escribí mi propia solución:

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

De la lista de características:

  • Prueba de velocidad SSH / SFTP (puerto 22).
  • Puertos TCP comunes 80, 443 y 8080, así como pruebas de velocidad de puerto TCP aleatorias utilizando un servidor TCP / IP personalizado que admite velocidades de hasta 2.2 Gbps hacia abajo y 780 Mbps hacia arriba.
  • Pruebas de latencia de red bastante básicas.
  • Gire las gotas de Océano Digital y pruebe la velocidad SSH / SFTP y varios puertos TCP.
  • Speedtest.net y pruebas de velocidad OoklaServer personalizadas. Produce resultados similares a las pruebas de conexión única en single.speedtest.net.
  • Salida JSON pura en modo silencioso (-s).

Es una solución más genérica que puede ser consumida por otras aplicaciones. Me las arreglé para identificar un problema de red de ISP con él que resultó en duplicar mi velocidad aguas abajo de SFTP, lo que resultó en una mayor felicidad.

CubículoSoft
fuente