A download accelerator improves file transfer performance in a Linux terminal by splitting large files into multiple segments and downloading them in parallel, which is especially useful for big archives, ISO images, and backups over slower or high-latency links.

On Linux, Axel is a lightweight command-line download accelerator that uses multiple connections per URL, resumes partial downloads, and integrates cleanly into scripts or remote administration sessions without requiring a graphical desktop.

Segmented downloads may reduce the impact of per-connection throttling but cannot bypass hard server or bandwidth limits, and some hosts restrict aggressive parallel access, so connection counts and speeds should be tuned with respect to provider policies and available network capacity.

Steps to accelerate file downloads in Linux terminal:

  1. Open a terminal on the Linux system.
  2. Install Axel on Ubuntu or Debian using APT.
    $ sudo apt update && sudo apt install --assume-yes axel

    On other distributions, use the native package manager, for example: Fedora: sudo dnf install axel, openSUSE: sudo zypper install axel, Arch Linux: sudo pacman --sync axel.

  3. Move to the directory where the downloaded file should be stored (optional).
    $ cd ~/Downloads
  4. Copy the direct download URL for the target file from a browser or other source (optional).
  5. Start a basic multi-connection download with Axel using the copied URL.
    $ axel https://wordpress.org/latest.zip
    Initializing download: https://wordpress.org/latest.zip
    File size: 21.7178 Megabyte(s) (22772803 bytes)
    Opening output file wordpress-6.0.2.zip
    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)

    Axel automatically splits the transfer into several connections to the same URL, which can improve throughput on high-latency or mildly throttled links.

  6. Limit bandwidth or adjust the number of parallel connections when necessary by passing options to Axel.
    $ axel --max-speed=1000 --num-connections=5 https://wordpress.org/latest.zip

    Using a very high number of connections or speed limits that exceed actual capacity may cause unstable performance or trigger rate limiting on some servers.

  7. Display the built-in help text to review additional options such as mirrors, custom headers, and timeouts.
    $ 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 https://github.com/axel-download-accelerator/axel/issues to report bugs
  8. Confirm that the download completed successfully and that the resulting file size matches expectations.
    $ ls -lh wordpress-6.0.2.zip
    -rw-r--r-- 1 user user 22M May 13 10:20 wordpress-6.0.2.zip
Discuss the article:

Comment anonymously. Login not required.