NAS折腾记1:我的下云之旅

事件视界
事件视界
发布于 2024-04-20 / 68 阅读
0
0

NAS折腾记1:我的下云之旅

前言

前段时间花400块重金从闲鱼收了一台蜜罐超存的NAS,6盘位(群晖只认4盘,卖家说windows可以认6盘),配置是J1900\4G内存\32G MSATA\200W不知名电源(据说是链力),逛了一圈市场的蜗牛星际、恒星存储之类的产品,基本上成色都比较一般,蜜罐这个算是长得比较中意的,所以果断下单。

买的时候机械硬盘还在高点,为了能先上手玩一玩,于是又斥资20元买了个拆机盘,主打的一个能用一个月就算胜利

一、刷入黑群晖

注:因为这次是为了纯折腾,所以没有买正版群晖(其实也是没钱),有能力的童鞋还是买正版哈。

原本店家发货的机子本身已经刷好了黑群晖,插上硬盘就能直接使用,但奈何我运气不好,刚到手用了两三天,放在msata的系统盘就已经掉盘了,于是又买了块U盘,从头刷了一个黑群晖进去。

基本步骤分六步:

1、下载引导镜像。地址:【https://github.com/fbelavenuto/arpl/releases

2、下载U盘刷写工具,地址:【http://rufus.ie/en/

3、使用refus或者其他刷写工具,将这个镜像写入到你的U盘中

4、将U盘插入主机,并接上HDMI线到显示器(估计是NAS少有的需要显示器的步骤)、键盘、鼠标和网线,最好你的硬盘也一起接进来,免得新的存储设备接入后影响到启动顺序(一般不会影响到)。

5、主机开机后按delete或者其他BIOS设置键(详细取决于你的主板的厂商,实在不确定的话,可以拆开机子看看主板型号,百度搜索主板型号+BIOS)进入bios,并设置你的U盘为第一启动项

6、等待系统引导启动后,会显示一个地址,进入后按引导选择镜像文件和群晖版本,刷入群晖系统

你的U盘在这之后就得一直插在NAS上了,理论上其他的存储介质也都能完成这个使命,但是U盘应该是最简单易得的介质了。

详细的操作过程可以看以下视频,此处不再赘述。

二、基础设置

完成正常的安装设置,来到了群晖的主页。

不得不说群晖这个web端的操作页面真的相当不错,非常流畅易上手,虽然是网页但却给人一种在操作可视化的操作系统一样。

首先当然需要为你的硬盘初始化存储池(进入存储管理器,先创建存储池,后创建存储空间)

然后在控制面板,固定你的NAS的IP(一般情况局域网的IP有租期的,过期才会收回,短暂的关机重启一般都不会改变NAS的IP,这一步也只是为了以防万一)

打开SSH功能(方便折腾)

最后在套件中心下载container-manager

至此,最基础的准备就已经完成了。

三、安装应用

感恩伟大的Solomon Hykes,Docker可以是不是世界上最伟大的程序发明我不清楚,但是它确实是我这种小白的救星。

不需要管各种环境、权限隔离、进程守护,一行代码拉取程序,一行代码启动程序,这才是开源项目应该有的简洁形态。

container-manager里面的注册表可以看到各种各样的容器镜像,此处介绍我使用的几个程序

3.1 halo

halohub/halo

这是一个比较现代化的博客程序,大学时代我一直用的是wordpress,虽然前台的主题各式各样有很多合我口味的,但是后台的控制台就一言难尽了。出于个人对于UI操作的执着,于是也将博客切换到了halo

此时也正在用这个博客系统在编写这篇文章,可以看到后台的页面也算是比较现代化的

3.2 emby

lovechen/embyserver

既然装了NAS,那么影音需求自然也是不可避免,在emby和jellyfin之间,我最终选择了特别版的emby,UI风格更加圆润简洁。

想下面这样简单分一下文件夹,再添加到emby的媒体库,就能自动刮削视频的信息,包含电视剧封面、演员、剧集简介之类的

3.3 calibre-web

johngong/calibre-web

一直以来我都有收集轻小说的epub的习惯,而最喜欢用的程序就是calibre

原本服务器在云上时,受限于带宽和映射到磁盘导致的各种问题,以至于每次我都需要在本地的calibre上传文件后,再在云上的web程序上传一份,相当麻烦。

下云之后,我只需要在电脑上的calibre程序管理NAS上的文件,calibre-web的数据也会跟着修改

方便了其中的步骤后,也就更愿意去愉快地收集了。

3.4 cloudreve

cloudreve/cloudreve

既然有了存储服务器,那么存点东西到自己的私人网盘也是理所应当的了。

cloudreve是个比较简洁易用的网盘程序,material design相当清爽,支持多种存储策略和离线下载,基本满足了我对于私人网盘的需求。

3.5 sun-panel

hslr/sun-panel

既然有了这么多内网服务,那么总得有一个统一的导航页面吧。

sun-panel支持内外网模式切换,界面也比较简洁。

3.6 部署自己写的项目

此处先留个白,下次介绍一下jenkins+docker快速部署springboot+vue项目的工作流。

四、外网访问

虽然说是想要下云,但是也并不是希望自己的网站完全不能在外网访问,当然我都白嫖黑群晖的系统了,也不可能去得寸进尺白嫖人家带宽。

我最终使用的是IPV6/DDNS+zerotier+nps的组合策略。

4.1 IPV6/DDNS

对于物理服务器来说,DDNS+IPV6应该是最简单粗暴的手法了。

由于反复操作没能给NAS分配到公网IPV6(或者说是防火墙的设置不对之类的)

于是我把主意打到了我的路由器上。

首先,在路由器上部署Aliddns,并设置一个子域名专门用来指向路由器的IPV6地址

然后在路由器中下载编译成二进制的socat程序,并放入到路由器的运行目录,最后设置一段指令到路由器的自定义脚本中

nohup socat -d -d -lf /var/log/socat.log TCP6-LISTEN:8083,reuseaddr,fork TCP4:192.168.123.156:8083 &

以上代码中,192.168.123.156:8083是你需要代理的内网IPV4地址和端口,TCP6-LISTEN:8083代表你要代理到路由器的IPV6的8083端口

这样一来,你的指定域名就可以通过IPV6访问到你的路由器地址并转发到你的NAS服务上,实现外网访问的效果(记得开放指定接口的防火墙哦)

4.2 zerotier

IPV6+DDNS虽然解决了服务外部访问的问题,但是对于想要通过SMB直接访问操作文件夹,或者一些没有IPV6的朋友来说就成了难题,于是,zerotier实现虚拟组网就有了必要。

首先去zerotier官网创建一个虚拟网络

https://my.zerotier.com/

我用的群晖7.2系统已经没有了zerotier的套件,所以需要在套件中心增加我不是矿神的套件来源

https://spk7.imnks.com/

然后安装zerotier套件

接下来在SSH中执行以下指令

sed -i 's/package/root/g' /var/packages/zerotier/conf/privilege

此时可以启动zerotier了,启动成功之后执行以下指令

cd /var/packages/zerotier/target/bin
./zerotier-one -q join XXXX

XXXX处是你的网络ID,如果返回200 join OK就说明已经成功加入网络了,去zerotier后台授权这个设备加入

客户端也下载zerotier的程序,并加入这个网络后,就可以以局域网的形式来访问NAS的资源了。

4.3 NPS内网穿透

虽然以上手段已经能覆盖大部分需求,但是还是有小部分(虚拟组网不安全,IPV6又没有)的用户。

虽然下了云,但是服务器还是可以帮我们做内网穿透的工作的,参考我的这篇文章 ,将内网服务转发到服务端之后,再反向代理到域名,这样轻量服务器也能完成这种工作,一年也就60多。

结语

以上就是我这两天折腾NAS的小总结了,希望能对各位看客有帮助。

诚然NAS必然是个小众需求,不过将自己收集的资源分享给家人朋友也是个乐趣。

我的设想是,家里人想看什么电视,即使我在公司,也可以通过手机挑选资源下载到NAS内,他们能直接通过电视观看高清无广告的片源。

使用我自己写的番剧识别与弹幕匹配程序,搭配RSS订阅下载字幕组的资源,也可以给朋友提供愉快地看番服务,不需要自行下载。

分享是个很愉快的事情,对于爱折腾的人来说,折腾与分享就是以上一切工作的价值。


评论