aria2 是一款強大又輕巧的下載工具,5 MB 不到的大小支援了 HTTP、HTTPS、FTP、SFTP、BitTorrent (BT 種子) 和 Metalink 等通訊協定。aria2 的原理跟 IDM 相似,都是透過分割檔案、增加連線數進行下載,可以提升下載速度。
如果您不想動手設定這些有的沒的,其實可以試試看 Motrix 這個開源的下載工具,其核心也是 aria2 哦!但已經全部設定好了,安裝後即可使用。
# 功能特色
- 多點下載
- 多協定下載
- 檔案分割下載
- 可使用代理伺服器
- 可使用 JSON-RPC、XML-RPC 遠端控制
# 下載
請根據自己的作業系統下載對應的版本,32 位元請選擇 win-32bit,64 位元請選擇 win-64bit。下載連結在 Assets 中,檔名看起來可能像 aria2-1.XX.0-win-XXbit-build1.zip
。
# 安裝、設定
由於 aria2 是非常輕量化的下載工具,所以並沒有 GUI 介面(別擔心,有人寫出 Web 介面,後面會講到!),需要自行建立設定檔。
首先解壓縮 aria2 至硬碟中的任何地方,例如 C:\aria2
,在資料夾中依序建立 5 個檔案 aria2.conf
、aria2.session
、Start.vbs
、Status.bat
、Stop.bat
、Restart.bat
。
建議您不要使用「記事本」建立這些檔案,可能會因為編碼問題造成錯誤。可以使用 Visual Studio Code 或 Notepad++ 等軟體編輯,編碼請選擇 UTF-8,且副檔名一定要正確,注意不要存成 .txt 純文字檔哦!
# 手動建立 aria2.conf
檔案
用文字編輯軟體貼上以下設定,可以自行調整功能。
## '#'開頭為註解內容,選項都有對應的說明,請根據需要修改 ##
## 註解選項填寫的是預設值,建議在需要修改時再取消註解 ##
## 檔案儲存相關 ##
# 檔案的儲存路徑(可使用絕對路徑或相對路徑),預設: 目前啟動位置
dir=Download
# 啟用磁碟快取,0為停用快取,需 1.16 以上版本,預設: 16M
disk-cache=32M
# 檔案預分配方式,能有效降低磁碟碎片,預設: prealloc
# 預分配所需時間: none < falloc < trunc < prealloc
# NTFS 建議使用 falloc
file-allocation=none
# 斷點續傳
continue=true
## 下載連線相關 ##
# 最大同時下載任務數,執行時可修改,預設:5
max-concurrent-downloads=10
# 同一伺服器連線數,新增時可指定,預設:1
max-connection-per-server=10
# 最小檔案分割大小,新增時可指定,取值範圍 1M -1024M,預設: 20M
# 假定 size=10M,檔案為 20MiB 則使用兩個來源下載;檔案為 15MiB 則使用一個來源下載
min-split-size=10M
# 單個任務最大執行緒數,新增時可指定,預設: 5
split=20
# 整體下載速度限制,執行時可修改,預設: 0
#max-overall-download-limit=0
# 單個任務下載速度限制,預設: 0
#max-download-limit=0
# 整體上傳速度限制,執行時可修改,預設: 0
max-overall-upload-limit=1M
# 單個任務上傳速度限制,預設: 0
#max-upload-limit=1000
# 停用 IPv6,預設: false
disable-ipv6=false
## 進度儲存相關 ##
# 從 Session 檔案中讀取下載任務
input-file=aria2.session
# 在 Aria2 結束時儲存錯誤 / 未完成的下載任務到 Session 檔案
save-session=aria2.session
# 定時儲存 Session,0 為結束時才儲存,需 1.16.1 以上版本,預設: 0
save-session-interval=30
## RPC 相關設定 ##
# 啟用 RPC,預設: false
enable-rpc=true
# 允許所有來源,預設: false
rpc-allow-origin-all=true
# 允許非外部存取,預設: false
rpc-listen-all=true
# 事件輪詢方式,取值: [epoll, kqueue, port, poll, select],不同系統預設值不同
#event-poll=select
# RPC 連接埠,連接埠被佔用時可以修改,預設: 6800
#rpc-listen-port=6800
# 設定的 RPC 授權 Token,v1.18.4 新增功能,取代 --rpc-user 和 --rpc-passwd 選項
#rpc-secret=<TOKEN>
# 設定的 RPC 存取使用者名稱,此選項新版已廢棄,建議改用 --rpc-secret 選項
#rpc-user=<USER>
# 設定的 RPC 存取密碼,此選項新版已廢棄,建議改用 --rpc-secret 選項
#rpc-passwd=<PASSWD>
## BT/PT下載相關 ##
# 當下載的是一個種子 (以 .torrent 結尾) 時,自動開始 BT 任務,預設: true
follow-torrent=true
# BT 連接埠,當連接埠被遮蔽時使用,預設: 6881-6999
listen-port=62524
# 單個種子最大連線數,預設: 55
#bt-max-peers=55
# 開啟 DHT 功能,PT需要禁用,預設: true
enable-dht=true
# 開啟 IPv6 DHT 功能,PT 需要停用
#enable-dht6=false
# DHT 網路連接埠,預設: 6881-6999
#dht-listen-port=6881-6999
# 本地節點查詢,PT 需要停用,預設: false
#bt-enable-lpd=true
# 種子交換,PT需要停用,預設: true
enable-peer-exchange=true
# 每個種子限速,對少種的PT很有用,預設: 50K
#bt-request-peer-speed-limit=50K
# 客戶端偽裝,PT 需要
peer-id-prefix=-TR2770-
user-agent=Transmission/2.77
# 當種子的分享率達到此個數時,自動停止做種,0為一直做種,預設: 1.0
seed-ratio=0.1
# 強制儲存 Session,即使任務已經完成,預設: false
# 較新的版本開啟後會在任務完成後依然保留 .aria2 檔案
#force-save=false
# BT校驗相關,預設: true
#bt-hash-check-seed=true
# 繼續之前的 BT 任務時,無需再次校驗,預設: false
bt-seed-unverified=true
# 儲存磁力連結中繼資料為種子檔案(.torrent檔案),預設: false
#bt-save-metadata=true
2020/06/30 更新,新增額外的 Tracker,
有沒有效果筆者不敢保證
bt-tracker=http://tracker.prq.to/announce,http://tracker.prq.to/announce.php,http://tracker.publicbt.com/announce,http://tracker.openbittorrent.com:80/announce,http://denis.stalker.h3q.com:6969/announce,udp://tracker.leechers-paradise.org:6969/announce,udp://tracker.pirateparty.gr:6969/announce,udp://tracker.cuntflaps.me:6969/announce,udp://tracker.coppersurfer.tk:6969/announce,udp://tracker.opentrackr.org:1337/announce,http://tracker.opentrackr.org:1337/announce,udp://tracker1.wasabii.com.tw:6969/announce,udp://tracker.zer0day.to:1337/announce,http://p4p.arenabg.com:1337/announce,udp://p4p.arenabg.com:1337/announce,http://tracker.internetwarriors.net:1337/announce,udp://tracker.internetwarriors.net:1337/announce,udp://inferno.demonoid.ooo:3389/announce,udp://explodie.org:6969/announce,udp://bt.xxx-tracker.com:2710/announce,udp://allesanddro.de:1337/announce,udp://9.rarbg.com:2710/announce,udp://tracker.mg64.net:6969/announce,udp://mgtracker.org:6969/announce,udp://ipv4.tracker.harry.lu:80/announce,http://tracker.mg64.net:6881/announce,http://mgtracker.org:6969/announce,http://ipv4.tracker.harry.lu:80/announce,http://retracker.telecom.by:80/announce,http://tracker.devil-torrents.pl:80/announce,http://grifon.info:80/announce,http://tracker1.wasabii.com.tw:6969/announce,http://tracker.grepler.com:6969/announce,http://retracker.mgts.by:80/announce,udp://tracker.grepler.com:6969/announce,http://tracker.tlm-project.org:6969/announce,http://t.nyaatracker.com:80/announce,udp://tracker.vanitycore.co:6969/announce,http://tracker.vanitycore.co:6969/announce,http://tracker.electro-torrent.pl:80/announce,http://bt.artvid.ru:6969/announce,http://agusiq-torrents.pl:6969/announce,udp://tracker.kamigami.org:2710/announce,udp://public.popcorn-tracker.org:6969/announce,http://tracker.torrentyorg.pl:80/announce,udp://tracker.kuroy.me:5944/announce,udp://86.19.29.160:6969/announce,udp://208.67.16.113:8000/announce,http://tracker2.wasabii.com.tw:6969/announce,http://tracker.kuroy.me:5944/announce,http://91.218.230.81:6969/announce,udp://tracker.tiny-vps.com:6969/announce,udp://peerfect.org:6969/announce,udp://tracker.swateam.org.uk:2710/announce,udp://tracker.filetracker.pl:8089/announce,http://tracker.filetracker.pl:8089/announce,udp://zephir.monocul.us:6969/announce,udp://z.crazyhd.com:2710/announce,udp://tracker.halfchub.club:6969/announce,udp://tracker.christianbro.pw:6969/announce,udp://tracker2.wasabii.com.tw:6969/announce,udp://tracker2.christianbro.pw:6969/announce,udp://tracker.torrent.eu.org:451/announce,udp://tracker.files.fm:6969/announce,udp://tracker.edoardocolombo.eu:6969/announce,udp://tracker.doko.moe:6969/announce,udp://tracker.desu.sh:6969/announce,udp://tracker.cypherpunks.ru:6969/announce,udp://oscar.reyesleon.xyz:6969/announce,udp://open.stealth.si:80/announce,udp://open.facedatabg.net:6969/announce,http://fxtt.ru:80/announce,udp://tracker.cyberia.is:6969/announce,udp://thetracker.org:80/announce,http://torrentsmd.com:8080/announce,udp://tracker.skyts.net:6969/announce,udp://tracker.safe.moe:6969/announce,udp://tracker.piratepublic.com:1337/announce,udp://tracker.bluefrog.pw:2710/announce,udp://tracker.baravik.org:6970/announce,udp://tr.cili001.com:6666/announce,udp://retracker.lanta-net.ru:2710/announce,http://tracker2.itzmx.com:6961/announce,http://open.acgtracker.com:1096/announce,udp://tracker.justseed.it:1337/announce,http://tracker.tfile.me:80/announce,http://share.camoe.cn:8080/announce,http://retracker.omsk.ru:2710/announce,http://explodie.org:6969/announce
# 手動建立 aria2.session
檔案(Session 儲存位置)
空白檔案,不用填入任何東西。沒錯,不用懷疑,存檔完就可以關掉了!
注意!
aria2.session
雖然是空白檔案,但一定要建立,否則會打不開 aria2
# 手動建立 Start.vbs
檔案(讓 aria2 背景執行)
CreateObject("WScript.Shell").Run "aria2c.exe --conf-path=aria2.conf",0
# 手動建立 Status.bat
檔案(顯示 aria2 狀態)
@echo off & title Aria2 Status
TaskList /FI "IMAGENAME eq aria2c.exe" /FO LIST
pause > nul
# 手動建立 Stop.bat
檔案(關閉 aria2)
@echo off & title Aria2 Stop
Taskkill /F /IM aria2c.exe
pause > nul
# 手動建立 Restart.bat
檔案(重啟 aria2)
Taskkill /F /IM aria2c.exe
start Start.vbs
# 執行 aria2
以上建立的 1 個 vbs 檔、3 個 bat 檔的功能就如同其名稱,現在我們要啟動 aria2,所以請點兩下 Start.vbs
,讓 aria2 在背景執行。因為是在背景執行,所以
不會有任何畫面! 不會有任何畫面! 不會有任何畫面!
這很重要所以說 3 次。
# 檢查 aria2 狀態
如果您要確定 aria2 是否真的在執行,可以點兩下 Status.bat
查看狀態。應該會看到類似下面這樣的資訊,就表示 aria2 已經在背景運作了。
映像名稱: aria2c.exe
PID: 2176
工作階段名稱: Console
工作階段 #: 1
RAM使用量: 10,276 K
# 除錯
如果您在改完設定檔 aria2.conf
後遇到任何問題,或 Status.bat
也說沒有 aria2 在背景執行,說明設定檔有錯誤。如果您熟悉使用命令提示字元 / PowerShell / Windows Terminal 的操作,可以直接下指令:
.\aria2c.exe --conf-path=aria2.conf
來檢查是哪邊報錯。如果您不熟悉這些操作,請用「修改一次、執行一次」的方式除錯。即每改完一次 aria2.conf
,就用 Restart.bat
重啟,並用 Status.bat
檢查到底有沒有正確執行。
# 重啟或關閉 aria2
點兩下 Restart.bat
即會重啟 aria2,您會看到一個黑畫面一閃而過,這是正常的,黑畫面消失後就代表 aria2 已經成功重啟了。
若要關閉 aria2,點兩下 Stop.bat
後看到類似以下訊息就是成功關閉囉!
成功: 處理程序 "aria2c.exe" (PID 2176) 已經終止了。
# aria2 控制台
筆者喜歡的控制台為 mayswind 所編寫的 AriaNg,如果有需要自行架設控制台的朋友,可以前往 AriaNg 的專案頁面下載。
前往 aria2 控制台※ 2022 更新,因 Chome/Edge 新版會有 CORS 問題,而無法連線。開啟 F12 會顯示 Access to XMLHttpRequest at http://localhost:6800/jsonrpc from origin http://ariang.mayswind.net has been blocked by CORS policy.
※【步驟更新】請下載 Releases 頁面中,Assets 下之
AriaNg-版本-AllInOne.zip
來使用。解壓縮後點兩下開啟index.html
即可。https://github.com/mayswind/AriaNg/releases
請點選「AriaNg 設定」 →「RPC」→ 在 Aria2 RPC 位址中填入「localhost
」即可。
再來就可以盡情享受快速下載囉!
可以看到 aria2 一次以 10 個連線數下載檔案,有助於提升下載速度!
下載完的檔案位置位在 aria2 目錄的 Download
資料夾,假設程式路徑是 C:\aria2
,那下載資料夾就是 C:\aria2\Download
。如需修改下載資料夾,請參照上面的 aria2.conf
中的第 7 行 (dir=Download
),資料夾名稱請不要使用中文或特殊符號,以免發生錯誤。
# Docker 版
推薦使用 P3TERX 的 Aria2-Pro。筆者就架了一個 Aria2-Pro 在自己的伺服器上,若需要長時間下載的檔案就丟上去慢慢抓,十分方便。但請您盡量不要開放外部存取!如有相關需求也務必注意安全性,最好限制僅能特定 IP 能連、可用反向代理、且金鑰一定要夠複雜。
以下設定中 aria2 在 6800 port,AriaNg 則在 6880 port。
# docker-compose.yml
version: "3.8"
services:
Aria2-Pro:
container_name: aria2-pro
image: p3terx/aria2-pro
environment:
- PUID=65534
- PGID=65534
- UMASK_SET=022
- RPC_SECRET=【如果要對外開,金鑰務必要設定。AriaNg 設定中也要填寫此金鑰才能連線】
- RPC_PORT=6800
- LISTEN_PORT=6888
- DISK_CACHE=64M
- IPV6_MODE=false
- UPDATE_TRACKERS=true
- CUSTOM_TRACKER_URL=
- TZ=Asia/Taipei
volumes:
- ${PWD}/aria2-config:/config
- ${PWD}/aria2-downloads:/downloads
network_mode: host
restart: unless-stopped
# 因為 aria2 會持續產生記錄檔,所以限制大小以避免佔用儲存空間
logging:
driver: json-file
options:
max-size: 1m
AriaNg:
container_name: ariang
image: p3terx/ariang
command: --port 6880 --ipv6
network_mode: host
restart: unless-stopped
logging:
driver: json-file
options:
max-size: 1m