Loading... # 前言 等了好久,终于在今天早上买到了[buyvm](https://my.frantech.ca/aff.php?aff=3567)家的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](https://manage.buyvm.net/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](https://github.com/helloxz/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](https://rclone.org/downloads/)网官下载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_id`和`client_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 日 © 允许规范转载 打赏 赞赏作者 支付宝微信 赞 0 如果觉得我的文章对你有用,请随意赞赏