Descarga de archivos multihilo para Linux | INTROSERV
EUR
european

EUR

usa

USD

Spanish Es
Ex. VAT Ex. VAT 0%

Descarga de archivos multihilo para Linux

Cuando se descarga un archivo grande desde un único servidor HTTP o FTP con una herramienta convencional como curl o wget, se abre una única conexión TCP y el archivo se descarga secuencialmente. En una red rápida, esto puede estar limitado por el límite de velocidad del servidor por conexión, por el TCP Slow Start o por la latencia de ida y vuelta. Las utilidades de descarga en paralelo abren varias conexiones al mismo origen al mismo tiempo; cada una obtiene un rango de bytes diferente y luego el resultado se vuelve a ensamblar localmente. Esto solo funciona si el servidor acepta solicitudes de rango HTTP (respondiendo con HTTP 206 Partial Content); en los servidores que lo permiten, el resultado suele ser una transferencia notablemente más rápida que la que produce una herramienta de flujo único.

En este artículo, «descarga multihilo» se refiere a este patrón de conexiones paralelas, no al uso de varios hilos dentro del propio proceso de descarga.

Este artículo cubre dos utilidades de este tipo para Linux: Axel y aria2.

Axel

Axel es una herramienta ligera de descarga para la línea de comandos. Abre varias conexiones a un único origen y descarga rangos de bytes en paralelo. Es compatible con HTTP, HTTPS, FTP y FTPS, y puede reanudar una descarga interrumpida.

Instalar Axel

En Debian y Ubuntu:

sudo apt install axel

En RHEL, CentOS Stream, AlmaLinux y Rocky Linux, habilite primero EPEL:

sudo dnf install epel-release sudo dnf install axel

En Fedora:

sudo dnf install axel

Usar Axel

Una descarga básica:

axel https://nl.lg.introserv.eu/1000MB.test

La opción -a activa un indicador de progreso compacto:

axel -a https://nl.lg.introserv.eu/1000MB.test

Limite la velocidad máxima de descarga en bytes por segundo con -s (o --max-speed). Por ejemplo, para limitar la transferencia a 500 KB/s:

axel --max-speed=512000 https://nl.lg.introserv.eu/1000MB.test

Guarde el archivo con un nombre diferente mediante -o:

axel -o gigabyte.test https://nl.lg.introserv.eu/1000MB.test

Establezca el número de conexiones paralelas con -n:

axel -n 10 https://nl.lg.introserv.eu/1000MB.test

Reanude un archivo descargado parcialmente con -c:

axel -c https://nl.lg.introserv.eu/1000MB.test

Con -c, si ya existe un archivo local con el mismo nombre, Axel continúa desde el punto en el que se interrumpió en lugar de comenzar de nuevo.

aria2

aria2 cubre el mismo caso de uso de descargas paralelas que Axel y ofrece un conjunto más amplio de funciones. Es compatible con HTTP, HTTPS, FTP, SFTP, BitTorrent y Metalink, y puede obtener el mismo archivo desde varias fuentes al mismo tiempo. Al igual que Axel, divide un archivo en segmentos y los descarga en paralelo.

Funciones principales:

  • número configurable de conexiones por servidor, tamaño de división y concurrencia total
  • reanudación automática de descargas interrumpidas
  • verificación de integridad mediante sumas de comprobación
  • compatibilidad con HTTPS y FTPS
  • clientes nativos de BitTorrent y Metalink

Instalar aria2

En Debian y Ubuntu:

sudo apt install aria2

En RHEL, CentOS Stream, AlmaLinux y Rocky Linux:

sudo dnf install aria2

En Fedora:

sudo dnf install aria2

Usar aria2

Una descarga básica:

aria2c https://nl.lg.introserv.eu/1000MB.test

Obtenga el mismo archivo desde dos espejos al mismo tiempo. aria2 combina las conexiones a ambas fuentes y vuelve a ensamblar el archivo localmente:

aria2c "https://nl.lg.introserv.eu/1000MB.test" "https://uk.lg.introserv.eu/1000MB.test"

Combine fuentes HTTP y FTP proporcionando las credenciales FTP:

aria2c --ftp-user=<USER> --ftp-passwd=<PASSWD> "ftp://<ftpserver_ip>/<file>" "https://uk.lg.introserv.eu/1000MB.test"

Abra ocho conexiones paralelas a un único servidor y divida el archivo en ocho segmentos:

aria2c -x8 -s8 https://nl.lg.introserv.eu/1000MB.test

La opción -x (o --max-connection-per-server) limita el número de conexiones que aria2 abre a un servidor (por defecto, 1). La opción -s (o --split) establece el número máximo de segmentos en los que se divide el archivo (por defecto, 5). Para una única fuente, el número efectivo de conexiones paralelas es el menor de los dos valores: -x8 -s5 abre 5 conexiones, y -x5 -s8 también abre 5. Para obtener realmente 8 conexiones paralelas a un servidor, es necesario aumentar ambos valores, por lo que normalmente se establecen en el mismo número.

La opción -k (o --min-split-size) establece el tamaño mínimo del fragmento en el que se divide el archivo. Los valores más pequeños permiten utilizar más segmentos paralelos, pero aumentan la sobrecarga:

aria2c -x8 -s8 -k1M https://nl.lg.introserv.eu/1000MB.test

Info

-x, -s y -j resuelven problemas diferentes. -x controla el número de conexiones abiertas a un servidor al descargar un archivo. -s controla en cuántos segmentos se divide un archivo. -j (o --max-concurrent-downloads) controla cuántos archivos independientes descarga aria2 al mismo tiempo.

Descargue dos archivos en paralelo:

aria2c -j2 https://nl.lg.introserv.eu/1000MB.test https://uk.lg.introserv.eu/1000MB.test

Reanude un archivo descargado parcialmente con -c:

aria2c -c https://nl.lg.introserv.eu/1000MB.test

Cuando se proporciona un archivo Metalink, aria2 puede seleccionar automáticamente los espejos, verificar los datos descargados mediante las sumas de comprobación declaradas en el archivo Metalink y volver a intentar los espejos que hayan fallado sin intervención manual.

Para un uso repetido, aria2 lee las opciones predeterminadas de ~/.aria2/aria2.conf si el archivo existe. De esta forma, valores como max-connection-per-server y split pueden configurarse allí una sola vez en lugar de especificarse en cada ejecución.

Warning

Abrir muchas conexiones paralelas a un espejo público o CDN puede infringir la política de uso del operador y activar límites de velocidad o bloqueos temporales. Para fuentes públicas, mantenga un número moderado de conexiones (normalmente, de 4 a 8 es seguro); utilice valores superiores únicamente en infraestructuras en las que se sepa que están permitidos.

Cuándo son útiles las descargas paralelas

Las descargas paralelas son más eficaces cuando el cuello de botella es el límite de velocidad del servidor por conexión o el límite de rendimiento de la fuente, y no el disco local o el enlace de red en su conjunto. En un enlace completamente saturado, abrir más conexiones no aumenta el ancho de banda total; simplemente lo redistribuye. Algunos servidores HTTP también rechazan las solicitudes de rango o limitan el número de conexiones simultáneas de un mismo cliente. En ese caso, una herramienta de flujo único como wget es igual de rápida que Axel o aria2.

VAT

  • Other

    Ex. VAT

    0%
  • austria

    Austria

    20%
  • Belgium

    Belgium

    21%
  • Bulgaria

    Bulgaria

    20%
  • Croatia

    Croatia

    25%
  • Cyprus

    Cyprus

    19%
  • Czech Republic

    Czech Republic

    21%
  • Denmark

    Denmark

    25%
  • Estonia

    Estonia

    22%
  • France

    France

    20%
  • Finland

    Finland

    24%
  • Germany

    Germany

    19%
  • Greece

    Greece

    24%
  • Hungary

    Hungary

    27%
  • Ireland

    Ireland

    23%
  • Italy

    Italy

    22%
  • Latvia

    Latvia

    21%
  • Lithuania

    Lithuania

    21%
  • Luxembourg

    Luxembourg

    17%
  • Malta

    Malta

    18%
  • Netherlands

    Netherlands

    21%
  • Poland

    Poland

    23%
  • Portugal

    Portugal

    23%
  • Romania

    Romania

    19%
  • Slovakia

    Slovakia

    20%
  • Slovenia

    Slovenia

    22%
  • Spain

    Spain

    21%
  • Sweden

    Sweden

    25%
  • USA

    USA

    0%
european
states
  • germany
  • Español
  • Italiano
  • Poland
  • Русский
  • Slovenski
  • Türkçe
  • ukraine
  • kingdom
  • French
  • Hrvatska
  • Other
  • Austria
  • Belgium
  • Bulgaria
  • Croatia
  • Cyprus
  • Czech Republic
  • Denmark
  • Estonia
  • Finland
  • France
  • Germany
  • Greece
  • Hungary
  • Ireland
  • Italy
  • Latvia
  • Lithuania
  • Luxembourg
  • Malta
  • Netherlands
  • Poland
  • Portugal
  • Romania
  • Slovakia
  • Slovenia
  • Spain
  • Sweden
  • USA