關於 Aria2 請自行 Google,這裡只講使用。
更新#
使用 Docker 安裝 Aria2:
git clone --depth=1 https://github.com/LJason77/docker-aria2-with-webui.git
cd docker-aria2-with-webui/
docker build -t aria2 .
docker run -d --name aria2 --restart always --network host -v /mnt/downloads:/data aria2
具體用法可以查看項目:docker-aria2-with-webui
舊日博客#
安裝 Aria#
由於倉庫裡的 aria2 版本太過於舊,所以我這裡手動編譯安裝:
首先獲取源碼:
git clone --depth=1 https://github.com/aria2/aria2.git
然後安裝相關的依賴:
apt-get install -y libgnutls-deb0-28 nettle-dev libgmp-dev libssh2-1-dev libc-ares-dev libxml2-dev zlib1g-dev libsqlite3-dev pkg-config libgpg-error-dev libgcrypt20-dev libssl-dev libexpat1-dev libcppunit-dev autoconf automake autotools-dev autopoint libtool
生成構建程序所需的配置腳本和其他文件:
autoreconf -i
然後開始配置 aria2:
./configure
配置完成後,開始編譯 aria2:
make
編譯完成之後,可執行文件位於 src/aria2c
,然後運行單元測試:
make check
結束之後就可以安裝了:
sudo make install
配置 aria2#
創建 Aria2 的配置文件夾:
sudo mkdir /etc/aria2
創建 session 和配置文件:
sudo touch /etc/aria2/aria2.session
sudo touch /etc/aria2/aria2.conf
編輯 /etc/aria2/aria2.conf
:
## 文件保存相關
# 文件保存目錄
dir=/mnt/storage/download
# 啟用磁碟快取, 0為禁用快取, 需1.16以上版本, 默認:16M
disk-cache=32M
# 斷點續傳
continue=true
# 文件預分配方式, 能有效降低磁碟碎片, 默認:prealloc
# 預分配所需時間: none < falloc ? trunc < prealloc
# falloc和trunc則需要文件系統和內核支持
# NTFS建議使用falloc, EXT3/4建議trunc, MAC 下需要註釋此項
#file-allocation=falloc
## 下載連接相關
# 最大同時下載任務數, 運行時可修改, 默認:5
#max-concurrent-downloads=5
# 同一伺服器連接數, 添加時可指定, 默認:1
max-connection-per-server=15
# 整體下載速度限制, 運行時可修改, 默認:0(不限制)
#max-overall-download-limit=0
# 單個任務下載速度限制, 默認:0(不限制)
#max-download-limit=0
# 整體上傳速度限制, 運行時可修改, 默認:0(不限制)
#max-overall-upload-limit=0
# 單個任務上傳速度限制, 默認:0(不限制)
#max-upload-limit=0
# 禁用IPv6, 默認:false
disable-ipv6=true
# 最小文件分片大小, 添加時可指定, 取值範圍1M -1024M, 默認:20M
# 假定size=10M, 文件為20MiB 則使用兩個來源下載; 文件為15MiB 則使用一個來源下載
min-split-size=10M
# 單個任務最大線程數, 添加時可指定, 默認:5
split=10
## 進度保存相關
# 從會話文件中讀取下載任務
input-file=/etc/aria2/aria2.session
# 在Aria2退出時保存錯誤的、未完成的下載任務到會話文件
save-session=/etc/aria2/aria2.session
# 定時保存會話, 0為退出時才保存, 需1.16.1以上版本, 默認:0
save-session-interval=60
## RPC相關設置
# 啟用RPC, 默認:false
enable-rpc=true
# 允許所有來源, 默認:false
rpc-allow-origin-all=true
# 允許外部訪問, 默認:false
rpc-listen-all=true
# RPC端口, 僅當默認端口被占用時修改
# rpc-listen-port=6800
# 設置的RPC授權令牌, v1.18.4新增功能, 取代 --rpc-user 和 --rpc-passwd 選項
#rpc-secret=<TOKEN>
## BT/PT下載相關
# 當下載的是一個種子(以.torrent結尾)時, 自動開始BT任務, 默認:true
#follow-torrent=true
# 客戶端偽裝, PT需要
peer-id-prefix=-TR2770-
user-agent=Transmission/2.77
# 強制保存會話, 即使任務已經完成, 默認:false
# 較新的版本開啟後會在任務完成後依然保留.aria2文件
#force-save=false
# 繼續之前的BT任務時, 無需再次校驗, 默認:false
bt-seed-unverified=true
# 保存磁力鏈接元數據為種子文件(.torrent文件), 默認:false
bt-save-metadata=true
然後執行:
aria2c --conf-path=/etc/aria2/aria2.conf -D
沒有任何提示則表示成功。接下來添加開機自啟:
sudo touch /etc/init.d/aria2c
添加:
#!/bin/sh
### BEGIN INIT INFO
# Provides: aria2c
# Required-Start: $network $local_fs $remote_fs
# Required-Stop: $network $local_fs $remote_fs
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: aria2c RPC init script.
# Description: Starts and stops aria2 RPC services.
### END INIT INFO
USER=root
RETVAL=0
case "$1" in
start)
echo "Starting service Aria2..."
aria2c --conf-path=/etc/aria2/aria2.conf -D
echo "Start service done."
;;
stop)
echo "Stoping service Aria2..."
killall aria2c
echo "Stop service done."
;;
esac
exit $RETVAL
執行:
sudo chmod +x /etc/init.d/aria2c
sudo apt-get -y install chkconfig
sudo chkconfig --add aria2c
安裝 nginx#
Nginx 是一個非常輕量級的 HTTP 伺服器,非常適合放在樹莓派上作為 Aria2 的 Web 管理。安裝 Nginx:
sudo apt-get -y install nginx
下載第三方的程序:
sudo rm -rf /var/www/html
sudo git clone --depth=1 https://github.com/ziahamza/webui-aria2.git /var/www/html
啟動 nginx:
sudo /etc/init.d/nginx start
添加開機自啟,編輯 /etc/rc.local
,添加一行:
/etc/init.d/nginx start
在瀏覽器中輸入樹莓派的 IP 即可使用 Aria2 下載了。
現在只要把鏈接、種子在上學前、上班前、睡覺前扔進去,回來就下載好了。
如果下載大家伙,完全不像以前要掛機一整天。
想想看,電腦功率多大,根據 RaspberryPi,三代的樹莓派額定功率才 4.0W,超省電。
用直鏈下載百毒雲資源(已失效)#
萬惡的百毒雲不交錢就限速下載真是受夠了,本來想申請 PCS 來獲得 API 端口用來不限速下載。
可惜人家早已看穿你的小心思,百毒早在 13 年就關閉的 PCS 的註冊,但老用戶則不受影響(關閉公告上原因說了一大堆,其實就是大家都拿來做不限速,百毒沒法撈錢而已)。
但是天無絕人之路,就因為老用戶不受影響,所以我輾轉終於找到了個 PCS 。
進去登錄百度雲,之後在 雲盤 - 我的應用數據 - hgf_blog 中放入文件,頁面中就會出現列表,點擊文件即可獲得直鏈,然後用 Aria2 下載即可。
用 Tampermonkey 下載百度雲資源#
首先在 chrome 瀏覽器安裝 Tampermonkey 插件,然後再安裝 百度網盤直接下載助手,這樣就可以了,教程可以參照裡面的說明。
打開 百度雲,選中一個文件,將會出現一個 下載助手
,選擇 外鏈下載
-顯示鏈接
-編輯
-單行
,再全選複製鏈接,粘貼到 aria2 裡面下載即可。
注意:文件名是中文的,在 aria2 裡面下載會亂碼,可以在百度雲裡重命名或者在鏈接後面加上 --out = 文件名,具體在 Aria2 下載的界面都有說明。
定時限速#
我白天在學校,晚上才回家。為了不影響上網,所以我就想白天全速下載,晚上定時限速。編輯 /var/spool/cron/crontabs/root
,添加:
0 19 * * * curl http://127.0.0.1:6800/jsonrpc -H "Content-Type: application/json" -H "Accept: application/json" --data '{"jsonrpc":"2.0","id":1,"method":"aria2.changeGlobalOption","params":[{"max-overall-download-limit":"300K","max-overall-upload-limit":"10K"}]}'
30 23 * * * curl http://127.0.0.1:6800/jsonrpc -H "Content-Type: application/json" -H "Accept: application/json" --data '{"jsonrpc":"2.0","id":1,"method":"aria2.changeGlobalOption","params":[{"max-overall-download-limit":"0","max-overall-upload-limit":"0"}]}'
第一行表示在 19:00 的時候開始限制下載速度為 300K,上傳限速為 10K;第二行表示在 23:30 的時候開始,下載和上傳速度均為 0(0 為不限速)。