aria2(命令行下載器)使用

aria2 是一個自由、開源、輕量級多協(xié)議和多源的命令行下載工具。它支持 HTTP/HTTPS、FTP、SFTP、 BitTorrent 和 Metalink 協(xié)議。aria2 可以通過內(nèi)建的 JSON-RPC 和 XML-RPC 接口來操縱。aria2 下載文件的時候,自動驗證數(shù)據(jù)塊。它可以通過多個來源或者多個協(xié)議下載一個文件,并且會嘗試?yán)媚愕淖畲笙螺d帶寬。默認(rèn)情況下,所有的 Linux 發(fā)行版都包括 aria2,所以我們可以從官方庫中很容易的安裝。一些 GUI 下載管理器例如 uget 使用 aria2 作為插件來提高下載速度。

aria2特性:

  • 支持 HTTP/HTTPS GET
  • 支持 HTTP 代理
  • 支持 HTTP BASIC 認(rèn)證
  • 支持 HTTP 代理認(rèn)證
  • 支持 FTP (主動、被動模式)
  • 通過 HTTP 代理的 FTP(GET 命令行或者隧道)
  • 分段下載
  • 支持 Cookie
  • 可以作為守護進程運行。
  • 支持使用 fast 擴展的 BitTorrent 協(xié)議
  • 支持在多文件 torrent 中選擇文件
  • 支持 Metalink 3.0 版本(HTTP/FTP/BitTorrent)
  • 限制下載、上傳速度

1、安裝

我們可以很容易的在所有的 Linux 發(fā)行版上安裝 aria2 命令行下載器,例如 Debian、 Ubuntu、 Mint、 RHEL、 CentOS、 Fedora、 suse、 openSUSE、 Arch Linux、 Manjaro、 Mageia 等等……只需要輸入下面的命令安裝即可。對于 CentOS、 RHEL 系統(tǒng),我們需要開啟 uget 或者 RPMForge 庫的支持。

[對于 Debian、 Ubuntu 和 Mint]
$ sudo apt-get install aria2

[對于 CentOS、 RHEL、 Fedora 21 和更早些的操作系統(tǒng)]
# yum install aria2

[Fedora 22 和 之后的系統(tǒng)]
# dnf install aria2

[對于 suse 和 openSUSE]
# zypper install wget

[Mageia]
# urpmi aria2

[對于 Arch Linux]
$ sudo pacman -S aria2

2、簡單使用

2.1 下載單個文件

下面的命令將會從指定的 URL 中下載一個文件,并且保存在當(dāng)前目錄,在下載文件的過程中,我們可以看到文件的(日期、時間、下載速度和下載進度)。

# aria2c https://download.owncloud.org/community/owncloud-9.0.0.tar.bz2
[#986c80 19MiB/21MiB(90%) CN:1 DL:3.0MiB]
03/22 09:49:13 [NOTICE] Download complete: /opt/owncloud-9.0.0.tar.bz2
Download Results:
gid   |stat|avg speed  |path/URI
======+====+===========+=======================================================
986c80|OK  |   3.0MiB/s|/opt/owncloud-9.0.0.tar.bz2
Status Legend:
(OK):download completed.

2.2 使用不同的名字保存文件

在初始化下載的時候,我們可以使用-o(小寫)選項在保存文件的時候使用不同的名字。這兒我們將要使用 owncloud.zip 文件名來保存文件。

# aria2c -o owncloud.zip https://download.owncloud.org/community/owncloud-9.0.0.tar.bz2
[#d31304 16MiB/21MiB(74%) CN:1 DL:6.2MiB]
03/22 09:51:02 [NOTICE] Download complete: /opt/owncloud.zip
Download Results:
gid   |stat|avg speed  |path/URI
======+====+===========+=======================================================
d31304|OK  |   7.3MiB/s|/opt/owncloud.zip
Status Legend:
(OK):download completed.

2.3 下載速度限制

默認(rèn)情況下,aria2 會利用全部帶寬來下載文件,在文件下載完成之前,我們在服務(wù)器就什么也做不了(這將會影響其他服務(wù)訪問帶寬)。所以在下載大文件時最好使用 --max-download-limit 選項來避免進一步的問題。

# aria2c --max-download-limit=500k https://download.owncloud.org/community/owncloud-9.0.0.tar.bz2
[#7f9fbf 21MiB/21MiB(99%) CN:1 DL:466KiB]
03/22 09:54:51 [NOTICE] Download complete: /opt/owncloud-9.0.0.tar.bz2
Download Results:
gid   |stat|avg speed  |path/URI
======+====+===========+=======================================================
7f9fbf|OK  |   462KiB/s|/opt/owncloud-9.0.0.tar.bz2
Status Legend:
(OK):download completed.

2.4 下載多個文件

下面的命令將會從指定位置下載超過一個的文件并保存到當(dāng)前目錄,在下載文件的過程中,我們可以看到文件的(日期、時間、下載速度和下載進度)。

# aria2c -Z https://download.owncloud.org/community/owncloud-9.0.0.tar.bz2 ftp://ftp.gnu.org/gnu/wget/wget-1.17.tar.gz
[DL:1.7MiB][#53533c 272KiB/21MiB(1%)][#b52bb1 768KiB/3.6MiB(20%)]
03/22 10:25:54 [NOTICE] Download complete: /opt/wget-1.17.tar.gz
[#53533c 18MiB/21MiB(86%) CN:1 DL:3.2MiB]
03/22 10:25:59 [NOTICE] Download complete: /opt/owncloud-9.0.0.tar.bz2
Download Results:
gid   |stat|avg speed  |path/URI
======+====+===========+=======================================================
b52bb1|OK  |   2.8MiB/s|/opt/wget-1.17.tar.gz
53533c|OK  |   3.4MiB/s|/opt/owncloud-9.0.0.tar.bz2
Status Legend:
(OK):download completed.

使用 -P 參數(shù)來擴展下載地址:

[11:30 sxuan@hulab ~/gatk4_practice]$ aria2c -Z -P "http://host/image{1,2,3}_{A,B,C}.png"
5da2af|ERR |       0B/s|http://host/image1_A.png%0A
3c98a4|ERR |       0B/s|http://host/image1_B.png%0A
17ba0a|ERR |       0B/s|http://host/image1_C.png%0A
e7afa3|ERR |       0B/s|http://host/image2_A.png%0A
e99fcf|ERR |       0B/s|http://host/image2_B.png%0A
1f151a|ERR |       0B/s|http://host/image2_C.png%0A
2da0f1|ERR |       0B/s|http://host/image3_A.png%0A
17b599|ERR |       0B/s|http://host/image3_B.png%0A
d9f5ad|ERR |       0B/s|http://host/image3_C.png%0A

2.5 續(xù)傳未完成的下載

當(dāng)你遇到一些網(wǎng)絡(luò)連接問題或者系統(tǒng)問題的時候,并將要下載一個大文件(例如: ISO 鏡像文件),我建議你使用 -c 選項,它可以幫助我們從該狀態(tài)續(xù)傳未完成的下載,并且像往常一樣完成。不然的話,當(dāng)你再次下載,它將會初始化新的下載,并保存成一個不同的文件名(自動的在文件名后面添加 .1 )。注意:如果出現(xiàn)了任何中斷,aria2 使用 .aria2 后綴保存(未完成的)文件。

# aria2c -c https://download.owncloud.org/community/owncloud-9.0.0.tar.bz2
[#db0b08 8.2MiB/21MiB(38%) CN:1 DL:3.1MiB ETA:4s]^C
03/22 10:09:26 [NOTICE] Shutdown sequence commencing... Press Ctrl-C again for emergency shutdown.
03/22 10:09:26 [NOTICE] Download GID#db0b08bf55d5908d not complete: /opt/owncloud-9.0.0.tar.bz2
Download Results:
gid   |stat|avg speed  |path/URI
======+====+===========+=======================================================
db0b08|INPR|   3.3MiB/s|/opt/owncloud-9.0.0.tar.bz2
Status Legend:
(INPR):download in-progress.
如果重新啟動傳輸,aria2 將會恢復(fù)下載。
# aria2c -c https://download.owncloud.org/community/owncloud-9.0.0.tar.bz2
[#873d08 21MiB/21MiB(98%) CN:1 DL:2.7MiB]
03/22 10:09:57 [NOTICE] Download complete: /opt/owncloud-9.0.0.tar.bz2
Download Results:
gid   |stat|avg speed  |path/URI
======+====+===========+=======================================================
873d08|OK  |   1.9MiB/s|/opt/owncloud-9.0.0.tar.bz2
Status Legend:
(OK):download completed.

2.6 從文件獲取輸入

就像 wget 可以從一個文件獲取輸入的 URL 列表來下載一樣。我們需要創(chuàng)建一個文件,將每一個 URL 存儲在單獨的行中。aria2 命令行可以添加 -i 選項來執(zhí)行此操作。

# aria2c -i test-aria2.txt
[DL:3.9MiB][#b97984 192KiB/21MiB(0%)][#673c8e 2.5MiB/3.6MiB(69%)]
03/22 10:14:22 [NOTICE] Download complete: /opt/wget-1.17.tar.gz
[#b97984 19MiB/21MiB(90%) CN:1 DL:2.5MiB]
03/22 10:14:30 [NOTICE] Download complete: /opt/owncloud-9.0.0.tar.bz2
Download Results:
gid   |stat|avg speed  |path/URI
======+====+===========+=======================================================
673c8e|OK  |   4.3MiB/s|/opt/wget-1.17.tar.gz
b97984|OK  |   2.5MiB/s|/opt/owncloud-9.0.0.tar.bz2
Status Legend:
(OK):download completed.

2.7 每個主機使用兩個連接來下載

默認(rèn)情況,每次下載連接到一臺服務(wù)器的最大數(shù)目,對于一條主機只能建立一條。我們可以通過 aria2 命令行添加 -x2(2 表示兩個連接)來創(chuàng)建到每臺主機的多個連接,以加快下載速度。

# aria2c -x2 https://download.owncloud.org/community/owncloud-9.0.0.tar.bz2
[#ddd4cd 18MiB/21MiB(83%) CN:1 DL:5.0MiB]
03/22 10:16:27 [NOTICE] Download complete: /opt/owncloud-9.0.0.tar.bz2
Download Results:
gid   |stat|avg speed  |path/URI
======+====+===========+=======================================================
ddd4cd|OK  |   5.5MiB/s|/opt/owncloud-9.0.0.tar.bz2
Status Legend:
(OK):download completed.

2.8 下載 BitTorrent 種子文件

我們可以使用 aria2 命令行直接下載一個 BitTorrent 種子文件:

# aria2c https://torcache.net/torrent/C86F4E743253E0EBF3090CCFFCC9B56FA38451A3.torrent?title=[kat.cr]irudhi.suttru.2015.official.teaser.full.hd.1080p.pathi.team.sr
[#388321 0B/0B CN:1 DL:0B]                                                                                                                    
03/22 20:06:14 [NOTICE] Download complete: /opt/[kat.cr]irudhi.suttru.2015.official.teaser.full.hd.1080p.pathi.team.sr.torrent
03/22 20:06:14 [ERROR] Exception caught
Exception: [BtPostDownloadHandler.cc:98] errorCode=25 Could not parse BitTorrent metainfo
Download Results:
gid   |stat|avg speed  |path/URI
======+====+===========+=======================================================
388321|OK  |    11MiB/s|/opt/[kat.cr]irudhi.suttru.2015.official.teaser.full.hd.1080p.pathi.team.sr.torrent
Status Legend:
(OK):download completed.

2.9 下載 BitTorrent 磁力鏈接

使用 aria2 我們也可以通過 BitTorrent 磁力鏈接直接下載一個種子文件:

# aria2c 'magnet:?xt=urn:btih:248D0A1CD08284299DE78D5C1ED359BB46717D8C'

2.10 下載 BitTorrent Metalink 種子

我們也可以通過 aria2 命令行直接下載一個 Metalink 文件。

# aria2c https://curl.haxx.se/metalink.cgi?curl=tar.bz2

2.11 從密碼保護的網(wǎng)站下載一個文件

或者,我們也可以從一個密碼保護網(wǎng)站下載一個文件。下面的命令行將會從一個密碼保護網(wǎng)站中下載文件。

# aria2c --http-user=xxx --http-password=xxx https://download.owncloud.org/community/owncloud-9.0.0.tar.bz2
# aria2c --ftp-user=xxx --ftp-password=xxx ftp://ftp.gnu.org/gnu/wget/wget-1.17.tar.gz

2.12 更多命令

使用man aria2caria2c -h查看更多詳細(xì)參數(shù)信息。

3、aria2配置

## 全局設(shè)置 ## ============================================================
# 日志
#log-level=warn
#log=/PATH/.aria2/aria2.log

# 后臺運行
daemon=true

# 下載位置, 默認(rèn): 當(dāng)前啟動位置
dir=/PATH/Downloads

# 從會話文件中讀取下載任務(wù)
input-file=/PATH/.aria2/aria2.session

# 在Aria2退出時保存`錯誤/未完成`的下載任務(wù)到會話文件
save-session=/PATH/.aria2/aria2.session

# 定時保存會話, 0為退出時才保存, 需1.16.1以上版本, 默認(rèn):0
save-session-interval=30

# 斷點續(xù)傳
continue=true

# 啟用磁盤緩存, 0為禁用緩存, 需1.16以上版本, 默認(rèn):16M
#disk-cache=32M

# 文件預(yù)分配方式, 能有效降低磁盤碎片, 默認(rèn):prealloc
# 預(yù)分配所需時間: none < falloc ? trunc < prealloc
# falloc和trunc則需要文件系統(tǒng)和內(nèi)核支持
# NTFS建議使用falloc, EXT3/4建議trunc, MAC 下需要注釋此項
file-allocation=none

# 客戶端偽裝
user-agent=netdisk;5.2.6;PC;PC-Windows;6.2.9200;WindowsBaiduYunGuanJia
referer=http://pan.baidu.com/disk/home

# 禁用IPv6, 默認(rèn):false
disable-ipv6=true

# 其他
always-resume=true
check-integrity=true

## 下載位置 ## ============================================================
# 最大同時下載任務(wù)數(shù), 運行時可修改, 默認(rèn):5
max-concurrent-downloads=5

# 同一服務(wù)器連接數(shù), 添加時可指定, 默認(rèn):1
max-connection-per-server=5

# 最小文件分片大小, 添加時可指定, 取值范圍1M -1024M, 默認(rèn):20M
# 假定size=10M, 文件為20MiB 則使用兩個來源下載; 文件為15MiB 則使用一個來源下載
min-split-size=10M

# 單個任務(wù)最大線程數(shù), 添加時可指定, 默認(rèn):5
split=5

# 整體下載速度限制, 運行時可修改, 默認(rèn):0
#max-overall-download-limit=0

# 單個任務(wù)下載速度限制, 默認(rèn):0
#max-download-limit=0

# 整體上傳速度限制, 運行時可修改, 默認(rèn):0
#max-overall-upload-limit=0

# 單個任務(wù)上傳速度限制, 默認(rèn):0
#max-upload-limit=0

## RPC設(shè)置 ## ============================================================
# 啟用RPC, 默認(rèn):false
enable-rpc=true

# 允許所有來源, 默認(rèn):false
rpc-allow-origin-all=true

# 允許非外部訪問, 默認(rèn):false
rpc-listen-all=true

# 事件輪詢方式, 取值:[epoll, kqueue, port, poll, select], 不同系統(tǒng)默認(rèn)值不同
#event-poll=select

# RPC監(jiān)聽端口, 端口被占用時可以修改, 默認(rèn):6800
rpc-listen-port=6800

# 設(shè)置的RPC授權(quán)令牌, v1.18.4新增功能, 取代 --rpc-user 和 --rpc-passwd 選項
#rpc-secret=<TOKEN>

# 是否啟用 RPC 服務(wù)的 SSL/TLS 加密,
# 啟用加密后 RPC 服務(wù)需要使用 https 或者 wss 協(xié)議連接
#rpc-secure=true

# 在 RPC 服務(wù)中啟用 SSL/TLS 加密時的證書文件,
# 使用 PEM 格式時,您必須通過 --rpc-private-key 指定私鑰
#rpc-certificate=/path/to/certificate.pem

# 在 RPC 服務(wù)中啟用 SSL/TLS 加密時的私鑰文件
#rpc-private-key=/path/to/certificate.key

## BT/PT下載相關(guān) ## ============================================================
# 當(dāng)下載的是一個種子(以.torrent結(jié)尾)時, 自動開始BT任務(wù), 默認(rèn):true
#follow-torrent=true

# BT監(jiān)聽端口, 當(dāng)端口被屏蔽時使用, 默認(rèn):6881-6999
listen-port=51413

# 單個種子最大連接數(shù), 默認(rèn):55
#bt-max-peers=55

# 打開DHT功能, PT需要禁用, 默認(rèn):true
enable-dht=false

# 打開IPv6 DHT功能, PT需要禁用
#enable-dht6=false

# DHT網(wǎng)絡(luò)監(jiān)聽端口, 默認(rèn):6881-6999
#dht-listen-port=6881-6999

dht-file-path=/opt/var/aria2/dht.dat
dht-file-path6=/opt/var/aria2/dht6.dat

# 本地節(jié)點查找, PT需要禁用, 默認(rèn):false
#bt-enable-lpd=false

# 種子交換, PT需要禁用, 默認(rèn):true
enable-peer-exchange=false

# 每個種子限速, 對少種的PT很有用, 默認(rèn):50K
#bt-request-peer-speed-limit=50K

# 設(shè)置 peer id 前綴
peer-id-prefix=-TR2770-

# 當(dāng)種子的分享率達到這個數(shù)時, 自動停止做種, 0為一直做種, 默認(rèn):1.0
seed-ratio=0

# 強制保存會話, 即使任務(wù)已經(jīng)完成, 默認(rèn):false
# 較新的版本開啟后會在任務(wù)完成后依然保留.aria2文件
#force-save=false

# BT校驗相關(guān), 默認(rèn):true
#bt-hash-check-seed=true

# 繼續(xù)之前的BT任務(wù)時, 無需再次校驗, 默認(rèn):false
bt-seed-unverified=true

# 保存磁力鏈接元數(shù)據(jù)為種子文件(.torrent文件), 默認(rèn):false
bt-save-metadata=true

bt-max-open-files=16

參考:
aria2 (命令行下載器)實例
aria2 配置詳解
aria2官方文檔
aria2 使用說明

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 227,837評論 6 531
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 98,196評論 3 414
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 175,688評論 0 373
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經(jīng)常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 62,654評論 1 309
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 71,456評論 6 406
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 54,955評論 1 321
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,044評論 3 440
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 42,195評論 0 287
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 48,725評論 1 333
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 40,608評論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 42,802評論 1 369
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,318評論 5 358
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 44,048評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,422評論 0 26
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,673評論 1 281
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,424評論 3 390
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 47,762評論 2 372

推薦閱讀更多精彩內(nèi)容