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.
Download & Install aria2
aria2 is available on all major platforms. Choose your OS below to get started in under 5 minutes:
Install via Windows Package Manager
Run in Command Prompt or PowerShell (Administrator not required):
Verify in Terminal
Confirm the executable is in your PATH by checking the version:
Install via Scoop
Installs aria2 with automatic PATH setup in user space:
Install via Chocolatey
Run in an elevated PowerShell terminal:
Download Portable Binary
Grab the latest standalone Windows 64-bit ZIP build:
Extract to C:\aria2
Extract aria2c.exe to a permanent folder such as C:\aria2.
Add to Windows PATH
Add C:\aria2 to your system or user Environment Variables (Path).
Verify
Run aria2c --version in CMD or PowerShell.
Homebrew
Ensure Homebrew is installed on your system.
Install
Open Terminal and run: brew install aria2
Verify
Confirm the version with aria2c --version.
Ubuntu / Debian
Install the official package via APT.
sudo apt install aria2
Fedora
Install via the DNF package manager.
sudo dnf install aria2
Arch Linux
Install via the official community repositories.
sudo pacman -S aria2
CentOS / RHEL
Install via the YUM package manager.
sudo yum install aria2
Pkg Install
In Termux, run: pkg install aria2
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.
| 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.
Max Speed (16 Connections)
Max out your bandwidth by splitting the file into 16 concurrent connections.
$aria2c -x 16 -s 16 https://example.com/file.zip
Download Torrent
aria2 natively supports parsing and downloading from local .torrent files.
$aria2c file.torrent
Download via Magnet Link
Fetch torrent metadata and download using a magnet hash URI.
$aria2c "magnet:?xt=urn:btih:..."
Resume Interrupted Download
Automatically resume a stopped download using the -c (continue) flag.
$aria2c -c https://example.com/file.zip
Limit Download Speed
Constrain maximum download speed to avoid completely starving your network.
$aria2c --max-download-limit=1M https://...
Download from URL List
Provide a text file containing one URL per line using the -i flag.
$aria2c -i urls.txt
Output to Specific Directory
Override the current directory to dump the file precisely where you want.
$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.
| 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.
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
Bypass server throttling on media sites — pass aria2 as yt-dlp's external engine for parallel connections and 10× faster video fetching:
yt-dlp --external-downloader aria2c --external-downloader-args "-x 16 -s 16" ...
Aria2 Pro & Synology / QNAP NAS
Deploy the enhanced p3terx/aria2-pro image with automatic BT tracker updating on Synology Container Manager, QNAP Container Station, or Unraid:
ports: ["6800:6800", "6888:6888"]
OpenWrt Router & AriaNg
Turn your OpenWrt home router into a 24/7 silent download station via opkg:
Raspberry Pi OS Download Server
Set up a low-power, high-speed download seedbox on any Raspberry Pi 3/4/5:
Google Drive & Cloud Acceleration
Accelerate large Google Drive direct download links with cookies and 16 split connections:
SOCKS5 / HTTP Proxy Tunneling
Route all aria2 downloads and DHT tracker announces through a local SOCKS5 proxy:
WebSocket & JSON-RPC Remote Control
Start aria2 with JSON-RPC over WebSocket (ws://127.0.0.1:6800/jsonrpc) for real-time WebUI control:
Browser Auto-Download Interceptor
Intercept all browser downloads automatically with session cookie and referer forwarding:
aria2c --enable-rpc --rpc-allow-origin-all=true
BitTorrent Swarm & Speed Optimization
Eliminate disk IOPS bottlenecks, allocate memory caching, and connect to hundreds of peers simultaneously:
.aria2 Binary Control File Inspection
Understand the `.aria2` binary allocation protocol, resume stalled downloads, and inspect control files:
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.
$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:
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:
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.
Best aria2 GUIs, Web UIs & Browser Extensions
Prefer a visual interface over the terminal? Pair aria2 with modern web frontends and browser download interceptors.
Aria2 Explorer
The premier browser extension that automatically captures browser downloads and routes them directly to aria2 via JSON-RPC at localhost:6800.
AriaNg
A responsive, modern web frontend for aria2. Runs completely client-side in pure HTML/JS with full mobile responsiveness, task management, and live speed graphs.
Motrix
A cross-platform download manager for Windows, macOS, and Linux powered internally by aria2. Includes built-in dark mode and system tray integration.
What is an .aria2 File? (Format & Recovery Guide)
Seeing a filename.aria2 file in your downloads directory? Here is how it works and how to resume interrupted downloads.
.aria2 file is a binary control file created automatically by aria2 alongside your download. It stores chunk verification checksums, piece bitfields, and transfer progress so you can pause, resume, and recover partial downloads seamlessly.
Why is there an .aria2 file?
Because aria2 downloads up to 16 chunks concurrently, it needs an index of completed blocks. When downloading reaches 100%, aria2 automatically deletes the .aria2 control file and leaves only your final completed file.
How to resume using .aria2?
Never delete the .aria2 file if your download was interrupted. Simply re-run the download command with the -c (continue) flag in the same directory: aria2c -c <URL>.
Can I delete an .aria2 file?
Only delete it if you want to abort the download and start from scratch. Deleting it during an active download will force aria2 to re-download the entire file from 0%.