外网访问群晖家庭NAS完美方案

作为华为产品的铁粉,不仅自己要用华为全家桶,还极力说服老婆放弃了苹果转投了华为。除了华为的车买不起,家里的路由器、PAD、手机、手表、电子笔记,给姐姐家和丈母娘家的电视也是华为智慧屏,可以说是满满的真爱了。

爱之多深就得有恨之多切,但在个人存储刚需的满足上,它总是与我擦肩而过,有缘无份,不过也正是因为这样,让我在其它产品上面玩出了更多的趣味。

这些年喜欢航拍和摄影,积累了不少的素材,又舍不得在出成品后把它删掉,所以需要存起来,上回把家里的老iMAC升级为固态硬盘后,不仅运行速度提升10倍以上,1TB的大容量也让它变成了很好的家庭存储介质。但总担心有一天,SSD硬盘挂了后,数据不能恢复。

另一方面,老婆经常需要在公司和家里来回奔波写案子,所以包里常常带一块移动硬盘,无数次我都建议她上云办公,哪怕弄个百度网盘也会高效很多。但因为里面的很多内容涉密,放上去总觉得不安全,另外,几百G的零散文件,上云后的管理也很麻烦。所以,我就在想,有没有一个方案让资料存储既安全又能像本地磁盘一样使用便捷呢?

对需求抽象后,得出的结论是,我需要的是家庭NAS,并且可以像云盘一样能够远程访问。这里得加一个时间戳,此时的时间大概是在2020年底。

作为一名工程师,有了需求后,第一个想到的,就是自己动手、丰衣足食。

家里有树莓派3和4M可以作为控制器,也有好几块闲置的硬盘,网上又买了一个4T seagate的桌面硬盘。把它们组合起来不就是一个很好的存储系统吗,此时唯独缺少一个完美的软件管理方案。

于是乎在网上疯狂找方案和资料,发现OMV(Open Media Vault)是一个开源且不错的家庭存储方案。说干就干,三下五除二,周末用了一天就把系统搭建起来了。局域网下,通过网上邻居映射磁盘访问,相当地方便,除了响应稍有延迟之外,爽得不要不要了。当时还写了一篇用树莓派基于OMV搭建个人NAS的文章,那会儿没有搭个人网站,忘记是发到博客园还是简书,反正后来也找不到了。

本地存储的问题算是解决了,怎样实现远程访问呢?就找到了量子互联的内网穿透方案,1个月10块钱的隧道服务费也不算贵。折腾了一圈,才发现OMV的远程访问访问了个寂寞,它可以很容易地实现远程对OMV管理界面的访问,但是当要访问文件时,远程FTP方案需要打通多个端口的隧道,非常地麻烦。于是乎,又尝试了OMV + NextCloud、 OMV + OwnCloud这两个个人云盘的解决方案,因为都是开源软件,NextCloud、OwnCloud方案的稳定性以及上传的各种限制,让我最终不得不放弃,于是我的家庭存储美好计划就这么搁置了,很长一段时间,都把它作为局域网内的扩展存储来使用。

直到2022年8月的某天,又看到老婆走哪儿都带个移动硬盘,我就受不了。自己搭的方案有缺陷,只要舍得花钱,不就搞定了吗? 于是又找了一圈,发现群晖是个不错的家庭NAS方案,平台开放性也做得很好,玩家生态也很丰富。

但是新机的价格还是超出了我的心理预期,就到了闲鱼淘了台二手的DS218 Play,可以搁两块硬盘,再淘一块6T、一块4T的二手硬盘,总价不到2000米。搭了一个RAID的备份方案,可使用空间4T左右(买硬盘的时候最好买一样的容量,不然在组RAID的时候会出现木桶效应,就低不就高)。群晖的方案很好,自带的quick connect远程访问方式,能在桌面端、手机端提供类似云盘的体验,远程DDNS对于没有公网IP的家庭用户略显复杂,且因为80、443端口常常封闭,很难有很好的体验,这种远程访问的方式不推荐。但到现在为止,还是无法获得类似于桌面磁盘或者FTP服务器随用随拷的体验。也是因为工作的原因,没太多时间继续折腾了,我的宏伟计划又搁置了。

为什么开头提到了华为? 也就一个月以后,华为发布了自己的NAS方案,瞬间泪崩,太气人了,早干嘛去了?

这次触发我继续折腾还有一个原因,对它的手机云空间杀熟收费模式十分地不满,当然我接触到的所有的云产品都是类似的商业模式,但确实收费太高远超我自身的心理预期。多年来一直在用其云空间的产品,从5GB免费空间到50G银卡会员、200G金卡会员、2024G钻石会员,即使钻石会员初始年费高达近500元/年,那时也还是爱的。但到提醒我今年续费的时候,价格涨到了近700元/年,按这趋势,用户粘性越强,价格肯定会越高,细思极恐。当然也就不太能忍了,交两年年费,我的一个NAS的钱都出来了。 :)

咋办?自己搞呗? 

从早上五点码字到7点,终于回到正题上了。

下面的内容就是纯干货了,但此方案也需要每年100元的隧道服务费,如果这也接受不了,那看官您就不用往下看了。

利用内网穿透基于webDAV远程访问群晖家庭NAS

看小标题估计也看出来了,这里面有三个技术:群晖家庭NAS、webDAV、内网穿透。下面主要讲方案思路,不是严格的step by step,因为本周忙着培训,文章是事后几天总结写的,难免梳漏,有具体细节问题,欢迎通过邮件骚扰。

  • 架构组网

三个主要角色,群晖NAS、代理服务器、用户。

  1. 建立隧道:互联网上,用户通过大网域名或者IP可以直接访问服务器,但群晖NAS因为部署在家庭局域网内,而家庭网关运营商往往不会分配固定的公网IP地址,外网用户不可以直接访问,所以就需要借助第三方搭建一个代理隧道,让用户可以访问到部署在局域内网的家庭NAS设备。简单说,就是把内网的设备地址映射成为公网的地址,我们访问某个公网的域名或者IP就能跳转访问到局域网内的NAS。提供这种服务的厂商很多,比如收费的花生壳,开源的FRP。花生壳之前也用过,一是要在局域网内设备或者路由器内部署客户端,二是相对来讲收费略贵,所以不选择;开源的FRP好用,但是需要有自己的主机或者服务器,相对还是有些门槛,而我自已也不愿意去花时间去维护这么一个复杂的组网,这样有更多的精力聚焦工作,用好NAS。在万能的淘宝上,找到了量子互联,用他们家的内网穿透方案已经两年多了,比较稳定,而且带宽也可以,所以强烈推荐。
  2. 远程访问:隧道搭建好了,要实现远程访问,有多种方案可选, FTP、SFTP、webDAV。

FTP和webDAV都能提供用户的磁盘映射,可以实现类访问本地磁盘的体验,但前面已经讲过,FTP一来是不安全的协议,二来需要映射多个端口,非常麻烦;webDAV底层协议基于HTTP、HTTPs,HTTP有速率优势,HTTPS可以兼顾安全。所以在本方案里,选择了webDAV作为传输协议。

  • WebDAV服务开通
  • 安装WebDAV server

进入套件中心->安装WebDAV Server

  • 配置开通webDAV服务

点击WebDav Server,更改配置,勾选“启用https”,配置端口为xxxx,这里建议用默认端口。勾选“启动WebDAV日志”,方便后续问题的定位。然后点击“应用”按键,应用配置。

  • 开启用户和用户组权限

“控制面板” ->“共享文件夹”,选中对应目录,点击“编辑”->“权限”设置允许访问的文件夹的用户权限和用户组权限。

至此,WebDAV的服务端已经配置完成,局域网内通过IP:Port应该可以访问了,访问的方式参见第五章《客户端访问》。

三、内网穿透

1、安装Nattunnel客户端

客户端下载

这里要再次表扬下量子互联,对玩家的支持相当到位,特别是群晖各个平台的客户端,我的机器是 DS218 Play,芯片是Realtek的ARM平台,群晖的软件版本是DSM7.1(类似于操作系统),所以下载rtd1296平台的DSM7客户端,各位根据自身平台情况选择下载。

安装教程参见官方指导:群晖套件安装和配置 token配置。安装完成后上效果:

  • 配置隧道端口映射

接下来进行隧道端口映射的配置,见文知意,远端端口可以配置,也可由系统随机分配,跟现有的不冲突即可。

内网IP:即NAS的局域网内的IP地址; 

内网端口:前面在webDAV客户端配置的端口,默认端口为5006; 

  • 线路选择: 选择支持HTTPS线路即可,量子互联有指导。

五、WebDAV客户端远程访问

1、windows用户:RaiDrive首选,网上有一堆指导教程

2、mac用户:两种访问方式,Finder前往文件夹和CyberDuck小黄鸭

1) Finder文件夹访问:前往->前往服务器,输入服务器地址和端口,再输入用户名密码即可登录。

2)CyberDuck教程自行搜索

客户端:建议使用cyberduck, 比mac自带finder快很多,而且对文件传输速率等显示也较好,下载地址https://cyberduck.io/download/

六、遇到的问题:可以正常上传文件,下载失败,mac上提示错误码8084, 进一步分析返回http报文提示403 forbidden错误。

解决方法:量子互联s1线路速率最快,但默认状态下支持更加安全的https,对http支持不够,修改为https线路端口映射后,速率杠杠的

设置共享文件夹权限,确保登录用户有权限访问文件夹

Related Posts