自己架个私有云

前几天同事向我炫耀,在闲鱼上花60块钱买了个四盘位NAS机箱,又买了块工控小主板,自己搭了个黑群晖,乐不思蜀。群晖的机架质高价更高,因此黑群晖一直是广大图吧垃圾佬的首选。看着同事手机里群晖的各种App可以远程获取家里黑群晖的数据,心里还是有点痒痒。不过家里的Ubuntu服务器由于搭好了各种服务(AriaNg的GUI远程下载,ngrok的内网穿透,homebridge的智能家居等等),群晖的DSM系统能否完美支持尚且未知,即使是原样重新搭一遍也是颇为踌躇。思来想去,算了,还是接着用我的硬核办法:SSH搞定一切应用好了。不过私有云这件事好像做做还有点用途——如果不被人攻击的话。

家里的NAS早就稳定运行了许久,私有云在存储端要做的就是把端口开放出去。由于家里是动态公网IP,之前的办法是在服务器上跑一个shell,定时把本地获取的IP写道一个对外公开的隐蔽HTTP服务上,需要连接的时候访问那个URL即可读到当前的公网IP。这个办法用的是ngrok的内网穿透办法,好处是不用改路由器配置,坏处自然是数据要绕道VPS速度大打折扣。闲着翻了翻路由器,华为荣耀Pro,可玩性巨差,不过竟然还是提供了DDNS的选项,只是与花生壳做了捆绑,只能用花生壳的服务。花生壳的免费版 1Mbps 带宽虽然聊胜于无,但其实只需要一个网址的报告服务,数据传输完全可以公网直连。距离完美的最后一步,就是花生壳的免费域名堪比随机密码,眼瞅着就是胁迫用户买他家的二级自定义域名。好在Freenom上还有免费的 .tk/.ml 之类的邪门顶级域名,随便搞一个,抑或是用CNAME解析到已有的二级域名上,开心!

下一步就是考虑把NAS和自动备份连起来,或者再搭个WebDAV方便浏览。嗯,研究一下 seafile,看起来还行...


20/1/21更新:
花了点功夫研究了半天主流私有云系统,个人需求如下:

  • 公网有便捷的 UI 访问存储内容
  • 足够的安全设置
  • 上传速度越快越好
  • 如果能备份手机相册就再好不过

上文的 seafile 在公司里被 IT 用作分享网盘。但自己部署的时候发现即使用 docker 部署,在7.0.5版本无论如何都无法正确配置其内置的数据库与 seafile hub 连接(另外一个私有云还得带数据库实在是复杂度超出了自己的知识范围),只好放弃。
之后尝试了可道云的开源版。这个部署起来也不太容易——主要问题是需要 PHP 环境,而且外网访问需要在路由上开 NAT。作为一个 web 小白,Nginx 用起来还是磕磕绊绊,再布一个 PHP 会不会到处留漏洞,被人攻陷家庭网络就有点丢脸了。好在勉强用 apt install php 装了 7.0 版本的 PHP,再略加 Google 完美部署。Kod 的 Web 端由于 PHP 的加持挺够意思,而移动端 App 只能算差强人意。尤其是手机相册备份的速度……嗯,大概 22G,6500+ 的相册文件,由于手机 App 后台运行会被 iOS 杀进程,传了三天还没结束,更有几个近1G的视频文件卡住了传不下去... 不过有一说一,Kod 的读取速度还不错,电信 4G 读家里 NAS 的电影(2.xGB),缓冲时间并不长。
为了解决备份移动端相册的问题,多布了一个多平台同步系统,叫微力同步。主打多架构多平台,而且是类似 BT 的分布式传输,自带内网穿透,传输效率高,安全性好。

verysync
verysync

Linux 版直接下二进制,运行获得 web 服务,本地登录127.0.0.1:8886配置即可。iOS 版的 App 收费 8 元,看在传输性能的确不错(公司电信 Wi-Fi,存到家里电信 NAS,传输速度~4MB/s),又是 App 家庭共享的份上,欣然买了。
所以,终于,这一波折腾暂时结束了,虽然硬盘的容量开始吃紧,可能得准备加硬盘。

总结一下:

  1. 家里要看电影的时候,用小米盒子播 SAMBA;或用手机浏览器上 Kod 的 web 页面拿 web 播放器投屏小米盒子也可。
  2. 在其他地方要看 NAS 照片或视频时,用浏览器访问路由的 NAT 端口即可。
  3. 要备份手机照片,用“微力同步”,直接穿内网备份到NAS。如果要通过 Kod 看备份的照片(话说看手机照片直接看手机就好了嘛),用 ln -s <src> <dst>做个软链接即可。
  4. tmux 的后台运行以及 /etc/rc.local 的开机启动设置玩得越来越溜。

至此,传说中黑群晖所令人眼红的功能全部实现,花费 8 元,加一位高级工程师数小时的工时——从成本上竟然好像还不如买白群晖了。不过熟悉了许多杂七杂八的知识:PHP 的安装,分布式传输,通过 SSH 隧道访问 HTTP(因为安全原因,微力需要在本机环境访问 8886 端口配置),还有 docker logs NUM 的 debug 办法,以及 CNAME 的二级域名访问。

啊,人生真是充实!


1月24日再次更新:
折腾了几天后:

  • kod 的照片备份太慢,视频传输卡顿严重,只能作为备选方案偶尔冷备;
  • 微力同步传的倒是快,但不知道是不是读取 iPhone 相册有瑕疵,其实很多照片没有传输成功,缺乏校验,放弃;

专业的事还是让专业的人来干吧(尴尬的笑容)


2月10日最后更新:
我也入了黑群晖的坑。群晖的软件还是玩起来方便啊。

Comments
Write a Comment
'