このプログラムには保証はありません。このプログラムはご自身の責任で使用する必要があります。
aria2 はファイルをダウンロードするためのユーティリティです。サポートされているプロトコルは、HTTP(S)、FTP、SFTP、BitTorrent、および Metalink です。 aria2 は複数のソース/プロトコルからファイルをダウンロードでき、最大ダウンロード帯域幅を利用しようとします。 HTTP(S)/FTP/SFTP と BitTorrent からのファイルの同時ダウンロードをサポートしており、HTTP(S)/FTP/SFTP からダウンロードされたデータは BitTorrent swarm にアップロードされます。 Metalink のチャンク チェックサムを使用して、aria2 は BitTorrent などのファイルをダウンロードする際にデータのチャンクを自動的に検証します。
プロジェクト ページは https://aria2.github.io/ にあります。
aria2 の使用方法については、aria2 オンラインマニュアル (ロシア語翻訳、ポルトガル語翻訳) を参照してください。
機能のリストは次のとおりです。
コマンドラインインターフェース
HTTP(S)/FTP/SFTP/BitTorrent 経由でファイルをダウンロードする
分割ダウンロード
Metalink バージョン 4 (RFC 5854) サポート (HTTP/FTP/SFTP/BitTorrent)
Metalink バージョン 3.0 のサポート (HTTP/FTP/SFTP/BitTorrent)
Metalink/HTTP (RFC 6249) のサポート
HTTP/1.1の実装
HTTPプロキシのサポート
HTTP BASIC認証のサポート
HTTPプロキシ認証のサポート
プロキシのよく知られた環境変数: http_proxy
、 https_proxy
、 ftp_proxy
、 all_proxy
、およびno_proxy
HTTP gzip、deflate コンテンツ エンコーディングのサポート
HTTPS で指定された信頼できる CA 証明書を使用してピアを検証する
HTTPS でのクライアント証明書認証
チャンク転送エンコーディングのサポート
Firefox3 形式、Chromium/Google Chrome、および Mozilla/Firefox (1.x/2.x)/Netscape 形式を使用して、ファイルから Cookie を読み込みます。
Cookie を Mozilla/Firefox (1.x/2.x)/Netscape 形式で保存します。
カスタム HTTP ヘッダーのサポート
永続的な接続のサポート
HTTP プロキシ経由の FTP/SFTP
ダウンロード/アップロード速度の調整
BitTorrent 拡張機能: 高速拡張機能、DHT、PEX、MSE/PSE、マルチトラッカー、UDP トラッカー
BitTorrent WEB シード。 aria2 は、リクエストのオーバーヘッドを削減するために、ピース サイズよりも大きなチャンクをリクエストします。また、ピースサイズを指定したパイプラインリクエストもサポートします。
BitTorrent ローカル ピアの検出
BitTorrent ダウンロードのディレクトリ構造を完全に名前変更/変更します
JSON-RPC (HTTP および WebSocket 経由)/XML-RPC インターフェイス
デーモンプロセスとして実行
マルチファイル torrent/Metalink での選択的ダウンロード
Metalink でのチャンク チェックサムの検証
Metalink でセグメント化されたダウンロードを無効にできます
Netrc のサポート
設定ファイルのサポート
テキスト ファイルまたは標準入力で見つかったダウンロード URI、宛先ディレクトリと出力ファイル名はオプションで指定できます
パラメータ化された URI のサポート
Happy Eyeballs による IPv6 サポート
ディスクアクティビティを軽減するディスクキャッシュ
aria2 のバージョンには、MAJOR.MINOR.PATCH の 3 つの番号を使用します。 マイナーアップデートは毎月 15 日に配信されます。 前回のリリースから変更がない場合は、リリースをスキップする場合があります。 機能とドキュメントの凍結は、翻訳チームのリリース日 (毎月 5 日) の 10 日前に行われます。 その日前後に今後のリリースに関する問題を提起する予定です。
セキュリティ上の問題がある場合、通常のリリースの間に PATCH リリースをリリースすることがあります。
MAJOR バージョンは当面 1 のままです。
ソースコードは Github で管理しています: https://github.com/aria2/aria2
最新のソース コードを取得するには、次のコマンドを実行します。
$ git clone https://github.com/aria2/aria2.git
これにより、現在のディレクトリに aria2 ディレクトリが作成され、ソース ファイルがそこに保存されます。
特徴 | 依存 |
---|---|
HTTPS | OSX または GnuTLS または OpenSSL または Windows |
SFTP | libssh2 |
ビットトレント | なし。オプション: libnettle+libgmp、libgcrypt、または OpenSSL (注を参照) |
メタリンク | libxml2 または Expat。 |
チェックサム | なし。オプション: OSX、libnettle、libgcrypt、OpenSSL、または Windows (注を参照) |
gzip、HTTP で圧縮 | ズリブ |
非同期DNS | C-アレス |
Firefox3/Chromium クッキー | libsqlite3 |
XML-RPC | libxml2 または Expat。 |
WebSocket 上の JSON-RPC | libnettle または libgcrypt または OpenSSL |
注記
両方のライブラリがインストールされている場合、libxml2 は Expat よりも優先されます。 Expat を好む場合は、 --without-libxml2
を指定してconfigureを実行してください。
注記
Apple OSX では、OS レベルの SSL/TLS サポートが優先されます。したがって、そのプラットフォームでは GnuTLS も OpenSSL も必要ありません。この動作を無効にしたい場合は、 --without-appletls
を指定してconfigureを実行します。
両方のライブラリがインストールされている場合、GnuTLS は OpenSSL よりも優先されます。 OpenSSL を使用する場合は、 --without-gnutls
--with-openssl
を指定してconfigureを実行します。
Windows では、ネイティブ Windows SSL 機能 (Schannel) に基づいた SSL 実装が利用可能であり、それが推奨されます。 したがって、そのプラットフォームでは GnuTLS も OpenSSL も必要ありません。 この動作を無効にしたい場合は、 --without-wintls
を指定してconfigureを実行します。
注記
Apple OSX では、 aria2 が--without-appletls
で設定されていない限り、OS レベルのチェックサム サポートが優先されます。
両方のライブラリがインストールされている場合、libnettle は libgcrypt よりも優先されます。 libgcrypt を使用する場合は、 --without-libnettle --with-libgcrypt
を指定して configure を実行します。 GnuTLS ではなく OpenSSL が選択されている場合、libnettle も libgcrypt も使用されません。
オプションの依存関係がいずれもインストールされていない場合は、md5 と sha1 のみをサポートする内部実装が使用されます。
Windows では、Windows のネイティブ機能に基づいた SSL 実装が利用可能であり、 aria2 が--without-wintls
で構成されていない限り、これが優先されます。
ユーザーは、SSL および暗号化ライブラリに対して次のいずれかの構成を行うことができます。
OpenSSL
GnuTLS + libgcrypt
GnuTLS + リブネトル
Apple TLS (OSX のみ)
Windows TLS (Windows のみ)
BitTorrent と Metalink のサポートを無効にするには、configure スクリプトに--disable-bittorrent
と--disable-metalink
それぞれ指定します。
非同期 DNS サポートを有効にするには、c-ares が必要です。
c-ares: http://c-ares.haxx.se/
aria2 は主に C++ で書かれています。当初は、C++98/C++03 の標準機能に基づいて作成されました。現在、aria2 を C++11 標準に移行しています。現在のソース コードには C++11 対応コンパイラが必要です。 g++ や Clang などのよく知られたコンパイラの場合、 -std=c++11
または-std=c++0x
フラグがサポートされている必要があります。
ソース パッケージから aria2 をビルドするには、次の開発パッケージが必要です (パッケージ名は使用するディストリビューションによって異なる場合があります)。
libgnutls-dev (HTTPS、BitTorrent、Checksum のサポートに必要)
nettle-dev (BitTorrent、チェックサムのサポートに必要)
libgmp-dev (BitTorrent に必要)
libssh2-1-dev (SFTP サポートに必要)
libc-ares-dev (非同期 DNS サポートに必要)
libxml2-dev (Metalink サポートに必要)
zlib1g-dev (gzip、HTTP での deflate デコードのサポートに必要)
libsqlite3-dev (Firefox3/Chromium Cookie のサポートに必要)
pkg-config (インストールされているライブラリを検出するために必要)
nettle-dev と libgmp-dev の代わりに libgcrypt-dev を使用できます。
libgpg-error-dev (BitTorrent、チェックサムのサポートに必要)
libgcrypt-dev (BitTorrent、チェックサムのサポートに必要)
libgnutls-dev、nettle-dev、libgmp-dev、libgpg-error-dev、libgcrypt-dev の代わりに libssl-dev を使用できます。
libssl-dev (HTTPS、BitTorrent、Checksum のサポートに必要)
libxml2-dev の代わりに libexpat1-dev を使用できます。
libexpat1-dev (Metalink サポートに必要)
Fedora では、次のパッケージが必要です: gcc、gcc-c++、kernel-devel、libgcrypt-devel、libxml2-devel、openssl-devel、gettext-devel、cppunit
git リポジトリからソース コードをダウンロードした場合は、autoconf マクロを取得するために次のパッケージをインストールする必要があります。
libxml2-dev
libcppunit-dev
autoconf
オートメイク
オートツール開発
オートポイント
リブツール
そして、次のコマンドを実行して、プログラムのビルドに必要な構成スクリプトとその他のファイルを生成します。
$ autoreconf -i
また、マニュアルページを構築するには Sphinx が必要です。
Mac OS X 用の aria2 をビルドしている場合は、makerelease-osx.mk GNU Make メイクファイルを見てください。
aria2 をビルドする最も簡単な方法は、最初にconfigure スクリプトを実行することです。
$ ./configure
静的にリンクされた aria2 をビルドするには、 ARIA2_STATIC=yes
コマンドライン オプションを使用します。
$ ./configure ARIA2_STATIC=yes
構成が完了したら、 make
を実行してプログラムをコンパイルします。
$メイク
Windows バイナリを作成するには、「Windows バイナリのクロスコンパイル」を参照してください。 Android バイナリを作成するには、「Android バイナリのクロスコンパイル」を参照してください。
構成スクリプトは、使用可能なライブラリをチェックし、デフォルトで有効になっていない実験的な機能を除き、できるだけ多くの機能を有効にします。
1.1.0 以降、aria2 はデフォルトで HTTPS サーバーの証明書をチェックします。 OpenSSL またはgnutls_certificate_set_x509_system_trust()
関数を備えた最新バージョンの GnuTLS を使用してビルドし、システム全体の CA 証明書ストアを見つけるようにライブラリが適切に構成されている場合、aria2 は起動時にそれらの証明書を自動的にロードします。そうでない場合は、CA バンドル ファイルへのパスを指定することをお勧めします。たとえば、Debian では、CA バンドル ファイルへのパスは '/etc/ssl/certs/ca-certificates.crt' (ca-certificates パッケージ内) です。これはディストリビューションによって異なる場合があります。 --with-ca-bundle option
使用してスクリプトを設定するために指定できます。
$ ./configure --with-ca-bundle='/etc/ssl/certs/ca-certificates.crt' $メイク
--with-ca-bundle
オプションを使用しないと、CA バンドルなしでは証明書を検証できないため、HTTPS サーバーにアクセスするときにエラーが発生します。このような場合は、aria2 の--ca-certificate
オプションを使用して CA バンドル ファイルを指定できます。 CA バンドル ファイルがインストールされていない場合、最後の手段は、 --check-certificate=false
を使用して証明書の検証を無効にすることです。
ネイティブ OSX (AppleTLS) および/または Windows (WinTLS) 実装を使用すると、システム証明書ストアが自動的に使用されるため、 --with-ca-bundle
必要なく、これらの実装を使用する場合は無視されます。
デフォルトでは、 aria2c
という名前の bash_completion ファイルは$prefix/share/doc/aria2/bash_completion
ディレクトリにインストールされます。 ファイルのインストール ディレクトリを変更するには、 --with-bashcompletiondir
オプションを使用します。
make
の後、実行可能ファイルはsrc/aria2c
に配置されます。
aria2 は自動単体テストに CppUnit を使用します。単体テストを実行するには:
$小切手を作る
このセクションでは、Debian Linux 上で mingw-w64 (http://mingw-w64.org/doku.php) クロスコンパイラーを使用して Windows バイナリをビルドする方法について説明します。 MinGW (http://www.mingw.org/) は aria2 をビルドできない可能性があります。
Windows バイナリをビルドする最も簡単な方法は、Dockerfile.mingw を使用することです。 バイナリのビルド方法については、Dockerfile.mingw を参照してください。 Dockerfile を使用できない場合は、次の段落を読み続けてください。
基本的に、依存ライブラリをコンパイルしてインストールした後、適切な--host
オプションを渡し、構成するCPPFLAGS
、 LDFLAGS
、およびPKG_CONFIG_LIBDIR
変数を指定するだけでクロスコンパイルを実行できます。利便性を高め、独自の開発コストを削減するために、ビルド設定を構成する簡単な方法を提供しています。
mingw-config
スクリプトは、mingw-w64 の設定スクリプト ラッパーです。公式の Windows ビルドを作成するために使用します。 このスクリプトは、次のライブラリがクロスコンパイル用に構築されていることを前提としています。
シーアレス
外国人
スクライト3
ズリブ
libssh2
cpunit
一部の環境変数は、ビルド設定を変更するために調整できます。
HOST
クロスコンパイルしてHOST
上で実行するプログラムを構築します。デフォルトはi686-w64-mingw32
です。 64 ビット バイナリをビルドするには、 x86_64-w64-mingw32
を指定します。
PREFIX
依存ライブラリがインストールされるディレクトリのプレフィックス。 デフォルトは/usr/local/$HOST
です。 -I$PREFIX/include
CPPFLAGS
に追加されます。 -L$PREFIX/lib
LDFLAGS
に追加されます。 $PREFIX/lib/pkgconfig
PKG_CONFIG_LIBDIR
に設定されます。
たとえば、64 ビット バイナリをビルドするには、次のようにします。
$ HOST=x86_64-w64-mingw32 ./mingw-config
--enable-libaria2
を指定した libaria2 dll が必要な場合は、 ARIA2_STATIC=yes
を使用せず、外部ライブラリの DLL バージョンを準備してください。
このセクションでは、Debian Linux 上で Android NDK クロスコンパイラーを使用して Android バイナリをビルドする方法について説明します。
この記事の執筆時点では、Android NDK r21e はエラーなしで aria2 をコンパイルするはずです。
android-config
スクリプトは、Android ビルド用の構成スクリプト ラッパーです。 これを使用して、公式の Android ビルドを作成します。 このスクリプトは、次のライブラリがクロスコンパイル用に構築されていることを前提としています。
シーアレス
オープンSSL
外国人
ズリブ
libssh2
上記のライブラリをビルドするときは、必ず共有ライブラリを無効にし、静的ライブラリのみを有効にしてください。これらのライブラリを静的にリンクします。
android-config
、 $ANDROID_HOME
および$NDK
環境変数が定義されていることを前提としています。
現在 Android NDK r21e を使用しています。 $NDK
Android NDK のディレクトリを指す必要があります。 ビルド ツールは$NDK/toolchains/llvm/prebuilt/linux-x86_64/bin/
にあります。
すべての依存ライブラリは$ANDROID_HOME/usr/local
にインストールする必要があります。
android-config
の後に、 make
を実行してソースをコンパイルします。
Sphinx はドキュメントの構築に慣れています。 aria2 のマニュアル ページが最新でない場合は、 make
実行するとビルドされます。 make html
を使用して、aria2 マニュアル ページの HTML バージョンを構築することもできます。 HTML 版マニュアルはオンラインでも入手できます (ロシア語翻訳、ポルトガル語翻訳)。
ダウンロードされたファイルのファイル名は次のように決定されます。
シングルファイルモード
.torrent ファイルに「name」キーが存在する場合、ファイル名は「name」キーの値になります。それ以外の場合、ファイル名は .torrent ファイルのベース名に「.file」を追加したものになります。たとえば、.torrent ファイルが「test.torrent」の場合、ファイル名は「test.torrent.file」になります。 ダウンロードしたファイルを保存するディレクトリは-dオプションで指定できます。
マルチファイルモード
.torrent ファイルに記載されている完全なディレクトリ/ファイル構造が作成されます。 ダウンロードしたファイルのトップディレクトリを格納するディレクトリは、-dオプションで指定できます。
ダウンロードが開始される前に、必要に応じて完全なディレクトリ構造が作成されます。デフォルトでは、aria2 は .torrent ファイルに記述されている最大 100 個のファイルを開き、これらのファイルに直接書き込みおよび読み取りを行います。同時に開くファイルの数は--bt-max-open-files
オプションで制御できます。
aria2 はメインライン互換の DHT をサポートします。 $HOME/.aria2/dht にファイルが存在しない限り、デフォルトでは、IPv4 DHT のルーティング テーブルは$XDG_CACHE_HOME/aria2/dht6.dat
$XDG_CACHE_HOME/aria2/dht.dat
aria2/dht.dat に保存され、IPv6 DHT のルーティング テーブルは $XDG_CACHE_HOME/aria2/dht6.dat に保存されます$HOME/.aria2/dht.dat
または$HOME/.aria2/dht6.dat
。 aria2 は、同じポート番号を使用して IPv4 と IPv6 の両方の DHT をリッスンします。
UDP トラッカーのサポートは、IPv4 DHT が有効な場合に有効になります。 UDP トラッカーのポート番号は DHT と共有されます。ポート番号を変更するには、 --dht-listen-port
オプションを使用します。
-o
オプションは、.torrent ファイル内のファイルのファイル名ではなく、.torrent ファイル自体のファイル名を変更するために使用されます。この目的のために、代わりに--index-out
オプションを使用してください。
aria2 がデフォルトで使用するポート番号は、TCP および UDP 用に 6881 ~ 6999 です。
aria2 はポート転送を自動的に構成しません。ルーターまたはファイアウォールを手動で設定してください。
ピアの最大数は 55 です。ダウンロード速度が低い場合は、この制限を超える可能性があります。このダウンロード速度は--bt-request-peer-speed-limit
オプションを使用して調整できます。
リリース 0.10.0 では、aria2 は選択的ダウンロードの完了後に要求メッセージの送信を停止します。
現在の実装では、HTTP(S)/FTP/SFTP/BitTorrent がサポートされています。 他の P2P プロトコルは無視されます。 Metalink4 (RFC 5854) と Metalink バージョン 3.0 の両方のドキュメントがサポートされています。
チェックサム検証では、md5、sha-1、sha-224、sha-256、sha-384、および sha-512 がサポートされています。複数のハッシュ アルゴリズムが提供されている場合、aria2 はより強力なアルゴリズムを使用します。ファイル全体のチェックサム検証が失敗した場合、aria2 はダウンロードを再試行せず、ゼロ以外の戻りコードを返して終了します。
サポートされているユーザー設定は、バージョン、言語、場所、プロトコル、および OS です。
Metalink ファイルでチャンク チェックサムが提供されている場合、aria2 はダウンロード中にデータのチャンクを自動的に検証します。この動作はコマンドライン オプションでオフにできます。
Metalink ファイルに署名が含まれている場合、aria2 はダウンロードの完了後にそれをファイルとして保存します。 ファイル名は、ダウンロードファイル名+「.sig」となります。同じファイルがすでに存在する場合、署名ファイルは保存されません。
Metalink4 では、複数ファイルの torrent が metalink:metaurl 要素に現れる可能性があります。 aria2 は 2 つの同じ torrent を同時にダウンロードできないため、aria2 は同じ BitTorrent メタ URL を持つ metalink:file 要素にファイルをグループ化し、それらを 1 つの BitTorrent swarm からダウンロードします。これは基本的にファイル選択を伴う複数ファイルの torrent ダウンロードであるため、Metalink ドキュメントには存在しないが、選択したファイルと同じ部分を共有する隣接ファイルも作成されます。
metalink:url 要素または metalink:metaurl 要素で相対 URI が指定されている場合、aria2 は Metalink ファイルの URI をベース URI として使用して相対 URI を解決します。ローカル ディスクから読み取られた Metalink ファイルで相対 URI が見つかった場合、aria2 は--metalink-base-uri
オプションの値をベース URI として使用します。このオプションが指定されていない場合、相対 URI は無視されます。
現在の実装では、rel=duplicate リンクのみが使用されます。 aria2 はダイジェスト ヘッダー フィールドを理解し、それが他のソースからのダイジェスト値と一致するかどうかを確認します。異なる場合は、接続を切断します。 aria2 は、ダウンロード終了後にこのダイジェスト値を使用してチェックサム検証を実行します。 aria2 は地理的値を認識します。 aria2 にどの場所を希望するかを伝えるには、 --metalink-location
オプションを使用できます。
netrc サポートは、HTTP(S)/FTP/SFTP に対してデフォルトで有効になっています。 netrc サポートを無効にするには、-n コマンドライン オプションを指定します。 .netrc ファイルには正しいアクセス許可 (600) が必要です。
aria2 に組み込まれた WebSocket サーバーは、RFC 6455 で定義された仕様を実装しています。サポートされているプロトコルのバージョンは 13 です。
libaria2 は、クライアント コードに aria2 機能を提供する C++ ライブラリです。現在、libaria2 はデフォルトではビルドされません。 libaria2 を有効にするには、 --enable-libaria2
構成オプションを使用します。 デフォルトでは、共有ライブラリのみが構築されます。静的ライブラリを構築するには、 --enable-static
構成オプションも使用します。 API の使用方法については、libaria2 のドキュメントを参照してください。
aria2 オンラインマニュアル
https://aria2.github.io/
RFC 959 ファイル転送プロトコル (FTP)
RFC 1738 ユニフォーム リソース ロケーター (URL)
IPv6 および NAT 用の RFC 2428 FTP 拡張機能
RFC 2616 ハイパーテキスト転送プロトコル -- HTTP/1.1
RFC 3659 FTP の拡張
RFC 3986 ユニフォーム リソース識別子 (URI): 一般的な構文
RFC 4038 IPv6 移行のアプリケーションの側面
RFC 5854 Metalink ダウンロード記述形式
RFC 6249 Metalink/HTTP: ミラーとハッシュ
RFC 6265 HTTP 状態管理メカニズム
RFC 6266 ハイパーテキスト転送プロトコル (HTTP) での Content-Disposition ヘッダー フィールドの使用
RFC 6455 WebSocket プロトコル
RFC 6555 Happy Eyeballs: デュアルスタックホストでの成功
BitTorrent プロトコル仕様
BitTorrent: DHT プロトコル
BitTorrent: 高速拡張機能
BitTorrent: IPv6 トラッカー拡張機能
BitTorrent: ピアがメタデータ ファイルを送信するための拡張機能
BitTorrent: 拡張プロトコル
BitTorrent: マルチトラッカー メタデータ拡張機能
BitTorrent: BitTorrent の UDP トラッカー プロトコルおよび BitTorrent udp-tracker プロトコル仕様。
BitTorrent: WebSeed - HTTP/FTP シード (GetRight スタイル)
BitTorrent: プライベート トレント
BitTorrent: IPv6 用 BitTorrent DHT 拡張機能
BitTorrent: メッセージ ストリームの暗号化
Kademlia: XOR メトリックに基づくピアツーピア情報システム