実測による比較

aria2 vs wget vs curl:推測ではなく実測で

3 つともコマンドラインからファイルをダウンロードできますが、得意な用途は異なります。同じマシン、同じテストサーバーで並べて実行し、すべての数値を記録しました。

最終更新: aria2 1.37.0 で検証済み

結論

aria2

大きなファイル、遅いサーバー、大量のダウンロード、トレント

  • サーバーが接続ごとに速度を制限している場合、最大 10 倍高速
  • BitTorrent、Metalink、ミラーに標準で対応
  • RPC で操作できるダウンロードサーバー

wget

シンプルなダウンロードと Web サイト全体のコピー

  • 今回のテストでメモリ使用量が最小
  • -r による再帰的なミラーリング
  • ほとんどの環境にプリインストール済み

curl

API、アップロード、あらゆるプロトコルのスクリプト処理

  • テストしたビルドで 25 のプロトコルに対応
  • アップロード、フォーム、HTTP の細かな制御
  • リダイレクトには -L を忘れずに

接続ごとに速度を制限するサーバーから 1 つの大きなファイルをダウンロード

ミラーやファイルホスティングは、1 つの接続の速度に上限を設けていることがよくあります。テストサーバーは 24 MiB/s の回線で、接続あたり 2 MiB/s に制限しました。ファイルサイズは 50 MB です。

50 MB のダウンロードにかかった時間(短いほど高速)サーバー側の制限は接続あたり 2 MiB/s、回線は 24 MiB/s。2026-10-27 に計測。
表で表示
ツールコマンド秒
wget24.0wget URL · 24.0 秒
curl24.0curl -O URL · 24.0 秒
aria2、1 接続24.1aria2c URL · 24.1 秒
aria2 -x16 -s1612.2aria2c -x16 -s16 URL · 12.2 秒
aria2 -x16 -s16 -k1M2.3aria2c -x16 -s16 -k1M URL · 2.3 秒

1 つの接続では、3 つともかかった時間は 24 秒で、速度はサーバー側で決まります。16 接続の aria2 は 12.2 秒かかりました。デフォルトの -k 20M では、50 MB のファイルが 2 つのピースにしか分割されないためです。-k1M を付けると 16 接続すべてを使い、2.3 秒で完了しました。

20 個のファイルをまとめてダウンロード

2 MB のファイル 20 個を、リクエストごとに 80 ms の遅延を加え、接続あたり 2 MiB/s に制限するサーバーからダウンロードしました。wget と通常の curl は 1 つずつ順番に取得し、curl --parallel と aria2 は複数を同時に取得します。

20 個のファイルのダウンロードにかかった時間(短いほど高速)20 × 2 MB、遅延 80 ms、接続あたり 2 MiB/s。2026-10-27 に測定。
表で表示
ツールコマンド秒
wget -i21.8wget -i urls.txt · 21.8 秒
curl(1 つずつ)21.9xargs -n1 curl -O < urls.txt · 21.9 秒
curl --parallel5.5curl --parallel --parallel-max 5 -O … · 5.5 秒
aria2c -i4.5aria2c -i urls.txt · 4.5 秒
aria2c -i -j16 -x42.0aria2c -i urls.txt -j16 -x4 -k1M · 2.0 秒

aria2 はデフォルトで 5 つのダウンロードを同時に実行し、同じ上限の curl --parallel より少し高速でした。-j16 -x4 を付けると回線の上限に達し、wget の 21.8 秒に対して 2.0 秒でした。5 つの実行はすべて同一のファイルを生成しました。

サーバーが接続を制限していない場合

制限のないローカルサーバーでは、3 つとも 50 MB のファイルを 1 秒未満でダウンロードしました。wget と curl は aria2 より少しだけ速く、aria2 は最初にファイル用のディスク領域を確保するためです。1 つの接続だけで回線を使い切れる場合、接続を増やしても速くなりません。

メモリ

同じ HTTP ダウンロード中に測定しました。「自身のメモリ」はプログラムが自分で確保した量で、合計には共有システムライブラリが加わります。

ツール自身のメモリ合計(RSS)
wget 0.7 MiB 4.7 MiB
curl 1.5 MiB 10.4 MiB
aria2 4.5 MiB 17.1 MiB

最も軽いのは wget です。aria2 はダウンロードエンジン、ディスクキャッシュ、BitTorrent のコードを準備しておくため多めに使いますが、4.5 MiB でも十分小さな値です。aria2 の公式の数値は 4~9 MiB です。

中断したダウンロードの再開

速度制限のあるダウンロードを、各ツールで途中まで進めたところで停止し、もう一度開始しました。3 つとも正しいファイルで完了しました。wget は -c、curl は -C -、aria2 は -c を使いました。aria2 は -c なしでも再開できました。.aria2 制御ファイルに、どのピースが完了したかが記録されているためです。なお、aria2 は最初にファイル全体のサイズを確保するため、途中のファイルでも最終的なサイズが表示されます。

リダイレクト:curl の落とし穴

多くのダウンロードリンクはミラーにリダイレクトします。wget と aria2 はデフォルトでリダイレクトをたどりますが、curl はたどりません。-L なしでは空のファイルを保存し、それでも終了コード 0 で終了したため、スクリプトは気付きません。ダウンロードには必ず curl -L を使ってください。

各ツールでできること

各ツールのドキュメントと照らし合わせ、可能なものは実際に実行して確認しました。

aria2wgetcurl
1 つのファイルを複数の接続でダウンロード はい いいえ いいえ
1 つのファイルを複数のミラーから同時にダウンロード はい いいえ いいえ
BitTorrent とマグネットリンク はい いいえ いいえ
Metalink はい 一部のビルド いいえ
中断したダウンロードの再開 はい はい はい
リモート操作(RPC) はい いいえ いいえ
Web サイト全体のミラーリング いいえ はい いいえ
アップロード、25 以上のプロトコル、API いいえ いいえ はい
ほとんどの Linux にプリインストール いいえ はい はい

同じ作業を 3 つのツールで

最後の 2 行を除くすべての行を、数値は独自の値に置き換えてテストサーバーで実行し、いずれも正しいファイルが得られました。

作業wgetcurlaria2c
ファイルをダウンロード wget URLcurl -O URLaria2c URL
別の名前で保存 wget -O name.iso URLcurl -o name.iso URLaria2c -o name.iso URL
フォルダーに保存 wget -P dir URLcurl --output-dir dir -O URLaria2c -d dir URL
再開 wget -c URLcurl -C - -O URLaria2c -c URL
速度を 1 MiB/s に制限 wget --limit-rate=1m URLcurl --limit-rate 1M -O URLaria2c --max-download-limit=1M URL
最大 10 回再試行 wget --tries=10 URLcurl --retry 10 -O URLaria2c --max-tries=10 URL
ヘッダーを送信 wget --header="X-Key: 1" URLcurl -H "X-Key: 1" -O URLaria2c --header="X-Key: 1" URL
ユーザーエージェントを設定 wget -U "Agent/1" URLcurl -A "Agent/1" -O URLaria2c -U "Agent/1" URL
HTTP のログイン wget --user=U --password=P URLcurl -u U:P -O URLaria2c --http-user=U --http-passwd=P URL
URL のリストをダウンロード wget -i urls.txtxargs -n1 curl -O < urls.txtaria2c -i urls.txt
証明書の確認を省略 wget --no-check-certificate URLcurl -k -O URLaria2c --check-certificate=false URL
リダイレクトをたどる wget URLcurl -L -O URLaria2c URL
1 つのファイルを 16 接続で 不可不可aria2c -x16 -s16 -k1M URL
トレントをダウンロード 不可不可aria2c file.torrent
Web サイトをコピー wget -r -np URL不可不可

どれを使えばよいか

  • 遅いサーバーや混雑したサーバーから大きなファイルを取得するaria2c -x16 -s16 -k1M
  • リストにある数百個のファイルaria2c -i urls.txt -j16
  • トレント、マグネットリンク、Metalinkaria2c
  • ブラウザーやスマートフォンから操作するダウンロードキューaria2c --enable-rpc と WebUI
  • Web サイト全体やディレクトリツリーwget -r -np
  • API 呼び出し、アップロード、フォームcurl
  • ログインしたばかりのサーバーで 1 回だけ手早くダウンロードするwget または curl -L(インストール済み)

よくある質問

aria2 は常に wget より速いのですか?
いいえ。aria2 が速いのは、サーバーが接続ごとに速度を制限している場合や、多くのファイルを同時にダウンロードする場合で、今回のテストでは最大 10 倍でした。1 つの接続で回線を使い切れる場合は wget と curl も同じくらい速く、制限のないローカルサーバーではわずかに速い結果でした。
curl で 1 つのファイルを複数の接続でダウンロードできますか?
単体ではできません。curl --parallel は複数の URL を同時にダウンロードしますが、各ファイルが使う接続は 1 つだけです。aria2 は 1 つのファイルをピースに分割し、並列で取得します。
スクリプトで wget の代わりに aria2 を使えますか?
ダウンロードなら使えます。aria2c -o name -d dir URL で wget の -O と -P と同じことができ、終了コードでスクリプトに何が問題だったかを伝えます。aria2 は Web サイト全体をコピーできないので、その用途には wget を使い続けてください。
メモリ使用量が少ないのはどれですか?
wget です。今回のテストでの自身のメモリは wget が 0.7 MiB、curl が 1.5 MiB、aria2 が 4.5 MiB でした。3 つとも Raspberry Pi やルーターで十分に使える小ささです。
wget は BitTorrent に対応していますか?
いいえ。wget も curl もトレントやマグネットリンクはダウンロードできません。aria2 は HTTP と FTP のダウンローダーであると同時に、本格的な BitTorrent クライアントでもあります。

関連ページ