波斯码BOSSMA Information Technology

在树莓派3B+上搭建个人私有云存储

发布时间:2018年7月6日 / 分类:树莓派 / 763 次浏览 / 评论

甲:为什么要搭建个人私有云存储?百度云不是挺好吗?

乙:….


之前公司的网管在局域网内部搭建了一个私有云存储:seafile,当时用的不亦乐乎,将内部的各种资料都搬了上去,每个人还可以有自己的私有空间,对于不适合放到公网但需要内部共享的资料特别合适,而且seafile能够自动同步本地和云端的文件,免去了手动上传下载的麻烦。

网上已经有很多人介绍使用树莓派搭建私有云存储,为了练手我也来搭建一个,碰巧seafile还有专门的树莓派版本。

1、下载seafile

对于树莓派的最新版本可以从这里获取:

https://github.com/haiwen/seafile-rpi/releases

当前最新版本是6.2.5,在/home/pi下创建一个seafile目录,然后下载安装包并解压到当前目录。

2、安装seafile

安装seafile需要提前安装一些依赖库:

默认情况下paython 2.7 应该已经安装好了,这里谨慎些,所有依赖的都写上了。

然后开始执行seafile的安装程序:

seafile运行启动两个程序:seafile server和seahub,一个是存储服务器,一个是存储服务器的网站界面。

运行安装脚本将需要回答一些预设问题,我这里做些注释:

3、启动seafile

先启动seafile server:

然后启动seahub,这时候需要配置管理员账号和密码:

现在可以在在浏览器中访问了:

http://{IP}:8000

正常会出现这个界面:

然后用上边配置的管理员账号和密码登陆就可以了,默认会自动创建一个私人资料库,这里边浏览、上传、下载文件都应该没有问题。

作为一个功能比较完整的云存储方案,seafile还提供了桌面客户端和手机客户端,都可以免费用,简直方便的不行,现在就可以去试试了。不过这篇文章还没有结束。

4、配置Nginx

为什么要用Nginx?Nginx是一个Web服务器,SeaHub可以认为是一个应用服务器。使用Nginx可以做负载均衡、静态文件缓存、权限控制等,而SeaHub则专注于业务功能,分工不同。对于大型的系统,Nginx更是必须具备的。

先说Nginx的安装,执行命令安装已经打包的程序就行了。

默认情况下nginx会安装到/etc/nginx目录下,这里需要配置一个站点,做反向代理。

在/etc/nginx/sites-enabled目录下增加一个配置文件:seafile_site.conf(可以随便取名),nginx会自动加载这个目录下的文件:

因为都部署在一台服务器,所以这里反向代理的IP都是127.0.0.1,如果Nginx和seafile部署在不同的机器,这里需要替换成seafile服务器的IP。

然后启动nginx,如果已经启动则重新加载nginx配置:

nginx配置更新成功后,还需要访问seahub的原地址 http://{IP}:8000,修改两个URL参数,修改为Nginx代理站点的地址。

然后应该可以通过 http://{IP}:8800端口访问了,效果和访问http://{IP}:8000一样。

5、公网访问

只在局域网中访问没有太大意义,现在需要移动起来,这就需要公网访问。

(1)有公网IP

如果有固定的公网IP,直接域名解析,然后路由器上做个端口转发就可以了,但是个人用户一般是没有固定的公网IP的,甚至连公网IP都没有。

我这里用的联通宽带,是有外网IP的,但是运营商会随机分配,经常改变,所以这里通过动态DNS来访问。

注册 https://www.noip.com 获取一个免费域名和动态DNS支持。

然后安装noip duc:

make install时会询问一些配置:

然后运行no-ip客户端:

查看no-ip状态:

然后还需要在路由器上做DNAT,这里使用9977(常用如80端口一般会被封掉,尽量使用一个不常用的端口),将9977端口转发到nginx所在服务器的8800端口。

端口转发功能,不同的路由器配置界面不同,找端口转发(自己买的路由器一般是这个)或者虚拟主机配置(联通送的路由器是这个名字)。

然后还需要再次更改步骤4中的SERVICE_URL和FILE_Server_ROOT,更改IP地址为通过noip获取到的域名。

现在试试用noip分配的免费域名访问吧。

不要高兴的太早,如果你在局域网中,可能这时候还是不通的,因为局域网内默认对当前外网IP端口的访问不会再转发给内网的机器,访问最终停在了路由器上。这时候可以试试在外网的机器通过域名访问,如果可以那么说明配置没有问题了。

(图中是测试用的域名和端口,访问时需要换成自己的)

如果需要在内网通过域名或外网IP进行访问,需要在路由器中增加SNAT的配置,将对外网IP的访问转发到对应的内网机器IP,这里就是Nginx的IP。但是一般家用路由器并不支持。还有一个办法就是修改本机的hosts文件,将对noip域名的访问映射到Nginx的IP地址。

(2)没公网IP

现在IPv4资源比较紧张,运营商又发展了很多用户,所以很多运营商都不分配公网IP给个人用户,这时候就要通过别的方式解决了,网上的方案大多是通过某个服务器建立到你机器的隧道,然后为这个隧道分配个域名,通过这个域名访问你的机器。

比较知名的服务商有ngrokc,不过是国外的,可能慢一些,国内有个natapp也提供了类似服务。这里就以natapp为例。这里为了测试注册一个免费的隧道:

然后安装natapp的客户端,官网也提供了树莓派的安装包:https://natapp.cn/#download

下载后上传到树莓派,我这里上传到/home/pi/natapp了,然后设置下文件执行权限:

现在使用natapp网站注册的隧道token进行启动:

启动成功后可以看到分配的随机免费域名:

然后还需要再次更改步骤4中的SERVICE_URL和FILE_Server_ROOT,更改IP地址为这个域名。

然后就可以使用这个域名进行连接了。

6、演示截图

最后来几张seafile不同客户端的演示截图:

(1)Windows 本地文件夹:这个文件夹会自动双向同步云存储中的内容。

 

(2)Windows 桌面客户端:这个客户端可以管理文件,以及进行一些设置。

(3)手机APP:可以管理文件、自动上传照片等。

 

坑比较多,最后祝大家安装顺利。

本博客所有文章如无特别注明均为原创。
复制或转载请以超链接形式注明转自波斯码,原文地址《在树莓派3B+上搭建个人私有云存储

0

关键字:

建议订阅本站,及时阅读最新文章!
【上一篇】 【下一篇】

发表评论