LJason

LJason

野生程序猴子
twitter
github
nintendo switch
steam
bilibili
email

玩轉樹莓派 02 —— 搭建下載機

關於 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 為不限速)。

載入中......
此文章數據所有權由區塊鏈加密技術和智能合約保障僅歸創作者所有。