之前一直用oneindex配合rclone和aria2做離線下載和網盤,最近E5不能續期了,就開始找替代品。兩三年前用過nextcloud,那個時候下載用的是自帶的ocDownloader,但是太復雜了,而且后臺還需要自己安裝配置一堆東西。現在準備直接自建aria2服務,再把數據自動存儲進。
日常引流:原文地址https://pa.ci/112.html
nextcloud搭建
我系統用的是debian 10 64bits,服務器為ikoula G3900那款,正好趕上促銷只要10歐一個月,拿來做測試是最合適不過了。
安裝nextcloud
apt install snapd
snap install core
snap install nextcloud
復制代碼
修改訪問域名
此時,訪問 http://ip 就可以看到nextcloud的默認設置頁面,設置初始賬號和密碼即可使用。但是為了便于使用和管理,需要綁定一個域名,編輯以下文件中overwrite.cli.url這一行,把ip地址改為域名,并重啟nextcloud:
/var/snap/nextcloud/current/nextcloud/config/config.php
snap restart nextcloud
復制代碼
現在就可以通過域名訪問nextcloud了,注意:因為修改了配置文件,第一次使用域名登陸需要等待一段時間讓系統處理。
添加ssl
有了域名就忍不住上ssl,使用nextcloud內置的Let's Encrypt一鍵開啟ssl。一定要注意有/snap/bin/,很多人根本沒有嘗試就照抄別人的記錄,漏了這個導致系統一直提示找不到命令。
/snap/bin/nextcloud.enable-https lets-encrypt
復制代碼
開啟aria2服務
nextcloud已經搭建好了,但是還缺少一個離線下載功能。自帶的插件又太差,就直接上自建aria2服務。
apt install aria2
mkdir /etc/aria2
touch /etc/aria2/aria2.conf
touch /etc/aria2/aria2.session
touch /lib/systemd/system/aria2.service
復制代碼
需要填寫aria2.conf和aria2.service,因為內容太多,把它們放在了頁尾。把內容粘貼復制進去即可。然后啟動aria2服務。
聯立aria2和nextcloud
一個有趣的問題是nextcloud使用了mysql來記錄文件,所以如果我們直接使用aria2下載文件到對應的目錄里面,nextcloud本身是不會看到的。幸好,我們可以利用aria2的下載完成動作和nextcloud的文件掃描功能,讓aria2在下載完文件的時候告訴nextcloud掃描一下并把文件記錄到數據庫。
在/home/文件夾下,使用以下命令新建filesscan.sh文件并聯立:
touch /home/filesscan.sh
echo "nextcloud.occ files:scan --all" >> /home/filesscan.sh
復制代碼
到此,已經搭建完成,但是因為aria2有個可視化界面的話操作起來會更方便,所以推薦AriaNG,下載地址點擊這里。在AriaNG設置中選擇RPC,填寫Aria RPC地址(即你的域名),協議使用https,密鑰填寫aria2.conf的密碼,最后刷新頁面。
aria2.conf配置文件,注意把rpc-secret=passwd中的passwd修改一下,這個是使用AriaNG的密碼,沒有密碼就無法使用aria2下載。
文件保存相關
文件保存目錄
dir=/var/snap/nextcloud/common/nextcloud/data/imes/files/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=trunc
下載連接相關
最大同時下載任務數, 運行時可修改, 默認:5
max-concurrent-downloads=10
同一服務器連接數, 添加時可指定, 默認:1
官方的aria2最高設置為16, 如果需要設置任意數值請重新編譯aria2
max-connection-per-server=16
整體下載速度限制, 運行時可修改, 默認: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
建議同max-connection-per-server設置為相同值
split=16
進度保存相關
從會話文件中讀取下載任務
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=passwd
啟動SSL
rpc-secure=true
證書文件, 如果啟用SSL則需要配置證書文件, 例如用https連接aria2
rpc-certificate=/var/snap/nextcloud/current/certs/live/fullchain.pem
rpc-private-key=/var/snap/nextcloud/current/certs/live/privkey.pem
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
單個種子最大連接數, 默認:55 0表示不限制
bt-max-peers=0
最小做種時間, 單位:分
seed-time = 10
分離做種任務
bt-detach-seed-only=true
on-download-complete=/home/filesscan.sh
復制代碼
aria2.service配置文件如下,在填寫完后,運行systemctl enable aria2和systemctl start aria2以開啟服務。
[Unit]
Description=Aria2c download manager
Requires=network.target
After=dhcpcd.service
[Service]
Type=forking
User=root
RemainAfterExit=yes
ExecStart=/usr/bin/aria2c --conf-path=/etc/aria2/aria2.conf --daemon
ExecReload=/usr/bin/kill -HUP $MAINPID
RestartSec=1min
Restart=on-failure
[Install]
WantedBy=multi-user.target
復制代碼
555
罪孽成佛
最后的美洲豹
BamBam南希姐妹的故事
西班牙土地