Skip to main content
aria2 v1.37.0

The fast, lightweight
download manager.

aria2 is a free, open-source command-line utility for HTTP, FTP, BitTorrent, and Metalink. It opens up to 16 parallel connections per download and runs on Windows, macOS, and Linux in under 9 MiB of RAM.

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

Install via Windows Package Manager

Run in Command Prompt or PowerShell (Administrator not required):

02

Verify in Terminal

Confirm the executable is in your PATH by checking the version:

01

Install via Scoop

Installs aria2 with automatic PATH setup in user space:

01

Install via Chocolatey

Run in an elevated PowerShell terminal:

01

Download Portable Binary

Grab the latest standalone Windows 64-bit ZIP build:

02

Extract to C:\aria2

Extract aria2c.exe to a permanent folder such as C:\aria2.

03

Add to Windows PATH

Add C:\aria2 to your system or user Environment Variables (Path).

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

aria2 is in the EPEL repository; enable it, then install with DNF.

sudo dnf install epel-release && sudo dnf 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://...

Prefer a graphical interface?

aria2 is a powerful CLI engine, but many users prefer a visual client. We keep a curated comparison of the best GUI frontends, Web UIs, and browser extensions on a dedicated page.

Compare GUI frontends → All aria2 tools

Build your aria2.conf

Use the dedicated generator to tune connections, splitting, RPC, seeding, and session saving, then copy a clean, commented configuration straight into ~/.aria2/aria2.conf.

Open the config generator → Options reference

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 so each file is fetched over multiple connections. 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 so each file is fetched over parallel connections:

# Use aria2 as yt-dlp's downloader (parallel connections)
yt-dlp --external-downloader aria2c --external-downloader-args "-x 16 -s 16" ...

Aria2 Pro & Synology / QNAP NAS

DockerAria2 ProSynology / QNAP

Deploy the enhanced p3terx/aria2-pro image with automatic BT tracker updating on Synology Container Manager, QNAP Container Station, or Unraid:

image: p3terx/aria2-pro
ports: ["6800:6800", "6888:6888"]

OpenWrt Router & AriaNg

OpenWrtluci-app-aria2luci-app-ariang

Turn your OpenWrt home router into a 24/7 silent download station via opkg:

$opkg update && opkg install aria2 luci-app-aria2 luci-app-ariang

Raspberry Pi OS Download Server

Raspberry PiDebianLow Power

Set up a low-power, high-speed download seedbox on any Raspberry Pi 3/4/5:

$sudo apt update && sudo apt install -y aria2

Google Drive & Cloud Acceleration

Google Drive16 ConnectionsCookies

Accelerate large Google Drive direct download links with cookies and 16 split connections:

$aria2c -x 16 -s 16 --load-cookies=cookies.txt "https://drive.google.com/..."

HTTP Proxy Routing

HTTP proxyAuthNo SOCKS

Send HTTP, HTTPS and FTP downloads through an HTTP proxy. aria2 has no SOCKS support — for a SOCKS5 tunnel, put an HTTP-to-SOCKS bridge (privoxy, gost) in front of it. BitTorrent peer and DHT traffic is never proxied.

$aria2c --all-proxy="http://127.0.0.1:8080" https://...

WebSocket & JSON-RPC Remote Control

WebSocketRPC 6800AriaNg / Chrome

Start aria2 with JSON-RPC over WebSocket (ws://127.0.0.1:6800/jsonrpc) for real-time WebUI control:

$aria2c --enable-rpc --rpc-allow-origin-all=true --rpc-listen-all=true --rpc-secret=TOKEN --daemon

Browser Auto-Download Interceptor

ChromeFirefoxEdgeCookies

Intercept all browser downloads automatically with session cookie and referer forwarding:

# Listen for browser extension RPC events
aria2c --enable-rpc --rpc-allow-origin-all=true --rpc-secret=YOUR_SECRET

BitTorrent Swarm & Speed Optimization

fallocRAM CacheTrackers128 Peers

Eliminate disk IOPS bottlenecks, allocate memory caching, and connect to hundreds of peers simultaneously:

aria2c --file-allocation=falloc --disk-cache=64M --bt-max-peers=128 ...

.aria2 Binary Control File Inspection

BitfieldResumeIntegrityParser

Understand the `.aria2` binary allocation protocol, resume stalled downloads, and inspect control files:

aria2c -c --check-integrity=true https://example.com/huge-file.iso

How to Fix Common aria2 Errors

Quick fixes for the most frequent technical issues and terminal errors when running aria2. For the complete library with exact commands and expected results, see the aria2 troubleshooting guide.

error while loading shared libraries: libxml2.so.2 / libsqlite3.so.0

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

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

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.

aria2 Exception: [download_helper.cc:451] aria2 permission deniedquot;Failed to open the file …, cause: Permission deniedException: [download_helper.cc:451] aria2 permission deniedquot; (errorCode=16)

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 proxies via the --all-proxy flag (HTTPS downloads are tunnelled with CONNECT), with optional username and password. It does not support SOCKS4/SOCKS5 proxies: if you only have a SOCKS proxy, run a local HTTP-to-SOCKS bridge such as privoxy or gost and point --all-proxy at it.

# HTTP proxy example: aria2c --all-proxy="http://user:pass@127.0.0.1:8080" 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.

What is an .aria2 file?

Seeing a filename.aria2 file next to your download? It is aria2's binary control file — it enables byte-exact resume and is deleted automatically on completion.

Open the .aria2 guide → Troubleshooting

Disambiguation Note: aria2.org is an independent, community-run resource for aria2, the open-source command-line download utility software. It is not affiliated with the aria2 project, nor with Moondrop Aria 2 (audiophile in-ear monitors) or Fitbit Aria 2 (Wi-Fi smart scale).