Compruebe la velocidad de Internet con speedtest-cli en Debian y Ubuntu
La velocidad de la conexión a Internet es algo que siempre comprobamos en nuestros hogares y oficinas. El método más común que usamos es visitar un sitio web de prueba de velocidad como speedtest.net. En ese sitio, se carga una aplicación javascript en el navegador web que selecciona el mejor servidor (cercano) en función del tiempo de ping y luego se muestran los resultados de la prueba de velocidad para ese servidor. Speedtest.net también utiliza un reproductor flash para producir el resultado gráficamente.
El problema al usar estas pruebas de velocidad basadas en la web es que no le permite programar la prueba de velocidad a intervalos regulares, por ejemplo, como un cronjob y no puede usarlas en servidores sin cabeza. Una aplicación que puede solucionar este problema es “speedtest-cli”. Esta aplicación le permite verificar su velocidad de Internet usando la línea de comando.
¿Qué es speedtest-cli?
Speedtest-cli es un script escrito en el lenguaje de programación Python que mide la velocidad de Internet de forma bidireccional. Esta aplicación le permite verificar su velocidad de Internet según la distancia en km, puede probar contra servidores específicos y también proporciona una URL para que pueda compartir su resultado en Internet.
¿Cómo instalar speedtest-cli en Linux?
Para instalar la aplicación speedtest-cli, debe tener Python 2.4-3.4 o una versión actualizada instalada en su sistema.
Puede instalar las herramientas speedtest-cli usando dos métodos. El primer método incluye el uso del administrador de paquetes python-pip, el segundo método es descargar el script de Python manualmente, hacerlo ejecutable y luego ejecutar la aplicación.
Método 1: Instalar speedtest-cli usando python-pip
El siguiente paso debe ejecutarse como usuario root, ya que no quiero anteponer sudo para cada comando, primero ejecute el siguiente comando en Ubuntu para convertirse en usuario root:
sudo su
1. El primer paso es asegurarse de que su lista de paquetes de todos los repositorios de Ubuntu y PPA esté actualizada ejecutando el siguiente comando:
apt-get update
Salida de muestra:
2. El siguiente paso es instalar el administrador de paquetes pip en su sistema. Como puede ver, el comando también instalará muchas dependencias.
apt-get install python-pip
[email protected]:/# apt-get install python-pip Reading package lists... Done Building dependency tree Reading state information... Done The following additional packages will be installed: libexpat1-dev libpython-all-dev libpython-dev libpython2.7-dev python-all python-all-dev python-asn1crypto python-cffi-backend python-crypto python-cryptography python-dbus python-dev python-enum34 python-gi python-idna python-ipaddress python-keyring python-keyrings.alt python-pip-whl python-pkg-resources python-secretstorage python-setuptools python-six python-wheel python-xdg python2.7-dev Suggested packages: python-crypto-doc python-cryptography-doc python-cryptography-vectors python-dbus-dbg python-dbus-doc python-enum34-doc python-gi-cairo gnome-keyring libkf5wallet-bin gir1.2-gnomekeyring-1.0 python-fs python-gdata python-keyczar python-secretstorage-doc python-setuptools-doc The following NEW packages will be installed: libexpat1-dev libpython-all-dev libpython-dev libpython2.7-dev python-all python-all-dev python-asn1crypto python-cffi-backend python-crypto python-cryptography python-dbus python-dev python-enum34 python-gi python-idna python-ipaddress python-keyring python-keyrings.alt python-pip python-pip-whl python-pkg-resources python-secretstorage python-setuptools python-six python-wheel python-xdg python2.7-dev 0 upgraded, 27 newly installed, 0 to remove and 60 not upgraded. Need to get 32.1 MB of archives. After this operation, 53.6 MB of additional disk space will be used. Do you want to continue? [Y/n] y
Presiona Y para continuar
Salida de muestra:
3. Después de instalar el paquete, puede instalar la aplicación usando este comando pip:
pip install speedtest-cli
Collecting speedtest-cli Downloading https://files.pythonhosted.org/packages/61/8b/58d1de9a7fff3e91c5ab956ab4ba72b49f42d9f73d5f3e248c740dfcc816/speedtest_cli-2.1.1-py2.py3-none-any.whl Installing collected packages: speedtest-cli Successfully installed speedtest-cli-2.1.1
4. Si desea actualizar la aplicación speedtest-cli en el futuro, puede usar este comando:
pip install speedtest-cli –-upgrade
Requirement already up-to-date: speedtest-cli in /usr/local/lib/python2.7/dist-packages Cleaning up...
Método 2: instalar manualmente el último speedtest-cli desde GitHub
1. Primero debe descargar el script de python de GitHub usando el comando
cd /tmp wget https://github.com/sivel/speedtest-cli/archive/master.zip
--2019-04-25 19:24:47-- https://github.com/sivel/speedtest-cli/archive/master.zip Resolving github.com (github.com)... 140.82.118.4, 140.82.118.3 Connecting to github.com (github.com)|140.82.118.4|:443... connected. HTTP request sent, awaiting response... 302 Found Location: https://codeload.github.com/sivel/speedtest-cli/zip/master [following] --2019-04-25 19:24:47-- https://codeload.github.com/sivel/speedtest-cli/zip/master Resolving codeload.github.com (codeload.github.com)... 192.30.253.121, 192.30.253.120 Connecting to codeload.github.com (codeload.github.com)|192.30.253.121|:443... connected. HTTP request sent, awaiting response... 200 OK Length: unspecified [application/zip] Saving to: ‘master.zip’
master.zip [ <=> ] 27.55K 103KB/s in 0.3s
2019-04-25 19:24:48 (103 KB/s) – ‘master.zip’ saved [28215]
2. El segundo paso es descomprimir el archivo que ha descargado (master.zip) y extraerlo usando el comando unzip:
unzip master.zip
Archive: master.zip 681cdf20a5fe774ba3aefedd0cd88cbff5384439 creating: speedtest-cli-master/ inflating: speedtest-cli-master/.gitignore inflating: speedtest-cli-master/.travis.yml inflating: speedtest-cli-master/CONTRIBUTING.md inflating: speedtest-cli-master/LICENSE inflating: speedtest-cli-master/MANIFEST.in inflating: speedtest-cli-master/README.rst extracting: speedtest-cli-master/setup.cfg inflating: speedtest-cli-master/setup.py inflating: speedtest-cli-master/speedtest-cli.1 inflating: speedtest-cli-master/speedtest.py creating: speedtest-cli-master/tests/ creating: speedtest-cli-master/tests/scripts/ inflating: speedtest-cli-master/tests/scripts/source.py inflating: speedtest-cli-master/tox.ini
3. Cuando haya extraído el archivo, haga que el script extraído sea ejecutable yendo al directorio extraído y usando el comando chown.
cd speedtest-cli-master/
chmod 755 speedtest.py
4. Para evitar escribir la ruta completa cada vez, mueva el archivo ejecutable a /usr/local/bin usando el siguiente comando:
sudo mv speedtest.py /usr/local/bin/speedtest-cli
¿Cómo probar la velocidad de conexión a Internet con speedtest-cli?
Ejecute el comando speedtest-cli para probar la velocidad de carga y descarga de su conexión a Internet sin ningún argumento:
speedtest-cli
Testing download speed........................................ Download: 916.39 Mbit/s Testing upload speed.................................................. Upload: 489.57 Mbit/s
Si desea verificar el resultado de la velocidad en bytes en lugar de bits, use este comando:
speedtest-cli --bytes
Testing download speed........................................ Download: 114.15 Mbyte/s Testing upload speed.................................................. Upload: 49.61 Mbyte/s
Si desea compartir el resultado de la velocidad con sus amigos, puede descargar la imagen del resultado con la URL proporcionada después del resultado.
speedtest-cli --share
Retrieving speedtest.net configuration... Testing from Hetzner Online GmbH (..........)... Retrieving speedtest.net server list... Selecting best server based on ping... Hosted by avrx (Limburg an der Lahn) [140.88 km]: 14.379 ms Testing download speed................................................................................ Download: 309.68 Mbit/s Testing upload speed................................................................................................ Upload: 316.33 Mbit/s Share results: http://www.speedtest.net/result/xxxxxxxxxxx.png
A continuación se muestra la imagen del resultado de mi prueba de velocidad de la prueba anterior.
Si desea información solo sobre ping, descarga y carga, use:
speedtest-cli --simple
Ping: 5.23 ms Download: 877.56 Mbit/s Upload: 162.21 Mbit/s
También puede consultar la lista de servidores en función de la distancia en km utilizando:
speedtest-cli --list
2628) Telstra (Adelaide, Australia) [17098.98 km] 4051) Vodafone Hutchison Australia (AE) (Adelaide, Australia) [17098.98 km] ........................................................................... 3254) Vodafone Hutchison Australia (PH) (Perth, Australia) [18700.26 km] 1931) IX Australia (Perth, Australia) [18700.26 km]
Al buscar en la lista en términos de distancia, es posible que haya generado una gran lista de servidores. Si desea verificar el resultado de los servidores de un área específica, puede verificarlo canalizando el resultado al comando grep (Australia es un ejemplo del área):
speedtest-cli --list | grep –i Australia
2604) Telstra (Brisbane, Australia) [15501.92 km] 1594) 'Yes' Optus (Brisbane, Australia) [15501.92 km] ............................................................................................... 3254) Vodafone Hutchison Australia (PH) (Perth, Australia) [18700.26 km] 1931) IX Australia (Perth, Australia) [18700.26 km]
Para probar la velocidad de conexión con un servidor específico, debe usar la ID del servidor generada en los pasos 5 y 6.
speedtest-cli --server [server ID]
speedtest-cli --server 2604
Aquí se utiliza el ID de servidor 2604 como ejemplo:
Hosted by Telstra (Brisbane) [15501.92 km]: 452.614 ms Testing download speed........................................ Download: 28.79 Mbit/s Testing upload speed.................................................. Upload: 11.71 Mbit/s
Si desea verificar la ayuda y el número de versión de la herramienta speedtest-cli, use estos comandos:
speedtest-cli --version
0.3.4
speedtest-cli --help
usage: speedtest_cli [-h] [--bytes] [--share] [--simple] [--list] [--server SERVER] [--mini MINI] [--source SOURCE] [--timeout TIMEOUT] [--secure] [--version]
Command line interface for testing internet bandwidth using speedtest.net. -------------------------------------------------------------------------- https://github.com/sivel/speedtest-cli
optional arguments: -h, --help show this help message and exit --bytes Display values in bytes instead of bits. Does not affect the image generated by --share --share Generate and provide a URL to the speedtest.net share results image --simple Suppress verbose output, only show basic information --list Display a list of speedtest.net servers sorted by distance --server SERVER Specify a server ID to test against --mini MINI URL of the Speedtest Mini server --source SOURCE Source IP address to bind to --timeout TIMEOUT HTTP timeout in seconds. Default 10 --secure Use HTTPS instead of HTTP when communicating with speedtest.net operated servers --version Show the version number and exit
Crear un registro de velocidad de Internet con speedtest-cli
Speedtest-cli se puede ejecutar como un cronjob para obtener un registro de prueba de velocidad de Internet. Abra el crontab con este comando:
crontab -e
Y agregue esta línea (supongo que speedtest_cli.py está instalado en /usr/local/bin) al crontab:
30 00 * * * /usr/local/bin/speedtest-cli >> /tmp/speedlog.txt
Guarde los cambios y salga del editor crontab. Esto ejecutará una prueba de velocidad a las 0:30 cada día y agregará el resultado al archivo /tmp/speedlog.txt.
Conclusión
Esta aplicación es liviana, fácil de usar y se ejecuta sin ningún problema, lo que la convierte en una herramienta imprescindible para desarrolladores y administradores de sistemas.