Skip to main content
v1.37.0 Available Now

The world's fastest free
download engine.

aria2 is the industry-standard free, open-source multi-protocol download utility. It leverages advanced multi-connection architecture to saturate your bandwidth with up to 16 parallel transfers across HTTP, FTP, and BitTorrent — fully offline and secure.

aria2_live.sh
$
aria2c -x 16 -s 16 https://example.com/linux.iso
85%
DL: 124.5MiB/s
CN: 16
ETA: 2s

Download & Install aria2

aria2 is available on all major platforms. Choose your OS below to get started in under 5 minutes:

01

Download

Grab the latest release for Windows 64-bit.

02

Extract to C:\aria2

Extract aria2c.exe to a folder like C:\aria2.

03

Add to PATH

Add the folder to your system Path variables for universal access.

04

Verify

Run aria2c --version in CMD or PowerShell.

01

Homebrew

Ensure Homebrew is installed on your system.

02

Install

Open Terminal and run: brew install aria2

03

Verify

Confirm the version with aria2c --version.

1

Ubuntu / Debian

Install the official package via APT.

sudo apt install aria2
2

Fedora

Install via the DNF package manager.

sudo dnf install aria2
3

Arch Linux

Install via the official community repositories.

sudo pacman -S aria2
4

CentOS / RHEL

Install via the YUM package manager.

sudo yum install aria2
01

Downloads

Fetch the static binary or install via Termux.

02

Pkg Install

In Termux, run: pkg install aria2

03

Verify

Run: aria2c --version

Why is aria2 So Fast? Key Features Explained

aria2 achieves superior speeds by utilizing a multi-source, parallel-transfer architecture. Unlike single-connection tools, it splits every file into multiple segments and downloads them simultaneously from mirror servers or BitTorrent swarms, effectively bypassing per-connection speed caps.

Multi-Connection Download

aria2 can download a file from multiple sources and protocols at the same time, significantly speeding up your downloads by pulling chunks from FTP, HTTP, and BitTorrent swarms simultaneously.

Lightweight

Extremely minimal resource usage. The physical memory usage is typically 4MiB to 9MiB. CPU usage in BitTorrent with download speed of 2.8MiB/sec is around 6%.

BitTorrent Client

A fully featured BitTorrent client in a CLI format. Supports DHT, PEX, Encryption, Magnet URIs, Web-Seeding, Selective Downloads, and Local Peer Discovery.

RPC Interface & Remote Control

Easily integrate aria2 into your applications. It provides a robust XML-RPC and JSON-RPC interface to operate the client remotely. There are many third-party frontend GUIs built for aria2 using this feature.

aria2 vs wget vs curl: Which is Faster?

aria2 is significantly faster than wget and curl for large file downloads. wget and curl use a single sequential connection. aria2 opens up to 16 parallel connections simultaneously, saturating your full bandwidth. aria2 also uniquely supports BitTorrent, Metalink, and JSON-RPC remote control — features wget and curl completely lack.

Comprehensive feature comparison between aria2, wget, and curl highlighting multi-protocol support.
Feature aria2 wget curl
Multi-Connection (Chunking)
BitTorrent & DHT Support
Daemon / JSON-RPC Mode
HTTP/HTTPS/FTP Routing

Quick Command Cheatsheet

The most frequently used aria2 CLI commands for daily download tasks.

Basic Download

The simplest way to download a file over HTTP/HTTPS or FTP.

$aria2c https://example.com/file.zip

Max Speed (16 Connections)

Max out your bandwidth by splitting the file into 16 concurrent connections.

# -x: connections per server | -s: split into chunks
$aria2c -x 16 -s 16 https://example.com/file.zip

Download Torrent

aria2 natively supports parsing and downloading from local .torrent files.

# Directly parse and start a .torrent file
$aria2c file.torrent

Download via Magnet Link

Fetch torrent metadata and download using a magnet hash URI.

# Always wrap magnet links in double quotes
$aria2c "magnet:?xt=urn:btih:..."

Resume Interrupted Download

Automatically resume a stopped download using the -c (continue) flag.

# Resume from the last byte downloaded
$aria2c -c https://example.com/file.zip

Limit Download Speed

Constrain maximum download speed to avoid completely starving your network.

# Prevent network starvation by capping speed
$aria2c --max-download-limit=1M https://...

Download from URL List

Provide a text file containing one URL per line using the -i flag.

# Batch download every URL found in a text file
$aria2c -i urls.txt

Output to Specific Directory

Override the current directory to dump the file precisely where you want.

# Save the file to a custom folder path
$aria2c -d /home/user/Downloads https://...

GUI Frontends Comparison

aria2 is a powerful CLI engine, but thousands of users prefer visual interfaces. Here are the best graphical wrappers to make downloading effortless.

A curated list of high-performance GUI frontends and Web-UIs that integrate with the aria2 engine.
GUI Interface Platform Free / Open Source Best For
Aria2App Android Mobile users on the go
AriaNg Web UI Self-hosters & NAS setups
Motrix Windows / Mac / Linux Beginners wanting a full desktop app
uGet Linux Desktop Native Linux integration
Aria2 Explorer Chrome Extension Browser interception & integration

Interactive aria2.conf Generator

Configure the ultimate background engine. Adjust the sliders below and copy the resulting configuration directly to your ~/.aria2/aria2.conf file.

aria2.conf

How to Integrate aria2 with yt-dlp, Docker, Python & More

aria2 integrates natively as the download engine for yt-dlp, Docker, Python/Node scripts, and systemd services. Pass --external-downloader aria2c to yt-dlp for 10× faster video downloads. Control aria2 programmatically via its JSON-RPC API on port 6800.

🎬

Accelerate yt-dlp Downloads

yt-dlpFFmpeg

Bypass server throttling on media sites — pass aria2 as yt-dlp's external engine for parallel connections and 10× faster video fetching:

# Pass aria2 as the external engine for 10x speed
yt-dlp --external-downloader aria2c --external-downloader-args "-x 16 -s 16" ...
🏠

Home NAS Seedbox

DockerAriaNg

Deploy aria2 + AriaNg as a headless container on your NAS. Paste into docker-compose.yml and expose port 6800 for RPC remote control:

image: p3terx/aria2-pro
ports: ["6800:6800"]
🖥️

Headless VPS Agent

SystemdRPC

Keep aria2 alive permanently in the background on your remote Linux server using systemd:

sudo systemctl enable aria2c
sudo systemctl start aria2c
📦

Automated Mirror Sync

CronInput File

Sync all links in a URL list file every midnight using a cron job — fully unattended batch downloading:

0 0 * * * aria2c -i /path/to/links.txt
⚙️

Developer JSON-RPC API

PythonNode.js

Trigger and manage downloads programmatically from Python or Node scripts by sending JSON payloads to aria2's RPC server on port 6800:

requests.post("http://localhost:6800/jsonrpc", json={...})

How to Fix Common aria2 Errors

Quick fixes for the most frequent technical issues and terminal errors when running aria2.

error while loading shared libraries: libxml2.so.2 / libsqlite.so.3

This happens when binary dependencies are missing from your system environment.

Terminal
# Ubuntu / Debian Fix
$sudo apt install libxml2 libsqlite3-dev zlib1g-dev

On Windows, ensure the .exe remained in its extracted folder containing the bundled DLL files.

aria2c unable to verify certificate (SSL Error)

Often caused by outdated root CA certificates on older systems. You can bypass this (if you trust the source) or provide a path to a fresh certificate bundle:

aria2c --check-certificate=false https://...

For a permanent fix, update your OS certificates: sudo apt install ca-certificates.

aria2 download speed slow — How to speed up?

By default, aria2 is conservative to avoid server bans. To saturate your bandwidth, force parallel connections and chunking:

Terminal
$aria2c -x 16 -s 16 https://largefile.zip

Tip: If using HDDs, add --file-allocation=falloc to prevent disk fragmentation slowdowns.

Exception: [download_helper.cc:451] aria2 permission denied

The user running aria2 does not have write access to the target directory. Check permissions with ls -ld folder/ or specify a folder where you have access:

aria2c -d ~/Downloads https://...
Magnet links failing to start or "Command Not Found"

This is usually caused by special characters like & or ? in the magnet link being interpreted by your shell (Bash/Zsh). Always wrap magnet links in double quotes:

Terminal
$aria2c "magnet:?xt=urn:btih:..."
Failed to bind socket (Port 6800 already in use)

This error occurs if another instance of aria2 is already running as a daemon or another app is using the RPC port. You can kill the existing process or change the port:

aria2c --rpc-listen-port=6801
BitTorrent: No peers found or 0 KB/s download

Your firewall or ISP might be blocking the default BitTorrent ports. Ensure ports 6881-6999 are open, and enable DHT to find more peers:

aria2c --enable-dht=true --bt-enable-lpd=true mytorrent.torrent

Frequently Asked Questions

Quick answers, common issues, and core concepts — all in one place.

What is aria2?

aria2 is a free, open-source command-line download manager written in C++. It supports HTTP, HTTPS, FTP, SFTP, BitTorrent, and Metalink. It uses only 4–9 MiB of RAM and is available for Windows, macOS, Linux, and Android.

How to install aria2 on Linux?

Ubuntu/Debian: sudo apt install aria2. Fedora: sudo dnf install aria2. Arch: sudo pacman -S aria2. Android (Termux): pkg install aria2.

How to install aria2 on Windows?

Download the latest ZIP from GitHub Releases, extract aria2c.exe to C:\aria2, add that folder to your system PATH, then verify with aria2c --version.

How to install aria2 on macOS?

Run brew install aria2 (requires Homebrew). Then verify with aria2c --version.

How to maximize aria2 download speed?

Use aria2c -x 16 -s 16 https://example.com/file.zip. The -x 16 flag opens 16 connections per server; -s 16 splits the file into 16 parallel chunks to instantly saturate your bandwidth.

How to use aria2 with yt-dlp?

Route yt-dlp downloads through aria2 by adding the --external-downloader aria2c flag. This enables parallel chunking for media streams, frequently bypassing server-side throttling on video platforms.

Is aria2 safe to use?

Yes. aria2 is a completely open-source, lightweight tool with thousands of stars and active contributors on GitHub. It contains zero spyware, tracking telemetry, or bundled bloatware. However, like any download engine, you are responsible for checking the safety of the specific files you choose to download.

Is aria2 faster than traditional tools like wget and curl?

aria2 is significantly faster for large files. While wget and curl generally download using a single connection sequentially, aria2 is fundamentally designed to open multiple concurrent connections to the same file (or across multiple mirror servers) to saturate your maximum bandwidth instantly.

How to use aria2 with a proxy?

aria2 supports HTTP/HTTPS and SOCKS5 proxies via the --all-proxy flag. This is essential for bypassing firewalls or routing traffic through secure tunnels.

# SOCKS5 example: aria2c --all-proxy="socks5://127.0.0.1:1080" https://...
Can aria2 download YouTube videos?

Not natively. aria2 is a strict file transport engine and cannot parse YouTube's stream encryption. However, configure yt-dlp to use aria2 as its external downloader: yt-dlp --external-downloader aria2c --external-downloader-args "-x 16" <URL>

How to run aria2 as a daemon / background service?

Pass --daemon=true alongside --enable-rpc=true. This detaches aria2 from your terminal, letting it run silently in the background while you control it via a WebUI (like AriaNg) on port 6800: aria2c --daemon=true --enable-rpc=true

Is aria2 better than IDM (Internet Download Manager)?

It depends on your needs. IDM is a premium, Windows-only GUI tool known for browser integration. aria2 is a free, open-source C++ engine that works on all platforms. aria2 is superior for servers, automation, and power users who need high-performance background downloading.

How to use aria2 with Chrome or Firefox?

Install a browser extension: Aria2 Explorer (Chrome) or aria2-integration (Firefox). These extensions automatically intercept your browser downloads and send them to your aria2 RPC server at localhost:6800.

Does aria2 support resuming downloads after a PC restart?

Yes. Use the --save-session and --input-file flags so aria2 writes its progress to a session file. It picks up exactly where it left off on the next start. For a single file, simply use aria2c -c <URL> to continue a partial download.

How to download Google Drive files with aria2?

Google Drive requires authentication for large files. Pass your browser's Cookies via the --header flag, or use a tool like gdown to generate a direct, accessible download link for aria2 to process.

What is the maximum download speed of aria2?

There is no software-imposed limit. Written in high-performance C++, aria2 is bounded only by your network hardware and disk write speed. It has been tested to successfully saturate 10Gbps+ dedicated lines with minimal CPU overhead.