要想事事顺心,唯有亲力亲为

手动配置Aria2离线下载网盘并自动上传 OneDrive

以下为图文教程

    准备环境
  • VPS主机(下载的话当然大盘鸡最好了,没有的可以看文末推荐的商家)
  • VPS内存 ≥512MB
  • 教程使用CentOS7系统演示
  • 一个 OneDrive 账号(OneDrive 5T账号的申请这里就不写了,网上一堆傻瓜教程)

这个手动配置教程比较长,这里有个更简短的一键脚本教程 https://www.twoha.tk/aria2/ 不过还是推荐手动配置,除了软件版本更新外,稳定性也更好。


SSH登录服务器开搞

小白要是连SSH是什么都不清楚,可以先看下这篇简易教程: https://www.twoha.tk/ssh-putty/

登录后先更新系统并安装宝塔面板, 宝塔配置更直观,适合新手。

yum -y update    #更新系统
yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh    #CentOS安装宝塔面板

宝塔安装过程中会有个确认选项,填y回车就好(就好比你PC上下了个软件,双击安装包安装时的确认选项一样。只不过linux里很多操作要用命令完成,不像图形界面鼠标移到选项上点点,像这种教程基本每步都有说明,就好比你第一次上网注册账号一样,顶多多花点时间操作 )。

安装完成看到如下界面,记好自己的宝塔账号密码,然后登录宝塔面板,登陆后进入软件管理,选择 Nginx安装。(宝塔随机生成的用户名和密码不容易记,你可以进面板设置自定义。)

Nginx安装需要一点时间,不用一直看着。先进到宝塔的安全菜单,放行一下68008080端口,6800是Aria2的默认端口,8080是后面要安装的FileBrowser默认端口。在安装Aria2前先放行了,不放行等下会连接不上。放行操作如下图,只演示了放行6800端口,记得放行8080端口。

放行完回到SSH安装Aria2


安装Aria2

Aria2 是一个多协议、多来源的命令行下载工具,支持磁力链接、BT 种子、HTTP、FTP 等下载协议,当然因为它是命令行运行,我们想下载还需要去敲命令麻烦且增加操作难度,所以后面还要安装 AriaNg 图形界面,可以直接浏览器打开网页进行操作,就跟你用百度网盘下载管理文件差不多。

使用逗比大佬的脚本安装Aria2 。

wget -N --no-check-certificate https://raw.githubusercontent.com/ToyoDAdoubi/doubi/master/aria2.sh && chmod +x aria2.sh && bash aria2.sh

运行脚本后会出现如下菜单,输入1 回车安装。

Aria2 一键安装管理脚本 [vx.x.x]
-- Toyo | doub.io/shell-jc4 --

 0. 升级脚本
————————————
 1. 安装 Aria2
 2. 更新 Aria2
 3. 卸载 Aria2
————————————
 4. 启动 Aria2
 5. 停止 Aria2
 6. 重启 Aria2
————————————
 7. 修改 配置文件
 8. 查看 配置信息
 9. 查看 日志信息
10. 配置 自动更新 BT-Tracker服务器
————————————

当前状态: 已安装 并 已启动

请输入数字 [0-10]:1

安装成功后会自动生成配置信息,但是默认配置的下载目录和RPC密码不容易记住,我们可以改成自己容易记住的,虽然也可以用./aria2.sh命令回到菜单修改,这里还是用宝塔来改好了)。进到宝塔文件菜单,首先建一个aria2的下载目录(也就是PC常说的文件夹)。我们先返回根目录,然后点击新建,下拉项选择新建目录,然后填入 /data/download点新建就好了。

再进入/root/.aria2这个目录,里面有个aria2.conf配置文件,点编辑打开文件,配置文件都有中文注释一看就知道什么意思,要改的下载目录就在第一项,改为前面建好的/data/download,然后往下拉在RPC相关设置里面找到RPC授权令牌这项,授权令牌相当于aria2的登录密码,改成你自己容易记的就行。
其它选项你也可以看看,根据自己需要修改,改好保存即可。

修改完配置文件使用下面重启命令重启Aria2使配置文件生效

以下是Aria2的一些日常管理命令
• 菜单:./aria2.sh
• 启动:/etc/init.d/aria2 start
• 停止:/etc/init.d/aria2 stop
• 重启:/etc/init.d/aria2 restart
• 查看状态:/etc/init.d/aria2 status
• 配置文件:/root/.aria2/aria2.conf (配置文件包含中文注释,但是一些系统可能不支持显示中文)
• 令牌密匙:随机生成(可以自己修改配置文件)

安装 AriaNg

还是用宝塔来安装 AriaNg,文件菜单进入/www/wwwroot目录,点击远程下载,在URL地址项填入下载地址https://github.com/mayswind/AriaNg-DailyBuild/archive/master.zip 然后点击确定开始下载。

文件很小很快就下完了,点下刷新按钮刷新当前文件夹,应该就能看到下好的压缩包了(如果没有应该就是前面Nginx还没安装完,任务还在排队),然后解压这个压缩包,解压出来后删除压缩包,再给解压出来的文件夹重命名为AriaNg,我喜欢简短一点方便查找,最后如下图。


创建站点

进入宝塔网站菜单,再点击添加站点,在域名项填入你的服务器IP,根目录项填入AriaNg的目录,也就是/www/wwwroot/AriaNg/, 其它不用改点击提交。你也可以点右边文件夹的图标进入AriaNg目录内选择。

这时用浏览器访问 IP 就能看到 AriaNg 界面了,刚进入会有个认证失败的弹窗,确定直接关掉,然后点击AriaNg设置RPC,填入前面设立的RPC 密钥, 最后点击重新加载页面,显示已连接就搞定了,到此已经可以下载了。


安装 FileBrowser 文件管理面板

回到SSH,照下面顺序安装配置

#安装 FileBrowser
curl -fsSL https://filebrowser.xyz/get.sh | bash
#创建FileBrowser数据库 -d 后面跟路径
#这里根据自己的需求改即可 我这里设置的地址是: /2ha/filebrowser.db
filebrowser -d /2ha/filebrowser.db config init
#更改监听地址为 0.0.0.0(监听所有网卡接口)
filebrowser -d /2ha/filebrowser.db config set --address 0.0.0.0
#更改监听端口,不改也可以,默认8080,如果想改,比如改成9999就如下面
filebrowser -d /2ha/filebrowser.db config set --port 9999
#调试模式启动 -d后面跟你刚刚建立的数据库路径
filebrowser -d /2ha/filebrowser.db

启动调试模式后,通过浏览器打开http://IP:端口 (改为你的ip和端口,默认端口是8080),出现以下界面表示 FileBrowser 安装成功,先别管能不能登录 。然后我们返回SSH中,继续下一步的操作。

使用Ctrl+C退出调试模式,接着要创建一个service来管理FileBrowser,将下面内容全部复制粘贴然后回车。

cat > /usr/lib/systemd/system/filebrowser.service <<EOF
[Unit]
Description=File Browser
After=network.target
[Service]
ExecStart=/usr/local/bin/filebrowser -d /2ha/filebrowser.db
[Install]
WantedBy=multi-user.target
EOF

重载使其生效。

systemctl daemon-reload

下面提供了 FileBrowser 的管理命令,这里使用新建管理账号命令新建一个管理账号,可以看到这个命令中有add admin admin这两个 admin 代表账号和密码,最好不要用默认的admin自己修改下。然后再使用运行命令,顺便也可以配置下开机启动,这时返回浏览器的 FileBrowser 界面中,使用你刚刚设置的账号密码登录即可。 其它几个选项给你参考,不需要全部使用。
FileBrowser管理命令

#创建一个新的管理账号:filebrowser -d /2ha/filebrowser.db users add admin admin --perm.admin
#运行:systemctl start filebrowser.service
#停止运行:systemctl stop filebrowser.service
#开机启动:systemctl enable filebrowser.service
#取消开机启动:systemctl disable filebrowser.service
#查看运行状态:systemctl status filebrowser.service

登录 FileBrowser 后默认是英文界面,而且是位于根目录范围,我们用 FileBrowser 的目的是管理Aria2下载文件,这样找起来麻烦,所以还要更改目录范围设置为Aria2的下载目录,修改中文和更改目录范围如下图。

改好返回我的文件,这里就对应下载目录了。


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

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

1、窗口(PC)端安装Rclone
登录Rclone网官下载Rclone的窗户端的客户。

下载窗口文件

下载解压将里面的rclone.exe移动到本地C:\Windows\System32下这个目录,其它的可以删掉没关系
win + R快捷键打开运行,输入cmd确定来打开CMD窗口,输入下面命令开始配置 。

rclone config

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

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> remote

回车后出现一长串网盘列表让你选,这里我们要绑定的是OneDrive, 其它网盘绑定教程我就不说了, 可以看到OneDrive是19,那就填入19回车,不同版本数字排序可能会变化,请自主确认,你也可以绑定列表中其它网盘。

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端操作,下面就回到SSH操作。

复制令牌

2 、VPS安装Rclone

curl https://rclone.org/install.sh | sudo bash  #安装Rclone
rclone config  #配置Rclone

上面输入完rclone config回车后的过程跟前面在PC端的配置步骤基本一样,这里就不复述了,到了Use auto config?问你是否使用自动配置这步不同,这里选n 回车,然后在出现的result>后面粘贴上前面获得的token然后回车,接着会有几个确认,按提示填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,再将这个配置文件放进这个目录即可,省去繁琐配置过程。

3、自动上传设置

回到宝塔面板,在/root目录下创建个rcloneupload.sh文件(不是文件夹),建好会自动打开编辑,将下面的内容全部复制进去。
注意里面的以下三行内容跟你自己的目录对上↓
downloadpath='/data/download'  #Aria2下载目录
name='remote'  #配置Rclone时的name
folder='/backup'  #OneDrive里的文件夹,如果是根目录直接留空
没问题就保存退出。

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

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

然后进入/root/.aria2目录,编辑aria2.conf配置文件,在末尾加上一行on-download-complete=/root/rcloneupload.sh,意思是下载完成执行我们刚创建的自动上传脚本,这个脚本具有变量千万不要手动执行。

很多人问为什么下载完成不会自动上传?
答:下载100%完成后文件还在做种,要进入 “已完成” 才会触发自动上传。BT本身就是大家互相分享资源的形式,从别人那里下了资源自己也要分享给后面的人,关于要分享多少给别人才进入已完成基于你设置的分享率,如下了1G文件然后分享出去1G这个分享率就为1,配置文件里可以设置,本着拿1还1是本分,拿1还2是美德,希望各位不要做吸血鬼。

回到SSH输入/etc/init.d/aria2 restart重启Aria2使配置文件生效,这样就大功告成了。

顺便整理了一些使用技巧和常见问题包括PT注意事项、做种期间手动上传等
传送门:https://www.twoha.tk/aria2-faq/

最后推荐下我现在在用的大硬盘VPS,512M内存挂载250G硬盘,每月20RMB都不到,就是经常缺货不容易买到。介绍文章: https://www.twoha.tk/buyvm-frantech/
更多大盘鸡选择: https://www.twoha.tk/storagevps/

42 条评论

要想事事顺心,唯有亲力亲为

近期文章

近期评论

文章归档

分类目录

功能