前言

等了好久,终于在今天早上买到了buyvm家的2刀的配置,再配合他们家的1.25刀256G的储存块,用来离线下载简直不要太爽

1、Buyvm家所有的KVM VPS均免费提供Directadmin面板,有需要的可以联系客服。
2、如果没有中途退款的需求,强烈推荐使用支付宝付款,支付宝付款有神秘加成,默认加元汇率,使用Paypal等付款是美元
3、储存块只能在拉斯维加斯这个数据中心才有

添加储存块到vps

1、在Buyvm官网购买一台Las Vegas机房的KVM VPS,如果仅用于存储,买最低配的512M内存就行了;同时按需购买Block Storage空间。

2、进入Storage Volumes后台,将[Block Storage]附加到(Attached To) 对应的VPS

3、查看数据块编号(开通邮件里也有)

ls /dev/disk/by-id/

4、假设看到的结果是scsi-0BUYVM_SLAB_VOLUME-2181,那么2181就是数据块的id,或者后台也能直接看到。

5、格式化

mkfs.ext4 -F /dev/disk/by-id/scsi-0BUYVM_SLAB_VOLUME-2181

6、创建文件夹

mkdir /data

7、挂载

mount -o discard,defaults /dev/disk/by-id/scsi-0BUYVM_SLAB_VOLUME-2181 /data

8、设置开机/重启自动挂载

echo '/dev/disk/by-id/scsi-0BUYVM_SLAB_VOLUME-2181 /data ext4 defaults,nofail,discard 0 0' | sudo tee -a /etc/fstab

添加IPV6

Ubuntu老版本
vim /etc/network/interfaces

在最后加入以下配置

iface eth0 inet6 static
        address 2605:6400:0020:05a8:0000:0000:0000:0006
        netmask 48
        gateway 2605:6400:20::1
Ubuntu18以上
vim /etc/netplan/01-netcfg.yaml

原本默认为如下内容

# This file describes the network interfaces available on your system
# For more information, see netplan(5).
network:
  version: 2
  renderer: networkd
  ethernets:
    eth0:
      dhcp4: yes

需要添加后面的三排,addresses为buyvm后台申请的ipv6地址,注意格式为: ['ipv6/48'],gateway6为ipv6的网关

# This file describes the network interfaces available on your system
# For more information, see netplan(5).
network:
  version: 2
  renderer: networkd
  ethernets:
    eth0:
      dhcp4: yes
      dhcp6: no
      addresses: ['2605:6400:20:5a8::6/48']
      gateway6: 2605:6400:20::1

安装ccaa

CCAA原为CentOS + Caddy + AriaNg + Aria2,故命名为CCAA,不过现在已经不仅仅支持CentOS,包括主流的Debian、Ubuntu也已经支持,自2.0(2020/02/28)版本开始已移除Caddy,改用Golang写了一个简单的WebServer来运行AriaNg。

Aria2 提供离线下载
ccaa_web支撑AriaNg运行,使用Golang编写
AriaNg为Aria2 提供WEB界面
Filemanager提供文件管理

一键脚本

目前支持的操作系统为:CentOS 7-8、Debian 8-10、Ubuntu 16-18,操作系统要求64位。请根据自己的VPS位置复制下面的命令:

#海外
bash <(curl -Lsk https://raw.githubusercontent.com/helloxz/ccaa/master/ccaa.sh)
#国内
bash <(curl -Lsk https://raw.githubusercontent.com/helloxz/ccaa/master/ccaa.sh) cdn

如果出现-bash: curl: command not found错误,说明curl命令没安装,请输入下面的命令先安装curl,再回过头来执行上面的命令。

#Debian or Ubuntu
apt-get -y install curl
#CentOS
yum -y install curl
  • 访问地址默认为http://IP:6080
  • Aria2 RPC 密钥:您自行设置的
  • File Browser 用户名:默认为ccaa
  • File Browser 密码:默认为admin

输入http://IP:6080访问AriaNg ,首次打开会提示“认证失败”,这个是正常现象。依次点击“AriaNg设置 - RPC - 填写您之前设置的RPC密钥”

如果服务器有启用安全组,请务必在安全组放行以下端口:6080/6081/6800/6998/51413

常用命令

安装成功后,您可以使用如下命令来管理CCAA:

#进入CCAA管理界面
ccaa
#查看ccaa状态
ccaa status
#启动ccaa
ccaa start
#停止ccaa
ccaa stop
#重启ccaa
ccaa restart
#查看当前版本
ccaa -v

使用HTTPS

宝塔添加AriaNg站点

AriaNg页面的源文件在/etc/ccaa,新建如下站点,配置好ssl

aria2反向代理

同样的,新建一个站点配置好ssl

在配置文件中最后一个}前添加如下配置

location ^~ /jsonrpc {
    proxy_http_version 1.1;
    add_header Front-End-Https on;
    proxy_set_header Connection "";
    proxy_set_header Host $http_host;
    proxy_set_header X-NginX-Proxy true;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_pass http://127.0.0.1:6800/jsonrpc;
    proxy_pass_header X-Transmission-Session-Id;
}

最后在AriaNg中修改RPC端口为443

挂载OneDrive网盘并实现Aria2下载结束自动上传文件

以下方法是使用Rclone默认的API,当然也可以自建API 可参考: {% post_link Rclone挂载OneDrive方法-自建API Rclone挂载OneDrive方法-自建API %}

以下分为三小步这里做个简介:第一步是PC端获取网盘授权的令牌;第二步是在VPS里绑定获得的授权;第三步才是真正挂载到网盘上。因为OneDrive的授权需要在浏览器打开,而VPS没有图形界面,只能先在PC端获取授权,所以第一步和第二步有点重复。

除了挂载OneDrive网盘之外,还支持 Google Drive、Mege、Yandex等几十个国外网盘,其它网盘挂载教程这里我就不说了,善用搜索引擎。

windows(PC)端安装Rclone

登录Rclone网官下载Rclone的窗户端的客户(windows AMD64 - 64 Bit)。
下载解压将里面的rclone.exe移动到你电脑C:\Windows\System32这个目录,其它的可以删掉没关系。
win + R快捷键打开运行,输入cmd点确定来打开CMD窗口。

输入下面命令开始配置

rclone config

然后出现如下界面,按提示输入n回车创建个新的远程,然后提示输入name,名称随意但要记住,这里我填onedrive

Current remotes:

Name                 Type
====                 ====
onedrive             onedrive

e) Edit existing remote
n) New remote
d) Delete remote
r) Rename remote
c) Copy remote
s) Set configuration password
q) Quit config
e/n/d/r/c/s/q> n   
name> onedrive

回车后出现一长串网盘列表让你选,这里OneDrive是19,填入19回车,不要死记数字,不同版本数字选项会变化,Yandex这里是26,根据你需要选择,后续操作都差不多

Current remotes:

Name                 Type
====                 ====
onedrive             onedrive

e) Edit existing remote
n) New remote
d) Delete remote
r) Rename remote
c) Copy remote
s) Set configuration password
q) Quit config
e/n/d/r/c/s/q> n
name> onedrive
Type of storage to configure.
Enter a string value. Press Enter for the default ("").
Choose a number from below, or type in your own value
 1 / A stackable unification remote, which can appear to merge the contents of several remotes
   \ "union"
 2 / Alias for a existing remote
   \ "alias"
 3 / Amazon Drive
   \ "amazon cloud drive"
 4 / Amazon S3 Compliant Storage Provider (AWS, Alibaba, Ceph, Digital Ocean, Dreamhost, IBM COS, Minio, etc)
   \ "s3"
 5 / Backblaze B2
   \ "b2"
 6 / Box
   \ "box"
 7 / Cache a remote
   \ "cache"
 8 / Dropbox
   \ "dropbox"
 9 / Encrypt/Decrypt a remote
   \ "crypt"
10 / FTP Connection
   \ "ftp"
11 / Google Cloud Storage (this is not Google Drive)
   \ "google cloud storage"
12 / Google Drive
   \ "drive"
13 / Hubic
   \ "hubic"
14 / JottaCloud
   \ "jottacloud"
15 / Koofr
   \ "koofr"
16 / Local Disk
   \ "local"
17 / Mega
   \ "mega"
18 / Microsoft Azure Blob Storage
   \ "azureblob"
19 / Microsoft OneDrive
   \ "onedrive"
20 / OpenDrive
   \ "opendrive"
21 / Openstack Swift (Rackspace Cloud Files, Memset Memstore, OVH)
   \ "swift"
22 / Pcloud
   \ "pcloud"
23 / QingCloud Object Storage
   \ "qingstor"
24 / SSH/SFTP Connection
   \ "sftp"
25 / Webdav
   \ "webdav"
26 / Yandex Disk
   \ "yandex"
27 / http Connection
   \ "http"
Storage> 19

接着client_idclient_secret 直接不填回车;
Edit advanced config? 输入n回车;
Already have a token - refresh? 输入y回车,后面VPS里配置时没有这个提示的,会出现下个自动配置选项,别手快直接y;
Use auto config? 这里输入y回车,后面VPS配置时这步要选n
具体操作如下,不同版本可能会有变化,反正就是做选择题,看不懂复制出来可以翻译

Microsoft App Client Id
Leave blank normally.
Enter a string value. Press Enter for the default ("").
client_id>
Microsoft App Client Secret
Leave blank normally.
Enter a string value. Press Enter for the default ("").
client_secret>
Edit advanced config? (y/n) 
y) Yes
n) No
y/n> n
Remote config 
Already have a token - refresh?  
y) Yes
n) No
y/n> y
Use auto config?  
 * Say Y if not sure
 * Say N if you are working on a remote or headless machine
y) Yes
n) No
y/n> y

接着浏览器会自动弹出窗口,然后登录你要挂载的OneDrive账号,征求许可接受就行了,出现下图界面即授权成功。

授权成功后返回cmd窗口出现以下界面,这里选1回车。

Choose a number from below, or type in an existing value
 1 / OneDrive Personal or Business  #个人和商用
   \ "onedrive"
 2 / Root Sharepoint site
   \ "sharepoint"
 3 / Type in driveID
   \ "driveid"
 4 / Type in SiteID
   \ "siteid"
 5 / Search a Sharepoint site
   \ "search"
Your choice>1

提示找到一个驱动器,让你选择,这里就一个选项0,那就填0回车,然后问你是否确定,选y回车。

Found 1 drives, please select the one you want to use:
0: OneDrive (business) id=huioaeuiaeagioioieuiaaefe@#%gaege94#
Chose drive to use:>0
Found drive 'root' of type 'business', URL:https://jxjjxy-my.sharepoint.com/personal/meeaghvp_t_odmail_cn/Documents
Is that okay?
y) Yes
n) No
y/n> y

接着会出现一串长令牌,PC端的操作全是为了这个令牌,将下图红框内的整个复制,复制范围{"access_token":…………………………2019-04-21T16:41:25.1595637+08:00"}保存好,以后就可以省了这步PC端操作,下面就回到VPS操作

VPS安装Rclone

cd ~  #返回宿主目录
curl https://rclone.org/install.sh | sudo bash  #安装Rclone
rclone config  #配置Rclone

上面输入完rclone config回车后的过程跟前面在PC端的配置步骤基本一样,这里就不复述了,到了Use auto config? 问你是否使用自动配置这步不同,这里选n回车,然后在出现的result>后面粘贴上你前面获得的token然后回车,接着会有几个确认(问你是否OK),按提示填 y 就行,
直到又回到下图配置开头界面,输入q回车退出配置即可,到此我们完成了网盘的授权。

Name                 Type
====                 ====
onedrive             onedrive

e) Edit existing remote
n) New remote
d) Delete remote
r) Rename remote
c) Copy remote
s) Set configuration password
q) Quit config
e/n/d/r/c/s/q> q

以上两步就是为了得到token,并在VPS里创建一个rclone.conf配置文件,该配置文件目录在/root/.config/rclone/rclone.conf,可以将这个文件下载到本地,以后如果重装只需VPS上安装好rclone,然后将这个配置文件放进这个目录即可,免去繁琐配置过程。

自动上传设置

yum -y install vim*  #先安装下vim,也可以不安装用vi命令
vim /root/rcloneupload.sh  #创建并打开名为 rcloneupload.sh 的脚本,用来处理自动上载

不会用vi命令可以网上先了解下。
这里复制以下全部内容粘贴进去,确保里面以下三项的路径跟你前面设置的一致,最后检查下有没有复制漏了的部分,我这边复制总是缺失头部两行的内容。
以下三行内容跟你设置的目录对上↓
downloadpath='/data/ccaaDown' #Aria2下载目录
name='onedrive' #配置Rclone时的name
folder='/offline' #网盘里的文件夹,如果是根目录直接留空
没问题就保存退出。

#!/bin/bash
filepath=$3     #取文件原始路径,如果是单文件则为/Download/a.mp4,如果是文件夹则该值为文件夹内第一个文件比如/Download/a/1.mp4
path=${3%/*}     #取文件根路径,如把/Download/a/1.mp4变成/Download/a
downloadpath='/data/ccaaDown'    #Aria2下载目录
name='onedrive' #配置Rclone时的name
folder='/offline'     #网盘里的文件夹,如果是根目录直接留空
MinSize='10k'     #限制最低上传大小,默认10k,BT下载时可防止上传其他无用文件。会删除文件,谨慎设置。
MaxSize='15G'     #限制最高文件大小,默认15G,OneDrive上传限制。

if [ $2 -eq 0 ]; then exit 0; fi

while true; do
if [ "$path" = "$downloadpath" ] && [ $2 -eq 1 ]    #如果下载的是单个文件
    then
    rclone move -v "$filepath" ${name}:${folder} --tpslimit 1 --buffer-size=10M --min-size $MinSize --max-size $MaxSize
    rm -vf "$filepath".aria2    #删除残留的.aria.2文件
    exit 0
elif [ "$path" != "$downloadpath" ]    #如果下载的是文件夹
    then
    while [[ "`ls -A "$path/"`" != "" ]]; do
    rclone move -v "$path" ${name}:/${folder}/"${path##*/}" --tpslimit 1 --buffer-size=10M --min-size $MinSize --max-size $MaxSize --delete-empty-src-dirs
    rclone delete -v "$path" --max-size $MinSize    #删除多余的文件
    rclone rmdirs -v "$downloadpath" --leave-root    #删除空目录,--delete-empty-src-dirs 参数已实现,加上无所谓。
    done
    rm -vf "$path".aria2    #删除残留的.aria2文件
    exit 0
fi
done

保存后给予执行权限

chmod +x /root/rcloneupload.sh

然后编辑Aria2配置文件,在末尾加上一行on-download-complete=/root/rcloneupload.sh即可,后面为脚本的路径,意思是下载完成执行这个脚本,这个脚本具有变量千万不要手动执行。重启CCAA使Aria2配置文件生效。

vim /etc/ccaa/aria2.conf  #编辑aria2.conf
on-download-complete=/root/rcloneupload.sh  #末尾另起一行加上
ccaa restart  #重启ccaa

大功告成赶紧去下载看看吧。

最后修改:2022 年 12 月 20 日
如果觉得我的文章对你有用,请随意赞赏