前言

等了好久,终于在今天早上买到了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、查看数据块编号(开通邮件里也有)

1
ls /dev/disk/by-id/

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

5、格式化

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

6、创建文件夹

1
mkdir /data

7、挂载

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

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

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

添加IPV6

1
vim /etc/network/interfaces

在最后加入以下配置

1
2
3
4
iface eth0 inet6 static
address 2605:6400:0020:05a8:0000:0000:0000:0006
netmask 48
gateway 2605:6400:20::1

安装ccaa

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

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

一键脚本

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

1
2
3
4
#海外
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,再回过头来执行上面的命令。

1
2
3
4
#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:

1
2
3
4
5
6
7
8
9
10
11
12
#进入CCAA管理界面
ccaa
#查看ccaa状态
ccaa status
#启动ccaa
ccaa start
#停止ccaa
ccaa stop
#重启ccaa
ccaa restart
#查看当前版本
ccaa -v

使用HTTPS

宝塔添加AriaNg站点

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

aria2反向代理

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

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

1
2
3
4
5
6
7
8
9
10
11
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 可参考: Rclone挂载OneDrive方法-自建API

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

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

windows(PC)端安装Rclone

更简单的方法可参见:Rclone挂载OneDrive方法-自建API

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

输入下面命令开始配置

1
rclone config

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
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,根据你需要选择,后续操作都差不多

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
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
具体操作如下,不同版本可能会有变化,反正就是做选择题,看不懂复制出来可以翻译

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
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回车。

1
2
3
4
5
6
7
8
9
10
11
12
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回车。

1
2
3
4
5
6
7
8
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

1
2
3
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回车退出配置即可,到此我们完成了网盘的授权。

1
2
3
4
5
6
7
8
9
10
11
12
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,然后将这个配置文件放进这个目录即可,免去繁琐配置过程。

自动上传设置

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

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#!/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

保存后给予执行权限

1
chmod +x /root/rcloneupload.sh

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

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

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