Download accelerator works by splitting a download into multiple segments and simultaneously downloading each. All downloaded segments will be combined into a single file once all finish downloading. This method circumvents the download speed limit imposed by some providers.

Download accelerators usually are part of download manager programs which could come as a standalone desktop application or a browser extension. A popular download accelerator for Linux is axel. axel is a command-line application and is great for automation and when working on remote servers via SSH.

Steps to speed up file download from Linux command line:

  1. Launch terminal.
  2. Install axel for your system.
    $ sudo apt update && sudo apt install --assume-yes axel #Ubuntu and Debian
  3. Go to the folder that you want to download your file into (optional).
    $ cd Downloads/
  4. Copy download URL from browser (optional).
  5. Download file using axel.
    $ axel
    Initializing download:
    File size: 21.7178 Megabyte(s) (22772803 bytes)
    Opening output file
    Starting download
    Connection 0 finished
    Connection 3 finished
    Connection 2 finished
    Connection 1 finished
    Connection 1 finished
    Connection 0 finished
    Connection 3 finished
    [100%] [..........................................] [   3.8MB/s] [00:00]
    Downloaded 21.7178 Megabyte(s) in 5 second(s). (3856.91 KB/s)
  6. Configure your download options as needed.
    $ axel --help
    Axel 2.17.11 (linux-gnu)
    Usage: axel [options] url1 [url2] [url...]
    --max-speed=x           -s x    Specify maximum speed (bytes per second)
    --num-connections=x     -n x    Specify maximum number of connections
    --max-redirect=x                Specify maximum number of redirections
    --output=f              -o f    Specify local output file
    --search[=n]            -S[n]   Search for mirrors and download from n servers
    --ipv4                  -4      Use the IPv4 protocol
    --ipv6                  -6      Use the IPv6 protocol
    --header=x              -H x    Add HTTP header string
    --user-agent=x          -U x    Set user agent
    --no-proxy              -N      Just don't use any proxy server
    --insecure              -k      Don't verify the SSL certificate
    --no-clobber            -c      Skip download if file already exists
    --quiet                 -q      Leave stdout alone
    --verbose               -v      More status information
    --alternate             -a      Alternate progress indicator
    --percentage            -p      Print simple percentages instead of progress bar (0-100)
    --help                  -h      This information
    --timeout=x             -T x    Set I/O and connection timeout
    --version               -V      Version information
    Visit to report bugs
Discuss the article:

Comment anonymously. Login not required.