Axel: un acelerador de descarga de archivos de línea de comandos para Linux


Si eres el tipo de persona que disfruta descargar y probar el acelerador de descargas que habla y camina, uno que hace lo que dice su descripción.

En esta guía, le presentaremos Axel, un clon ligero de wget que no tenía dependencias (aparte de gcc y makeutils).

Aunque su descripción indica que es especialmente adecuado para sistemas de bytes críticos, axel puede instalarse en cualquier lugar y usarse no solo para descargar varios archivos simultáneamente a través de enlaces HTTP/FTP, sino también para acelerarlos.

Instalación de Axel, un acelerador de descarga de línea de comandos para Linux

Como mencionamos anteriormente, axel no es solo otra herramienta de descarga. Acelera las descargas HTTP y FTP mediante el uso de múltiples conexiones para recuperar archivos del destino y también se puede configurar para usar múltiples espejos.

Si esto no fue suficiente para motivarlo a probarlo, agreguemos que axel admite el aborto automático y la reanudación de conexiones que no responden o no devuelven ningún dato después de un período de tiempo determinado.

Además, si tiene permiso para hacerlo, puede aprovechar axel para abrir múltiples conexiones FTP simultáneas a un servidor para multiplicar el ancho de banda asignado por conexión.

Si no tiene permiso para hacer esto o no está seguro de ello, puede abrir múltiples conexiones a servidores separados y descargarlos todos al mismo tiempo.

Por último, pero no menos importante, axel se diferencia de otros aceleradores de descarga de Linux en que coloca todos los datos en un solo archivo en el momento de la descarga, en lugar de escribir datos en archivos separados y unirlos en una etapa posterior.

En CentOS/RHEL 8/7, deberá habilitar el repositorio EPEL para instalar axel:

# yum install epel-release
# yum install axel

En Fedora, está disponible en los repositorios predeterminados.

# yum install axel   
# dnf install axel   [On Fedora 23+ releases]

En Debian y derivados como Ubuntu y Linux Mint, puede instalar axel directamente con aptitude:

# aptitude install axel

En Arch Linux y distribuciones relacionadas como Manjaro Linux y OpenSUSE Linux, puede instalar axel directamente con:

$ sudo pacman -S axel       [On Arch/Manjaro]
$ sudo zypper install axel  [On OpenSUSE]

Una vez que el eje esté instalado, sumergámonos con ambos pies.

Configuración de Axel - Acelerador de descargas de Linux

Puede configurar axel usando/etc/axelrc y pasar más opciones deseadas en la línea de comando cuando lo invoca. El archivo de configuración está bien documentado, pero revisaremos las opciones más útiles aquí:

reconnect_delay es el número de segundos que esperará axel antes de intentar de nuevo iniciar una nueva conexión con el servidor.

max_speed se explica por sí mismo. El valor se da en bytes por segundo (B/s). Es posible que desee establecer esta variable en un valor apropiado después de considerar su ancho de banda disponible. Esto le ayudará a evitar que axel consuma una gran parte de su ancho de banda mientras se descarga.

Importante: tenga en cuenta que la tasa de descarga máxima real dependerá de su conexión a Internet; no hace falta decir que configurar max_speed en 5 MB/s no hará nada si su conexión a Internet alcanza un máximo de 1,22 MB/s (como fue en mi caso, como verá en los ejemplos a continuación, simplemente dejé ese valor para aclarar el punto).

num_connections es el número máximo de conexiones que axel intentará iniciar. El valor recomendado (4) es suficiente para la mayoría de los casos y se da principalmente por motivos de respeto hacia otros usuarios de FTP. Tenga en cuenta que es posible que algunos servidores ni siquiera permitan múltiples conexiones.

connection_timeout indica la cantidad de segundos que axel esperará para recibir una respuesta antes de intentar abortar y reanudarla automáticamente.

http_proxy le permite configurar un servidor proxy en caso de que la variable de entorno HTTP_PROXY no se haya configurado en todo el sistema. Esta variable usa el mismo formato que HTTP_PROXY (http://: PORT).

no_proxy es una lista de dominios locales, separados por comas, a los que axel no debería intentar acceder a través de un proxy. Esta configuración es opcional.

buffer_size representa la cantidad máxima, en bytes, para leer de todas las conexiones actuales a la vez.

verbose le permite elegir si los mensajes relacionados con la descarga se imprimirán en la pantalla. Establezca esto en 0 si desea deshabilitarlo, o en 1 si aún desea ver los mensajes.

interfaces le permite enumerar las interfaces de red que tienen acceso a Internet, en caso de que tenga más de una. Si no se establece explícitamente, axel utilizará la primera interfaz en la tabla de enrutamiento.

Hay opciones de configuración similares disponibles en:

# axel --help

Si observa con atención, se dará cuenta de que la mayoría de las opciones de la línea de comandos se parecen a las del archivo de configuración. Además, la opción -o (–output) an le permite especificar un nombre de archivo de salida.

Si se usa, anulará el nombre del archivo de origen. Si configura cualquiera de las opciones de la línea de comandos, anularán las establecidas en el archivo de configuración.

Cómo usar Axel para descargar archivos más rápido en Linux

Usaremos la siguiente configuración del archivo de configuración (descomente las líneas correspondientes):

reconnect_delay = 20
max_speed = 500000
num_connections = 4
connection_timeout = 30
buffer_size = 10240
verbose = 1

Ahora compararemos los tiempos de descarga de los enlaces HTTP y FTP usando wget y axel. Puede elegir cualquier archivo de cualquier tamaño, pero para simplificar, descargaremos archivos de 100 MB disponibles en:

  1. ftp:/speedtest: [correo electrónico protegido] /test100Mb.db
  2. http://speedtest.ftp.otenet.gr/files/test100Mb.db

# wget ftp://speedtest:[email protected]/test100Mb.db
# axel -n 10 --output=axel-test100Mb.db ftp://speedtest:[email protected]/test100Mb.db
# wget http://speedtest.ftp.otenet.gr/files/test100Mb.db
# axel -n 10 --output=axel-test100Mb.db http://speedtest.ftp.otenet.gr/files/test100Mb.db

Como puede ver en los resultados de las pruebas que realizamos anteriormente, axel puede acelerar una descarga FTP o HTTP de manera significativa.

Resumen

En este artículo, explicamos cómo usar axel, un acelerador de descargas FTP/HTTP, y mostramos cómo funciona más rápido que otros programas como wget porque puede abrir múltiples conexiones simultáneas a servidores remotos.

Esperamos que lo que hemos mostrado aquí te motive a probar axel. No dude en hacernos saber si tiene alguna pregunta o comentario sobre este artículo utilizando el formulario a continuación. Siempre esperamos recibir comentarios de nuestros lectores.