家用NAS及相关服务搭建记录

Time

2024.1.27:初稿完成

2024.2.6:增加网络磁盘挂载

前期设想

一切事情的起因都要追溯到自己尚处在天目湖的某个日子,当时与同学聊天时无意间听到了NAS这种东西,便由此埋下了种子。

但其实直接原因就是最近手机内存不够了……然而自己完全没有删照片和聊天记录的习惯(记得很久之前对某人说过,我还是活在回忆里),同时自己完全不能信赖各大云存储平台,于是一直在寻找解决方案。本来想着换台1T的手机解决,资金问题都已经解决了,脑内却突然蹦出来NAS这个东西,于是就开始琢磨可行性……然而真就琢磨出来了,说搞就搞(笑)。正好上学期刚学完计网,理论体系建完缺点实践的东西,这不就正好用上了。

最终的目的是搭建一个能够远程访问的私有云,空间够用就行,但是带宽得够,能够支撑我无延迟的查看照片,同时最好也能帮我搞点程序员能搞出来的乐子。仔细研究之后,决定的方案是采用群晖的家庭级NAS机器DS224+,同时在自己家庭网络部署NAS服务,走公网域名访问这条路。

设备

  • 网关:天翼网关-GPON TEWA-1102G
  • 路由器:TL-WDR7661千兆版
  • NAS:群晖DS224+
  • 硬盘:群晖NAS硬盘HAT3300-4TB *2

流程记录

公网ip申请

因为要用NAS作私有云,所以自然有从外部访问的需求。查了一下群晖有一套自己的方案QuickConnect,但是看了一下资料,方案本质上还是转群晖自己的服务器来解决外网访问问题,终归还是挂靠在他人那边。当然除此还有别的方案,但是自己实在不想用内网穿透这种又慢又贵的方案,最后还是走公网来的方便一些(虽然安全问题更多一点,但是自己也学安全真是太好了(实践计划通√))。

家里的网是山东泰安电信,申请公网ip打10000电话直接业务办理就好。说辞就是申请公网ip,那边问什么用途就说安装监控(但是不要说自己在家里面架设网站)。之后和我对话的客服那边直接就说”我这边需要报备一下,请您等待消息“,下午等待电话确认后再检查就变成公网ip了(确认方法网上都能搜到,我这边因为外部进网是光猫所以是在网关里查看的自家ip,反正原理就是进自家网络的ip和外部网站查询到的访问ip相同就基本能确定是公网ip而不是区域划分下的子网ip了,尽是些计网知识)。

相关资料:

(可能是自己生活在小县城里所以公网ip不怎么拥挤(?)反正自己打电话一申请就有了,没有网上查的这么麻烦……不过一定要记得是打10000,千万别去营业厅直接和业务员交流!小县城做业务和技术的是完全分开的,个人甚至向业务员普及了好久什么是ip地址……最后得到的结果是上报上级服务厅,而两天等来的结果又是拍网关照片,写个人需求等待进一步审核……自己实在蹲不住了,结果给10000打了个电话两个小时解决,于是决定以后没啥特殊事情不去营业厅了▼ヘ▼)

千兆网升级

查了一下家里的带宽,发现走的是500M的有线。感觉用NAS做私有云从外部访问带宽还是不够,遂联系营业厅申请换了千兆网。大概用了两三天的样子,其实感觉快的话也就一下午,紧催着就好。

(不过令我诧异的是电信的套餐500M提1000M竟然不需要花费,反而是联系师傅更换光猫花了100大洋,其名曰调试费(?)感觉自己拿了光猫也能换,上网查了发现个别地方竟然还能收200真的合适吗……不过趁师傅换光猫的时候问到了网关密码,倒是方便改网关设置了(喜))

NAS安装

跟着教程直接安装就好,群晖的NAS感觉在安装方面还是挺方便的,夸!

另外的话磁盘阵列组的是RAID1,身处外地还是怕家里的电出问题影响NAS,本身自己对存储空间的需求也没这么大,留了个盘做备份,权当实验性质了(逃)。

相关资料:

家庭网络拓扑

NAS加入家庭局域网后,想要进一步魔改自然需要知道家中网络拓扑。家里通网算是比较早的一批,因此自己基本没有参与家庭网络的搭建,而自己住的地方又算是比较老的小区,家里网口什么的都没有,全是长辈硬拉网线在全屋组起的网。因此还得自己从头顺线搞清楚拓扑结构,好在联网设备不多,结合网关和路由设置很容易就搞出有线网络拓扑图来了:

(另外在顺网线的时候存在一个小插曲:从路由器到笔记本的那条网线当时家里没注意,用的五类线导致跑不满1000M……不过好在回学校后基本都是走网络,于是搁置了等到想起来再换线)

网关桥接

先说为什么最后走了网关桥接这条路。

本来一开始的方案是在网关也走也走端口映射到路由器,或者再不济走DMZ用路由器当主机,毕竟不想丧失网关一条方便的直接管理途径(浏览器直接192.168.1.1),开了网关桥接还得重新接网线才好访问,路由器拨号上网或者损失点速率倒好说……

但是!但是!

电信的天翼网关!

电信的天翼网关管理页面里做了虚拟服务器和DMZ功能,但它底层没实现!!!

当时做到这步的时候域名申请和DDNS全都配置完了,但是始终连不上NAS主机,排查错误排查了一整晚上也找不到哪里出错,最后走投无路在网上发疯看到了……

  • 其一:

  • 其二:

电信网关工程师!!!

发现这个问题之后,其实也就只剩下网关桥接这条路好走了。知道宽带账号和密码后跟着教程改一下网关里的设置就行(另外根据我家里的网络拓扑结构也不用全部桥接,只修改LAN1口连接方式就好,要不修改了IPTV口的设置又有的忙了),最后再在路由器里设置一下拨号上网,重启家庭网络后直接成功(但是真的真的高兴不起来,谁的问题(生气))。

另外的话做完桥接之后如果NAS是手动配置ip的话,别忘记修改DNS服务器地址,否则上不了网,只能用在内网用内网ip去访问了。

相关资料:

端口映射与DMZ

路由器拨号成功后,公网ip就能够直接访问到路由器了,接下来需要选择访问NAS的方式,最后还是决定走DMZ。一是第一次使用群晖NAS服务,不清楚配置到最后需要用到NAS的那个端口,去上学之后又没法方便的调节路由设置;二是被电信光猫的bug整怕了,自己家的路由器又比较老(虽然是千兆网口但是甚至不支持WiFi6),生怕又出现映射的问题,索性直接把NAS当DMZ主机使了。

但是端口全暴露必然导致安全问题,不过还是用了些常见的方式做加固的:防火墙、强口令、多重认证、ip多次访问封锁……基本把能想到的防护都用上了。(不过好在是家用NAS,万一真有漏洞,被黑了其实也没啥太大问题(xmf老师:?)(逃))

相关资料:

域名申请与DDNS服务

最后,给ip绑个域名方便访问,同时电信给的是动态公网ip,所以还需要走一下DDNS服务。这里自己用的是腾讯云的一整套流程:域名注册,域名解析,DNSPod的DDNS服务,包括下面的ssh证书申请,跑下来还挺顺利的,不过需要一层一层的实名验证,这个也是没有办法。

(另外,腾子的方案还挺贵的,三年只看域名65大洋,还不算解析服务和申请ssh证书,这样看来就不如用群晖自己提供的域名注册和证书申请服务的了,不过主要是图学点东西,这是计划的一部分)

相关资料:

外部访问

到这里,基本上就可在外网环境下访问NAS了,剩下遇到的就是一些使用群晖软件进行外部访问的小问题。

第一个是能ping通网址但是无法正确使用服务。我猜想是路由器端口映射没有设置好导致无法访问,然而在路由器上改来改去太麻烦了,最后索性把NAS作DMZ主机;

第二个是在登陆的时候无法打开网页。我使用Synology Drive时总会调用谷歌框架进行服务,但是因为一些众所周知的原因大部分手机都没有谷歌框架(我自己也懒得搞),所以页面会空白,很容易造成无法访问的假象。这个解决方式的话换个浏览器打开就OK了(好神奇)。

相关资料:

ssh证书申请

如果使用自己的域名访问NAS,访问网址是http协议,浏览器则会提示不安全。因为http下传输的数据不加密,会被别人获取。同时更主要原因是访问页面会显得很难看(逃),所以还是需要给域名设置一下ssh证书。跟着教程走一遍就好,最后修改一下各个服务的证书,成功解决。

相关资料:

网络磁盘挂载

NAS用了几天之后已经熟悉基本功能了,自己用的是利用网页端DSM的Synology Drive进行拷贝的工作流。但是用了几天之后发现一些不顺手的地方:

  • 每次拷贝文件时都要打开浏览器,在浏览器中进行操作,不符合传统在文件管理器中进行文件管理的习惯。
  • 下载网络资源时需要先下载到本机上,再从本机转移到NAS中,增加一步额外步骤。

所以想到用磁盘挂载的方式。粗略的查了一下资料,发现主流的挂载NAS的方法有两种:WebDAV服务和ISCSI协议。二者的区别主要在于WebDAV服务是把NAS当做网络磁盘使用,而ISCSI协议则是将NAS映射到本地磁盘(但实际上还是通过网络,只不过可以直接将NAS当做自己的本地磁盘使用,对使用者是完全透明的):

  • WebDAV:

  • ISCSI:

这里我选择使用WebDAV服务。一是已经有成熟的软件来实现,二是使用ISCSI协议还需要初始化磁盘空间。我的需求就是实现直接访问就行,自己并不在NAS中实现频繁的数据交换(看到了好多使用ISCSI协议是为了运行游戏方便)。所以最后选择RaiDrive软件来实现网络磁盘挂载。

相关资料:

计算机网络知识

  • 公网ip与内网ip

    都是网络唯一定位一台主机的标识。区别在于公网应用在全球范围互联网下,在世界范围内具有唯一性,方便定位与访问;而内网IP只在局域网内部具有唯一性,用于范围网络组网,方便进行管理。

  • 动态公网ip

    由于IPv4公网地址匮乏,现在的拨号光纤默认分配的是私网地址,再经一次NAT,这里可能是多个私网地址共用一个公网地址进行NAT。而动态公网IP是路由器拨号之后,在没有重启或者重拨的这段时间,这个IP地址只有一个用户在唯一使用。 在知道IP地址的前提下,可以直接进行连接。但路由器重新拨号就会获取到一个动态的公网IP地址——即所分配的公网IP地址是动态的,每次路由器重新拨号,获得的公网IP地址就会变。

  • UPS

    UPS(Uninterruptible Power Supply),即不间断电源,主要用于给单台计算机、计算机网络系统或其它电力电子设备如电磁阀、压力变送器等提供稳定、不间断的电力供应。

  • 常用网线分类

    https://blog.csdn.net/u013250071/article/details/106589137

  • 磁盘阵列RAID技术

    将多块独立的磁盘结合在一起组成一个技术方案,来提高数据的可靠性和I/O性能。

  • NAT

    将内网的私有地址,转化为外网公有地址的协议(动态转换)。解决ip地址不足与隐藏网络内部主机的问题,可依赖ip向端口号映射来实现。

  • DHCP

    为网络下的主机分配ip地址与网络配置的协议(动态分配)。

  • 桥接技术

    让网关只用来做光信号和电信号的转换,而不做任何网络相关的功能(比如路由与DHCP)

  • 端口映射

    将内网中的主机的一个端口映射到外网主机的一个端口,提供相应的服务。当用户访问外网IP的这个端口时,服务器自动将请求映射到对应局域网内部的机器上。端口映射可以实现外网到内网和内网到外网双向的通信。

  • 端口转发

    端口转发就是将一个端口(本机的端口或本机可以访问到的任意主机的端口),转发到任意一台可以访问到的 IP 上。端口转发只能实现外网到内网的单向通信。

  • DMZ

    将一部计算机公开显露在互联网上,也就是将一台内往机器所有端口全部映射出去。

  • UPnP

    https://zhuanlan.zhihu.com/p/40407669

  • 域名解析

    将域名转换为IP地址的过程。

  • DDNS

    将用户的动态IP地址映射到一个固定的域名解析服务上,用户每次连接网络的时候客户端程序就会通过信息传递把该主机的动态IP地址传送给位于服务商主机上的服务器程序,服务器程序负责提供DNS服务并实现动态域名解析。

  • ssh认证方式

    https://blog.csdn.net/marywang56/article/details/83621738

  • WbeDAV

    https://zhuanlan.zhihu.com/p/352216119

  • iSCSI

    https://zhuanlan.zhihu.com/p/60986068

后记

共计3天,期间基本上天天熬夜查资料改设置(顺便通了个宵)(但其实是夜晚效率高,白天学不了一点),看着照片上传成功的提示终于可以感慨“结束了”。

好久没有完全自发的去搞点自己想搞的东西了,虽说是天天熬夜但并没感觉有多累,看着自己的成果还有点兴奋感(笑)。不过写到最后倒是没有什么想说的了,只觉得搞这种事情很爽,尤其是把计网的知识一点一点的和实际结合起来,嗯,边写边爽到。

或许自己适合项目驱动?不确定,再搞搞看看。不过NAS整完之后就要接着去整联邦学习了,这个学进去之后也好玩,也想多搞搞。

真希望保研前能多提高提高自己技术,孩子真的很喜欢计算机。