aria2 Complete Documentation
aria2 ドキュメント:インストール・設定・自動化
aria2 は C++ で書かれた無料・オープンソースのマルチプロトコル対応 CLI ダウンロードツールで、HTTP、HTTPS、FTP、SFTP、BitTorrent、Metalink をサポートしています。最大 16 本の並列接続を同時に開くことで、接続ごとの速度が制限されたサーバーでは wget や curl より数倍高速にダウンロードしながら、メモリ使用量はわずか 4–9 MiB に抑えられます。Windows、macOS、Linux、Android に対応し、GUI は不要です。
このドキュメントでは、Windows、Linux、macOS へのインストール方法、高度なプロトコルエンジンの設定、aria2 を独自の自動化パイプラインに組み込む方法を習得できます。
クロスコンパイル: aria2 は mingw-config と android-config
ラッパーを使い、MinGW および NDK ツールチェーンでそれぞれ Windows(.exe)用と Android 用のバイナリを生成します。
基本的な HTTP・FTP 設定
aria2 は通常の HTTP/FTP ダウンロードをそのまま優れた性能で処理しますが、真の強みは プロトコルのハイブリッド化にあります。HTTP/FTP/SFTP と BitTorrent からファイルを 同時にダウンロードし、直接取得したデータを BitTorrent スウォームにアップロードすることで効率を最大化できます。
注意: aria2 は純粋なコマンドラインプログラムおよび RPC バックエンドです。-x 16
で 16 接続を開くと、一部のサーバーでは IP が一時的にレート制限される場合があります。同時接続数の上限は責任を持って調整してください。
バッチ自動化
スクレイピング、ミラーの同期、バッチ処理では、数千件の URL を記載したテキストファイルをそのまま aria2 に読み込ませることができます。-i(input)
パラメーターを使うことで、これらを並列に高速ダウンロードします。
BitTorrent 詳細解説
aria2 はコアエンジンに統合された本格的な BitTorrent クライアント機能を備えています。DHT ルーティングテーブル、Local Peer Discovery(LPD)、Magnet URI の解決にネイティブ対応しています。
注意: aria2 は BitTorrent の WebSeeding をネイティブサポートする数少ないクライアントの一つです。通常の HTTP ミラーを P2P スウォームに同時に安全に組み込むことができます!
Metalink サポート
Metalink は URI リスト、チェックサム、メタデータを含む XML ファイルです。aria2 はこれを利用して最速のミラーを自動的に見つけ、ファイルの完全性を同時に検証します。
再開と復旧
wget とは異なり、aria2 は非常に堅牢なファイル復旧機能を備えています。大容量ファイルの転送中にインターネットが切断されたり電源が落ちたりしても、-c / --continue
フラグでデータ検証をシームレスに再開できます。
-c を使わずに同名ファイルが既に存在する場合、aria2 は誤って上書きしないよう、新しいダウンロードを既定で mylinux.1.iso に自動リネームします。
帯域制限(スロットリング)
バックグラウンドでダウンロードする際に aria2 が家庭内ネットワークを占有しないよう、厳密な制限値を設定しましょう。制限はデーモン全体にグローバルに適用することも、タスクごとに個別に適用することもできます。
ディスク割り当てと高速 I/O
16 分割の並列接続で 50GB を超えるような巨大ファイルをダウンロードすると、メカニカル HDD(や普及帯の SSD)ではファイルシステムの断片化が激しくなり、速度低下を招きます。
aria2 の falloc エンジンは、ダウンロード開始前にカーネルレベルでブロック割り当てを事前に確保するよう OS に直接指示します。
チェックサムと完全性
転送中または転送後にハッシュ値の検証を強制することで、ダウンロードファイルの破損や改ざんを確実に検出できます。
高度なネットワーク設定と IPv6
マルチホームサーバーや VPN 構成で特に役立つ、aria2 がローカルのハードウェアインターフェースにバインドする方法を微調整できます。
プロキシ設定
aria2 は HTTP プロキシ(HTTPS は CONNECT 経由)、SSL 検証の上書き、明示的な IPv6 バインドに対応しています。SOCKS プロキシには対応していないため、SOCKS5 トンネルしかない場合は privoxy や gost などの HTTP→SOCKS 変換プロキシを使ってください。
セキュリティと暗号化
BitTorrent 転送では暗号化を強制して ISP によるのぞき見や帯域制限を回避できます。また、安全な HTTP 接続のために厳密な SSL 証明書要件を定義することもできます。
デーモンサービス
aria2 をバックグラウンドで完全に分離して実行します。VPS、Seedbox、ヘッドレスサーバー環境の構築に不可欠です。
ヒント: デーモンサービスを使わずにバックグラウンドダウンロードを対話的に管理したい場合は、デタッチした tmux セッション内で aria2c を実行できます。
RPC サブシステム(リモートコントロール)
JSON-RPC インターフェースを使うと、リモートサーバー、モバイルアプリ、AriaNg のような Web GUI から aria2 にコマンドを送信できます。
| メソッド | 説明 |
|---|---|
aria2.addUri |
新しい HTTP/FTP/SFTP ダウンロードを追加します。 |
aria2.addTorrent |
.torrent ファイルをアップロードして BitTorrent ダウンロードを追加します。 |
aria2.tellStatus |
指定した GID の進捗・状態を返します。 |
aria2.pauseAll |
実行中のすべてのダウンロードを即座に一時停止します。 |
aria2.getOption |
指定した GID の設定フラグを取得します。 |
イベントフックとスクリプト連携
Aria2 内蔵のイベントリスナーを使って自動タスクを起動できます。ファイルパスや GID などの変数を外部の bash 環境に渡せます。
完璧な aria2.conf
手動フラグの指定を省くため、静的な設定ファイル(通常は
~/.aria2/aria2.conf)でエンジンの動作をしっかり定義しましょう。
環境変数
aria2 は端末プロファイルから OS 標準のプロキシ変数をネイティブに読み取ります。
| 変数 | 説明 |
|---|---|
http_proxy |
HTTP リクエスト用の既定プロキシ。 |
https_proxy |
HTTPS リクエスト用の既定プロキシ。 |
all_proxy |
グローバルプロキシサーバー。 |
no_proxy |
プロキシ経由をバイパスするドメイン。 |
コンソールの進捗表示を理解する
コンソールエンジンが提供するリアルタイムのスナップショット文字列です。
[#GID 123MB/456MB(27%) CN:16 DL:5.2MB UL:12KB ETA:1m45s]
- GID: タスクの一意識別子。
- CN: アクティブな接続数。
- DL / UL: 現在のダウンロード・アップロード速度。
- ETA: 推定残り時間。
技術ファイルと形式
内部で使用されるバイナリレイアウトと状態ファイルです。
| ファイル | 用途 |
|---|---|
dht.dat |
DHT ルーティングテーブルを格納します(バイナリ)。 |
.netrc |
HTTP/FTP の自動認証情報。 |
aria2.session |
一時停止・再開用のセッション状態。 |
*.aria2 |
v1 バイナリ制御ファイル(ビッグエンディアン)。 |
machine example.com login user password password
終了ステータスコード
スクリプト内で $? を解析して、失敗を適切に処理しましょう。
| コード | 意味 |
|---|---|
| 0 | 成功 |
| 1 | 不明なエラー |
| 3 | 404 Not Found |
| 9 | ディスク容量不足 |
パワーユーザー向けのヒントと単位
K/M: 10進数(1000)
- Ki/Mi: 2進数(1024)
無制限値: 無制限には
- または 0 を使います。
開発者向け連携(libaria2)
モダンな C++11 ライブラリインターフェースです。