Then Notes 隨筆

aria2 設定教學 – 強大又輕巧的下載工具,支援 BT、斷點續傳

cover
目錄

aria2 是一款強大又輕巧的下載工具,5 MB 不到的大小支援了 HTTP、HTTPS、FTP、SFTP、BitTorrent (BT 種子) 和 Metalink 等通訊協定。aria2 的原理跟 IDM 相似,都是透過分割檔案、增加連線數進行下載,可以提升下載速度。

如果您不想動手設定這些有的沒的,其實可以試試看 Motrix 這個開源的下載工具,其核心也是 aria2 哦!但已經全部設定好了,安裝後即可使用。

因為 Motrix 已經很久沒有發布更新,開源社群有人做了 Motrix Next,也可以試試:

功能特色

  • 多點下載
  • 多協定下載
  • 檔案分割下載
  • 可使用代理伺服器
  • 可使用 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.confaria2.sessionStart.vbsStatus.batStop.batRestart.bat

建議您不要使用「記事本」建立這些檔案,可能會因為編碼問題造成錯誤。可以使用 Visual Studio Code 或 Notepad++ 等軟體編輯,編碼請選擇 UTF-8,且副檔名一定要正確,注意不要存成 .txt 純文字檔哦!

aria2-vscode

手動建立 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

手動建立 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 設定」 →「RPC」→ 在 Aria2 RPC 位址中填入「localhost」即可。 aria2-rpc

再來就可以盡情享受快速下載囉! aria2-download

可以看到 aria2 一次以 10 個連線數下載檔案,有助於提升下載速度! aria2-connection

下載完的檔案位置位在 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

本文由作者 Chiahong 發表,歡迎分享,如需引用時請註明來源,感謝您!