之前是在 Qnap Nas 上透過 Container 的方式安裝 Aria2 ,補足 Qnap 貧弱的下載功能,自己架設 Ubuntu / Linux 主機的話可以考慮直接實裝 aria2 ,效能也會比較好。但一般 Aria2 安裝後是獨立運行的程式,改裝成系統服務就可以無人值守持續下載了。
首先安裝 Aria2
sudo apt-get -y install aria2
要確認安裝成功可以看一下版本,要注意是 Aria2 安裝完後執行命令是 aria2c …
aria2c -v
個人使用先建立 aria2 的個人設定目錄、 aria2.session、aria2.log、aria2.conf 等檔案:
mkdir ~/.aria2
touch ~/.aria2/aria2.session
touch ~/.aria2/aria2.log
touch ~/.aria2/aria2.conf
編輯 aria2 的設定檔,檔案名稱其實可以自行設定
nano ~/.aria2/aria2.conf
底下是 aria2.conf 的範例,可自行調整
## '#'開頭為註解內容,選項都有對應的說明,請根據需要修改 ##
## 註解選項填寫的是預設值,建議在需要修改時再取消註解 ##
## 檔案儲存相關 ##
# 檔案的儲存路徑(可使用絕對路徑或相對路徑),預設: 目前啟動位置
dir=/media/Download/aria2
# 啟用磁碟快取,0為停用快取,需 1.16 以上版本,預設: 16M
disk-cache=64M
# 檔案預分配方式,能有效降低磁碟碎片,預設: prealloc
# 預分配所需時間: none < falloc < trunc < prealloc
# NTFS 建議使用 falloc
file-allocation=none
# 斷點續傳
continue=true
## 下載連線相關 ##
# 最大同時下載任務數,執行時可修改,預設:5
max-concurrent-downloads=5
# 同一伺服器連線數,新增時可指定,預設:1
max-connection-per-server=10
# 最小檔案分割大小,新增時可指定,取值範圍 1M -1024M,預設: 20M
# 假定 size=10M,檔案為 20MiB 則使用兩個來源下載;檔案為 15MiB 則使用一個來源下載
min-split-size=20M
# 單個任務最大執行緒數,新增時可指定,預設: 5
split=20
# 整體下載速度限制,執行時可修改,預設: 0
#max-overall-download-limit=0
# 單個任務下載速度限制,預設: 0
#max-download-limit=0
# 整體上傳速度限制,執行時可修改,預設: 0
max-overall-upload-limit=1K
# 單個任務上傳速度限制,預設: 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=<自訂密碼>
# 設定的 RPC 存取使用者名稱,此選項新版已廢棄,建議改用 --rpc-secret 選項
#rpc-user=<USER>
# 設定的 RPC 存取密碼,此選項新版已廢棄,建議改用 --rpc-secret 選項
# rpc-passwd=<PASSWORD>
## BT/PT下載相關 ##
# 當下載的是一個種子 (以 .torrent 結尾) 時,自動開始 BT 任務,預設: true
follow-torrent=true
# BT 連接埠,當連接埠被遮蔽時使用,預設: 6881-6999
listen-port=62524
# 單個種子最大連線數,預設: 55
#bt-max-peers=55
#bt-tracker=
# 開啟 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=500K
# 客戶端偽裝,PT 需要
peer-id-prefix=-TR2770-
user-agent=Transmission/2.77
# 當種子的分享率達到此個數時,自動停止做種,0為一直做種,預設: 1.0
seed-ratio=0.1
seed-time=0
# 強制儲存 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 後跑在背景只需要下這樣的指令:
aria2c --conf-path=./aria2/aria2.conf -D
設定為系統服務前,先編輯系統要使用的 aria2.conf (名稱可自訂)
sudo nano /etc/aria2/aria2.conf
建立系統使用的 aria2.session (名稱也可自訂)
sudo touch /etc/aria2/aria2.session
sudo chmod 777 /etc/aria2/aria2.session #給予所有人讀寫權限、用不同使用者啟用服務才不會有差別
編輯設定系統服務 systemd 用的設定檔
sudo nano /etc/systemd/system/aria2c.service
服務設定檔範例,預設使用者為 root ,但下載後的檔案也會變成 root 擁有,改用其他 user 可以減少下載後的權限問題,如果沒有修改 aria2.conf 內 session 儲存的路徑,可以在設定檔內給、會覆蓋 conf 內的值:
[Unit]
Description=aria2c
After=network.target
[Service]
Type=forking
User=<其他 username >
# 執行參數可以強制覆蓋設定檔內的設定值
ExecStart=/usr/bin/aria2c --conf-path=/etc/aria2/aria2.conf
[Install]
WantedBy=default.target
啟用系統服務相關指令
sudo systemctl daemon-reload #重載所有服務設定
sudo systemctl start aria2c #啟用服務
sudo systemctl status aria2c #檢視服務狀態,看有沒有錯誤代碼,狀態要為綠色 Active 即為成功
sudo systemctl enable aria2c #設為隨系統啟動
這時候在用其他 Aria2 的 Client (例如 AriaNG 或 Aria2 for Chrome )進行連線就可以開始下載了。