今年年内国内很多网盘陆续关闭,而百度云盘限速+内容审核,115续费偏贵,个人用的网盘基本没有多少可以安心使用的了。国外的网盘不是被墙就是速度不佳,还有容量也偏小,即使是微软的OneDrive只有通过购买订阅Office365的情况下才能获得1TB空间。反正都会跑路弃坑,不如自己建立一个网盘系统安心点。

因为自己技术有限还有考虑到实现难度,博主选择了Aria2+KodExplorer(芒果云)来实现自建网盘。

一、网盘程序

先是对比一下我们所能接触到最可靠的网盘系统。

1.Owncloud

Owncloud是国外开发的,版本更新很久了,功能也很全面,适合建立私有云和公有云系统,而且有完善的生态环境,例如手机APP、电脑客户端等,但是个人感觉安装略微蛋疼。首先是PHP版本要求必须5.4以上,当然这个好说,最蛋疼的是博主在安装的时候,提示服务器错误,然后并没有提供原因和帮助,就是错误了,什么鬼啊。弃了,虽然博主以前用过一段时间确实好用,可以在本地电脑设置一个文件夹实时同步文件,保证文件不丢失。但是考虑到这个莫名其妙的错误,还有同服务器上还有其他网站的原因就放弃了这个客户端。另外,Owncloud提供的Nginx伪静态文档不太全面,按官方文档设置还是有伪静态问题,对于博主这个小白不懂伪静态的语法。

如果搭建私有云个人还是非常推荐Owncloud的,开发和生态环境非常完善。

2.Seafile

Seafile没有实际体验过,但是提供的环境也不少,Windows和Linux,还有树莓派版本,版本也一直在更新,社区支持也完善,但是部署对于小白比较繁杂。因为为了实现网盘的功能,例如文档阅览,音乐播放需要安装繁多的Linux组件,有些组件安装了但是安装程序还是提示没有安装,可能是我打开的方式不对吧。。。

3.迷你云

迷你云是基于NodeJS开发的,Windows和Linux服务端都有提供,部署官方有完整的教程,还算顺利。不过搭建完了我以为是在我的服务器上操作,后来发现需要到官方网站上注册登录帐号,再绑定服务器IP。这样导致管理繁琐,还有官网跑了怎么办。。。

4.芒果云KodExplorer

芒果云其实就是一个前几年玩的一个概念,云系统,可以安装网页APP,给出一个类似本地电脑的桌面环境,但是重点不在这,我们最多关注的是文件管理。自适应,和本地电脑几乎一致的体验,无数据库,开源免费,这几乎满足了一个个人云盘的条件。

下面带来使用芒果云的体验。

安装

无数据库和安装向导的繁琐,直接扔到服务器目录就行,推荐LAMP、Kangle环境使用,Nginx没有使用过,但是个人没有看到Nginx伪静态的文档,可能会有问题。

使用

默认会有三个账户,管理员、注册用户和游客,也可以分别设置不同的文件夹给这三类用户。

 

 

使用体验和本地电脑一致,删除新建都有。

 

 

文件的预览,目前视频和音乐无法播放,可能是服务器缺少组件也可能是程序包含的组件太老,导致浏览器不支持导致的,博主还在寻找解决方法。文档支持Office文档的预览,但是不能编辑,稍有遗憾。

 

程序的其他功能,更换主题、更换壁纸等。还有一些网络桌面APP使用,APP实测都是正常使用的。

额外文档:http://www.zrj766.me/index.php/linuxserver/kodAria2c.html  Aria2和芒果云整合管理。

二、Aria2和服务器选择

1.服务器选择

服务器方面按照对国内的网络还有价格、性价比谈一些自己的看法和经验。

服务器如果综合考虑肯定是国外的为上。为什么不选择国内服务器?国内服务器价格高昂,带宽成本高,即使是建立自己网站的小型虚拟服务器,一个月也要68元左右,而且带宽小,性能一般,磁盘也小。当然如果你只是存放一些文档音乐,还是可以的。

国外考虑美国和欧洲多一些,亚洲其他国家的服务器带宽成本也很高,而且对国内友好的线路并不多。美国西海岸和欧洲国家一般对国内来说还算不错,加上带宽普通大,硬件也给的足。

博主因为是电信网络,选择了法国的独立服务器,Atom C2750 8核+8G内存+1TB HDD硬盘,1G端口无限流量,当然还有配置偏低一点的,价格更低的独立服务器,法国等欧洲地区的服务器一般都很便宜。如果想要速度好一些,可以加一些钱购买美国西海岸的,速度也不错。如果是联通则考虑加拿大和美国西海岸。

还有一种成本偏低的VPS虚拟服务器,选择一些大硬盘的VPS价格很低,例如有一款1G内存+512G硬盘的VPS,在美国达拉斯,月付3美元。不过选择独立服务器的考虑是:1.资源独享,不用因为邻居和主机商超售导致硬件缩水。2.流量带宽限制,VPS一般都会限制带宽和流量,独立服务器一般没有限制,即使有限制大多数给的流量非常充足。

如图,安装了锐速加速后法国的服务器下载可以满速,没有使用高速通道和离线下载加速。当然国内网络环境非常复杂,选择一款合适的服务器需要观察和测试很多才能找到一款合适自己的。

2.Aria2

Aria2作为一款Linux下的下载神器,很多极客都在使用,可以下载http资源、种子文件、磁力链接等,功能强大,而且整合Chrome插件可以摆脱百度云盘的速度限制。

高速,自动多线程下载;
断点续传;
轻量占用内存非常少,通常情况平均4~9MB内存占用(官方介绍);
多平台。支援 Win/Linux/OSX/Android 等操作系统下的部署;
模块化。分段下载引擎,文件整合速度快;
支持RPC界面远程;
全面支持BitTorrent协议;

Aria2官方项目页面:https://aria2.github.io/

下面介绍Aria2在CentOS6.X的搭建方法:  转载自:http://chuansong.me/n/341279751838

1.搭建Aria2。

(1)RPM安装(推荐)

安装rpmforge源

wget http://mirror.bjtu.edu.cn/repoforge/redhat/el6/en/x86_64/rpmforge/RPMS/rpmforge-release-0.5.3-1.el6.rf.x86_64.rpm

rpm -ivh rpmforge-release-0.5.3-1.el6.rf.x86_64.rpm

安装Aria2

yum -y install aria2

 (2)编译安装

Aria2 1.17.1以上版本要求gcc >= 4.8.3 or clang >= 3.4

安装clang

yum -y install clang

安装GCC

通过SCL安装GCC

CentOS 6

wget https://copr.fedoraproject.org/coprs/rhscl/devtoolset-3/repo/epel-6/rhscl-devtoolset-3-epel-6.repo   -O /etc/yum.repos.d/rhscl-devtoolset-3-epel-6.repo

yum install devtoolset-3-gcc devtoolset-3-gcc-c++ devtoolset-3-binutils devtoolset-3-gcc-gfortran 
scl enable devtoolset-3 bash   #启用SCL环境中新版本GCC 
gcc --version

编译Aria2

wget https://github.com/aria2/aria2/releases/download/release-1.22.0/aria2-1.22.0.tar.gz

tar xzvf aria2-1.22.0.tar.gz
cd aria2-1.22.0
./configure
make
make install
man aria2c // 查看aria2c manual

配置Aria2

创建配置文件 参考文档:http://aria2c.com/usage.html

mkdir /etc/aria2/
vim /etc/aria2/aria2.conf
直接进行下一步,不要填写,博主会提供一个配置文件下载 
:wq!  //保存

下载博主配置好的conf文件:http://dl.zrj766.com/zrj96/aria2.conf

再使用SFTP客户端连接服务器,传到/etc/aria2 文件夹下替换即可。

Aria2的使用

配置完成后,就可以开始使用了。

Aria2有两种模式

命令直接调用

直接在命令行下载

aria2c "download.url"

下载完成后自动退出,就和wget 的工作方式一样。

Aria2命令行使用

使用Aria2下载文件,只需在命令后附加地址即可。如:

aria2c http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.22.6.tar.bz2

分段下载

利用Aria2的分段下载功能可以加快文件的下载速度,对于下载大文件时特别有用。为了使用aria2的分段下载功能,你需要在命令中指定 -s 选项。如:

aria2c -s 2 http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.22.6.tar.bz2

这将使用2连接来下载该文件。-s后面的参数值介于1~5之间,你可以根据实际情况选择。

断点续传

在命令中使用-c选项可以断点续传文件。如:

aria2c -c http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.22.6.tar.bz2

下载torrent文件

你也可以使用Aria2下载BitTorrent文件。如:

aria2c -o gutsy.torrent http://cdimage.ubuntu.com/daily-live/current/gutsy-desktop-i386.iso.torrent

后台下载

aria2c -D url

aria2c –deamon=true url

验证文件

aria2c –checksum=md5=别人提供的md5

BT下载

aria2c /tmp/CentOS-6.3-i386-bin-DVD1to2.torrent

aria2c http://mirrors.163.com/centos/6.6/isos/x86_64/CentOS-6.6-x86_64-minimal.torrent

列出种子内容

aria2c -S .torrent

下载种子内特定编号的文件

aria2c –select-file=1,4-7 .torrent  此处下载编号为1,4,5,6,7的文件

设置bt端口

aria2c –listen-port=1234 .torrent

设置dht端口

aria2c –dht-listen-port=1234 .torrent

下载需要引用页的文件

aria2c –referer=referurl url

限速下载

aria2c –max-download-limit=500k url //单个文件

aria2c –max-overall-download-limit=500k url //全局

下载需要Cookie验证的文件

aria2c –essay-header=’Cookie:cookie名称=cookie内容’ url

aria2c –load-cookies=cookie文件 url

Metalink

aria2c http://example.org/mylinux.metalink

批量下载文本中所有URL

aria2c -i uris.txt

注意:当源地址存在诸如&,*等shell的特殊字符,请使用单引号或双引号把URI包含起来。

BT Tracker

BT种子下载倒是没什么问题,但是博主下载磁力链发现没速度,可能需要加入tracker参数才行,例如下载字幕组的美剧磁力是带有tracker参数的,但是下载没有参数的就没动静,在这篇文章中可以看到最新的BT Tracker参数:https://www.zrj96.com/post-387.html

RPC Server模式(推荐)

Aria2作为后台常驻程序,监测rpc端口的活动情况,添加并下载文件。完成后继续在后台运行。

涉及到命令输入,力求简化,第二种模式明显更省事。

启动Aria2 RPC模式

命令行启动

aria2c --enable-rpc --rpc-listen-all --rpc-allow-origin-all -c  --dir /root/downloads -D (-D daemon模式,用于后台执行)

配置文件启动(推荐)

aria2c --conf-path=

是指配置文件所在的绝对路径。默认位置是:$HOME/.aria2/aria2.conf

依照上述配置一路下来,具体是

aria2c --conf-path="/etc/aria2.conf" -D  #(-D daemon模式,用于后台执行)

这时正确无误的话,Aria2就启动了。

启动脚本

为方便管理,创建一个管理脚本。

vi /etc/init.d/aria2

脚本下载:https://00img.top/data/2016102116153296148938.txt

添加可执行权限

chmod +x /etc/init.d/aria2

启动Aria2

/etc/init.d/aria2 start

 

命令行的模式无疑使用有些麻烦,而且SSH客户端不可能我们一直连接着,我们需要一个WebUI管理监测。

推荐两个:Aria2 Web UI或者YAAW。

Web UI是MD界面的,界面好看,但是因为未知原因博主未能成功使用,所以转而使用YAAW,YAAW相对更简单,基本功能都有,例如添加任务、设置下载目录、设置下载客户端UA、删除、暂停等。

webui-aria2

git clone https://github.com/ziahamza/webui-aria2
python -m SimpleHTTPServer 9999

访问这台机器的9999端口就可以了,这里为了方便用python做为WEB服务器,其它任意一种WEB服务器都是可以的。

如果你不想搭建可使用http://ziahamza.github.io/webui-aria2/,配置数据是存在本地浏览器的,不需要注册。

注意:需要根据情况设置一下Aria2 RPC的地址,一般为Aria2后台进程运行的ip:port,例如192.168.119.100:6800。

YAAW

git clone https://github.com/binux/yaaw
python -m SimpleHTTPServer 9999 #也可以使用Apache

访问这台机器的9999端口就可以了,这里为了方便用python做为WEB服务器,其它任意一种WEB服务器都是可以的。

YAAW也有线版本

http://aria2c.com/
http://binux.github.io/yaaw/demo/

注意:需要根据情况设置一下Aria2 RPC的地址,一般为Aria2后台进程运行的ip:port,例如192.168.119.100:6800。

其他版本:方便我们使用Aria2

Windows下图形版本

Aria2c Remote Control

http://sourceforge.net/projects/aria2cremote/

给jsonrpc加上验证

使用token验证(建议使用)

需要1.18.4以上版本,帐号密码方式将在后续版本中停用!

配置文件

# token验证
rpc-secret=secret

命令行

使用--rpc-secret=xxxxxx选项

启用验证后,使用http://token:secret@hostname:port/jsonrpc的地址格式设置secret。

使用密码验证

需要1.15.2以上,1.18.6以下版本
1.18.4新增了--rpc-secret ,设置的RPC授权令牌, 取代--rpc-user--rpc-passwd选项

配置文件

#用户名
rpc-user=username
#密码
rpc-passwd=passwd

命令行

使用 --rpc-user=user --rpc-passwd=pwd 选项

启用验证后,使用http://username:passwd@hostname:port/jsonrpc的地址格式设置密码。

对于RPC模式来说, 界面和后端是分离的, 只要给后端设置密码即可. 前端认证什么的是毫无意义的。

其它相关

YAAW搭配脚本

迅雷离线(需会员账号)

Chrome Extension: ThunderLixianAssistant
UserScript: ThunderLixianExporter

旋风离线

UserScript: XuanFengEx
UserScript: LixianExporter

百度网盘

Chrome Extension: BaiduExporter
Firefox Addons: BaiduExporter
UserScript: BaiduPanDownloadHelper

115网盘

Chrome Extension: 115exporter

其他脚本

Chrome Extension

添加到aria2
Chrome Download Helper

 

至此个人云存储的搭建方案基本完成,如果有更好的方法或者程序博主还会继续分享出来!