新手向|自建NAS私有云盘:以黑群晖为例(着重讲外网访问)

作为一位有点杞人忧天的强迫症患者,我时不时会为自己的海量数据的安全性而发愁,毕竟在近两年的计算机社团经历中,见过了太多的硬盘损坏案例,从自损到人为,各种案例层出不穷(感觉可以另写一篇案例分析),所以我有了数据备份的需求,需求为:既要出于数据安全考虑备份,又要做到方便随时提取。我的目光开始转向了私有云。


对于需求的备选方案

  1. 移动硬盘
  2. 各种网盘
  3. NAS

逐个分析上述方案的可行性

1.移动硬盘

优点:使用移动硬盘作为数据备份方案,能同时较好地兼顾数据安全与随时提取,计算机中的文件在移动硬盘中存一个备份。

缺点:移动硬盘需要定期手动备份文件,对于海量数据或是目录结构发生更改的情况,需要耗费一定时间重新备份;移动硬盘不可避免地仍是传统机械硬盘结构,机械硬盘害怕震动摔落等外部力量,频繁携带弄不好哪天会出事情;移动硬盘的2.5寸大小还是太大了,放进包里可能没什么,但是不可能整天带在身上,给别人共享文件也不如网盘一个链接来的迅速。

2.各种网盘

网盘这个东西现在已经比较深入人心了,国内常用的比如百度云什么的(好像撑下来的大服务商就这一家了,别的比如360什么的都关了),境外的比如Google Drive、OneDrive、Amazon之类。

国内的网盘在2012年后曾经经历了一个上升期,表现为使用用户数量激增且服务商十分客气地提供超大容量。但是好景不长,16年开始多家网盘宣布关闭个人服务,现在提供个人服务的大商家就剩百度云一家,差不多已经垄断了,所以限速卖会员的恶心招也开始玩了。

优点:免费、易用、便利。

网盘十分容易上手,只要注册一个账号就能用,而且基本上不要钱(除了你被限速想充会员的时候),备份文件只要拖进窗口就可以,给别人分享文件,只需要在app上生成链接。

缺点:速度慢、不可控。

百度云是会限速的,当别人给你分享了一部电影,结果你绝望地发现下载速度只有100KB/S,速度旁边是大大的“开通会员”按钮,绝望心情可想而知;

上面提到了,你永远也不知道网盘什么时候会关闭服务,到时候想把数据取回本地都来不及,而且数据是保存在别人的服务器里,东西在别人手里总是不放心,尤其一些重要文件。

3.NAS

首先介绍一下NAS的定义

NAS的全称为:Network Attached Storage,即网络附加存储,实现原理是将存储设备连接到网络上,方便用户随时随地取用,只要有网络都可以。NAS其实可以将其视作一个文件服务器。它的硬件结构基本上就是低功耗X86或者ARM微机,在普通微机的基础上增强了存储能力与网络能力(比如增加硬盘接口数量、使用千兆或万兆光纤网卡),拥有更大的存储空间并能快速将数据发送给用户。

新手向|自建NAS私有云盘:以黑群晖为例(着重讲外网访问)插图
群晖的NAS

优点:自主可控、使用方便、可玩性高

NAS基本上是掌握在用户自己手里的,没有使用网盘的一些担心;升级起来也很方便,照着操作指导把硬盘换个大一点的就行;一些NAS比如群晖是给用户提供了很大的自由发挥空间的,配置得当能有十分不错的体验。

NAS同时兼具网盘的方便取用与移动硬盘的数据安全备份,数据只要联网就能取用或者一键分享;使用多块硬盘配置RAID提高数据安全性,坏一块硬盘是有可能,但是同时坏掉多块硬盘的概率是微乎其微的。

缺点:对新手不友好,配置繁琐,需要一定的专业知识

没有太多计算机基础的新手想搞明白NAS是一件比较困难的事情,NAS在到手之前就要准备买硬盘,到手之后的安装、配置、网络等等,如果没有指导手册,即使是相关专业的人员也有可能配置搞错。


现在又回到了我的需求

我的需求是兼顾安全与方便,同时我又是有较好基础的计算机专业人员,所以我选NAS。

方向有了,那么现在就开始选硬件了。(软件当然黑群晖)

我是个人用户,那么就不可能考虑服务器一类的了,功耗大而且噪音大,除非给我一个机房。

目光转向X86主机,这个东西给个人用户用的话,功耗就不能太大,那么范围进一步缩小了,瘦客户机是个不错的选择。

为什么选瘦客户机呢?

首先瘦客户机功耗低,瘦客户机的应用场景多数是办公场景,比如我们这边医院的护士站就是用的华为的瘦客户机。

其次瘦客户机多数会支持无盘启动,无盘启动需要较快的网络连接以从服务器下载系统文件,所以瘦客户机一般是千兆网卡。

还有一点就是瘦客户机体积小巧,可以放在桌面上或者弱电箱里。

那么惠普T610似乎是个不错的选择

新手向|自建NAS私有云盘:以黑群晖为例(着重讲外网访问)插图1
惠普T610

T610外观上给人一种舒适的感觉,且内部空间设计紧凑,接口丰富,有两个SATA接口与一个MINI PCI-E接口,但是很搞笑的是,两个SATA接口均没有设计硬盘托架,似乎是在为难我们这些需要DIY的用户?

新手向|自建NAS私有云盘:以黑群晖为例(着重讲外网访问)插图2
新手向|自建NAS私有云盘:以黑群晖为例(着重讲外网访问)插图3
内部结构图

散热方面,T610采用被动散热方式,为散热片+金属格栅的复合结构,被动散热做成这样,可能AMD的U是真的太能发热了吧hhhh(满载确实很烫手)

NAS的硬盘方面,我选择了两块2.5寸笔记本硬盘(可以全部塞进机器内部,但是最好不要这么做,会导致散热不畅),我看淘宝的卖家秀多数是只买了一块硬盘的,那样可以很方便的安装在机器内部,但我是两块盘,为了散热不能都塞进去(都塞进去,硬盘温度能达到50度),我只能安装一块在内部,剩下一块放置在机箱外。

那只用一块硬盘不就好了嘛?

不行!一块硬盘我怕数据会丢,还是两块盘配置RAID1双备份保险。

↓ 淘宝的沙雕网友是这样固定单块硬盘的 ↓

新手向|自建NAS私有云盘:以黑群晖为例(着重讲外网访问)插图4

↓ ZDM的沙雕网友是这样塞两块盘进去的 ↓

新手向|自建NAS私有云盘:以黑群晖为例(着重讲外网访问)插图5

我是这样放进弱电箱的(一块硬盘在机箱内,另一块在左边路由器上放着):

可能有人吐槽我线乱嘛,但是关上弱电箱的门谁还看得见嘛2333333

新手向|自建NAS私有云盘:以黑群晖为例(着重讲外网访问)插图6

其实它放在桌面上也挺好的,只可惜学校没有公网地址,所以我把它送回了家

新手向|自建NAS私有云盘:以黑群晖为例(着重讲外网访问)插图7

安装硬盘的时候还发生了一个小插曲,因为下面那个SATA接口离主板过近,导致我插线的时候把主板上一个电容给顶了下来:

新手向|自建NAS私有云盘:以黑群晖为例(着重讲外网访问)插图8

后面去电子实验室找同学焊了电容,又把SATA线接口削薄了一点才敢继续插。

接下来是安装黑群晖系统

为什么要用群晖呢,因为群晖是一个非常成熟的个人NAS软件提供商(没错群晖是卖软件的,机器只是副业),而且群晖没有限制只能在自己的机器上安装,而是所有的X86机只要破解一下,都能够安装群晖系统!!

黑群晖系统的安装过程请自己去网上找,网络上很多教程,这里因为着重讲的是配置,所以不再重复。(安装所需的U盘以及镜像,教程会教你,我这边因为卖家都给了所以没自己做)


网络配置部分

如果想像网盘那样出门在外也能随时随地使用NAS,那么一个优秀的网络必不可少,以下是在公网访问自己家中内网群晖的三种方式:

  1. DDNS
  2. QuickConnect
  3. FRP转发

首先说DDNS

DDNS是Dynamic DNS的缩写,中文名称动态地址解析,就是在基础的域名IP对应关系上,增加了频繁定时更新域名对应IP地址的功能,方便经常更新IP地址的网站等。

DDNS的前提是需要一个公网IP地址(不明白公网IP意义的同学请自行补课,这个涉及到大量的计算机网络知识,我不可能三两句话讲明白),没有公网地址,互联网上别的主机无法主动找到你。至于家庭宽带用户有没有公网地址,我咨询过相关运营商,电信表示所有家宽都是动态分配的公网IP地址;联通没有明确表示,但是说只要申请一般都会给;移动则明确表示不会给公网地址,只有局域网地址;其他的二流运营商比如华数等,因为是租用联通出口,也不会提供公网IP地址。

所以首选电信宽带(手动滑稽

然后请致电运营商,查询自己的宽带光猫是桥接模式还是路由模式

如果是路由模式,就请他改成桥接模式,然后给你宽带拨号的账号密码。

为什么不能是路由模式?路由模式相当于光猫是一个有线路由器,我们的NAS本来就接在路由器后面,现在光猫又多了一层路由,这样端口转换配置起来很麻烦,而且多数光猫,用户是没有权限配置的。

然后在路由器里选择pppoe宽带拨号上网,填好宽带账号密码(已经是桥接模式的跳过)

新手向|自建NAS私有云盘:以黑群晖为例(着重讲外网访问)插图9

看到了自己的WAN IP是公网地址:

新手向|自建NAS私有云盘:以黑群晖为例(着重讲外网访问)插图10

(内网私有地址是10、172、192开头的,有的运营商也会使用没有分配的100开头的保留地址当局域网地址)

然后配置端口转发或者DMZ主机

配端口转发还是DMZ看个人喜好,DMZ会把服务器直接暴露给公网,这样用地址直接可以访问,但是万恶的电信会封常用端口比如80、8080、443等,所以还是建议使用端口转发。

这里以华为路由器为例,

首先是转发不会被运营商封掉的端口,在NAT中新建一个端口转发,以群晖的管理端口5000为例,把NAS的5000端口转发到外部的5000端口,协议选全栈。其他的端口比如5001也这样填。注意内外端口都是一样的

新手向|自建NAS私有云盘:以黑群晖为例(着重讲外网访问)插图11

然后配置会被运营商封掉的诸如80、21、443、139这一类端口

比如下图中我把80转发到了8888,这样就可以在地址后面加上8888端口来访问内网的web服务了。

其他的端口请按照实际使用情况配置

而且有的服务是可以改端口的,比如photo和FTP就可以改端口,没必要手动配置转发。

新手向|自建NAS私有云盘:以黑群晖为例(着重讲外网访问)插图12

务必不要使用群晖上面的UPNP功能,也就是自动配置路由器,这个很不稳定。

然后去注册一个域名,现在域名很便宜,.cn第一年只要二十多块。

为什么要用自己的域名呢,因为好记,而且花生壳一类的DDNS服务商,不仅域名难记,而且服务还不稳定。

这里注册域名请务必去dnspod国服(.cn那个),后面配置DDNS需要dnspod的支持

注册完域名后,先新增一个A记录,记录比如填nas那就是nas.xxx.cn,ip地址先随便填一个,后面ddns会自己配置好。

新手向|自建NAS私有云盘:以黑群晖为例(着重讲外网访问)插图13

点击DNSPod左侧面板中的用户中心安全设置,然后在API Token下点击申请或者开启来创建ID和Token:

其中API Token的名称可自定义例如NASDOMAIN,设置后即可看到你的ID以及Token(此时不要关闭窗口)

新手向|自建NAS私有云盘:以黑群晖为例(着重讲外网访问)插图14

前往群晖NAS服务器然后打开控制面板中的外部访问, 接着在 DDNS 菜单点击新增以便添加服务提供商,在服务提供商处选择DNSPod.cn

新手向|自建NAS私有云盘:以黑群晖为例(着重讲外网访问)插图15

此处用户名和密码分别填写DNSPod API接口中的Token ID和 Token,前者是纯数字后者是很长的那串字符。

在确认填写完成后点击测试连接如果在状态下显示正常这说明参数正确,此时DNSPod的IP会被自动修改。

最终你可以直接使用自行配置的顶级域名直接访问,请注意 : 虽是顶级域名但访问时还要添加你的端口号,比如管理后台5000端口。

可能会有的问题:

偶尔可能会访问域名出现无法正常连接。

出现此问题的主要原因在于运营商将你的网络IP切换了,NAS提交给 DNSPod 后存在 DNS 解析上的时间差。

类似你修改了解析记录最长需 48 小时才能刷新到全球,当然按经验来看实际上大约在5分钟左右解析即刷新。

但是在这5分钟里你访问这个NAS的地址时可能就会中断掉

原理总结:

  1. 通过端口转发,将内网服务器的端口与路由器的公网IP端口建立映射关系。
  2. DNSPod提供的API接口允许用户直接通过API修改解析值, 群晖 NAS 会定时将公网IP提示推送给 DNSPod,接着 DNSPod 开始解析域名并将其指向最新提交的IP地址,最终我们在访问时实际访问的就是最新提交的IP。

然后是群晖的QuickConnect服务

这个原理是利用群晖的服务器做中转,配置起来非常方便,只要登了账号就行,但是黑群晖不能用!!

现在洗白基本不可能了,所以黑群晖就不要考虑QC

白群晖使用QC的话,速度很慢,只有几百K,适合应急用一下。

新手向|自建NAS私有云盘:以黑群晖为例(着重讲外网访问)插图16

最后是FRP

FRP的好处是不需要公网IP,但是租用服务器的费用是有点高的,而且有的服务器是按流量计费,传输大文件比较心痛。

frp所需条件:一台 VPS、一个域名、一个 Putty 软 件

1、选购 VPS:一般分国内、国外两种,国内的延迟低但价格略高,有时还需要备案; 国外的延迟高,相对便宜。国内推荐阿里云、腾讯云等,国外的推荐一年 19.9 刀的搬 瓦工。

VPS的操作系统务必选择Linux,推荐CentOS

2、选购域名:阿里云的 top 域名首年才 2 块钱,可以一次性买 5 年、10 年。买好之后进入管理界面,点击“解析”。增加两条 A 记录,记录值为刚才 VPS 的 IP 地址,主机记录分别为*和@,意思是把这个域名的所有子域名全部指向 VPS 主 机。

3、安装 Putty:Xshell 或者 Putty 都可以,这个是一个命令行工具,是用于登陆 VPS 执 行操作的工具。由于用的是 Linux 系统,所以所有的操作基本都是命令行的,很少有图 形化界面。下载好打开 putty 后,输入你 VPS 的 ip 地址和端口号:

新手向|自建NAS私有云盘:以黑群晖为例(着重讲外网访问)插图17

之后输入用户名 root,输入密码(VPS 的密码,就是 password 的右边),注意在输入密 码的时候是不会显示的,但是实际上是已经输进去了,输好后直接回车。最方便的做法 是先复制密码,之后再 password 的右边点击一次右键然后回车,密码就自动输上去了。

新手向|自建NAS私有云盘:以黑群晖为例(着重讲外网访问)插图18

二、安装 frp 服务端、客户端 Frp 是一个开源程序,已经基本都作成了一键脚本,非常方便。 1.服务端(VPS)输入以下命令(CentOS请使用yum安装):

wget https://github.com/fatedier/frp/releases/download/v0.12.0/frp_0.12.0_linux_amd64.tar.gz

2.使用 tar 指令解压 tar.gz 文件

tar -zxvf frp_0.12.0_linux_amd64.tar.gz

3.进入 frp 目录

cd frp_0.12.0_linux_amd64

4.删除不必要的客户端文件

rm -f frpc frpc_full.ini frpc.ini //版本不同可能稍有差异, //frpc 为客户端文件 //frps 为服务器端文件

5.配置服务器端文件

vi frps.ini

6.编辑配置文件

[common] bind_port = 7000 vhost_http_port = 8080 dashboard_port = 7500 dashboard_user = 用户名 dashboard_pwd = 密码 max_pool_count = 5 authentication_timeout = 900 subdomain_host = lekee.cc [ssh] listen_port = 6000 auth_token = 和客服端 token 对应

详细解释:

[common] 必填的 bind_port Frp 服务端口(可自定义) vhost_http_port http 访问端口(可自定义) dashboard_port dashboard 界面端口 dashboard_user 登录 dashboard 用户名 dashboard_pwd 登录 dashboard 密码 max_pool_count 最大连接池数量 authentication_timeout 超时验证时间 subdomain_host 自定义二级域名 [ssh] listen_port ssh 访问端口 auth_token 用户身份认证

7.保存上面配置文件,启动 frp 服务器

./frps -c ./frps.ini

客户端配置

1.SSH 登录群晖 NAS (群晖必须开启 ssh)

新手向|自建NAS私有云盘:以黑群晖为例(着重讲外网访问)插图19

2.下载 Frp, 删除服务端文件。(因为和服务端配置一样,不再一一赘述。)

sudo -i // 切换 root 用户 wget https://github.com/fatedier/frp/releases/download/v0.12.0/frp_0.12.0_linux_386.tar.gz tar -zxvf frp_0.12.0_linux_386.tar.gz cd frp_0.12.0_linux_386 rm -f frps frps_full.ini frps.ini 

3.编辑 frpc.ini 文件(客户端配置文件)

vi frpc.ini

4.编辑配置文件如下

[common] server_addr = ip server_port = 7000 auth_token = 和服务器端对应 pool_count = 1 [ssh] type = tcp local_ip = NAS 局域网ip local_port = 22 remote_port = 6000 [nas] type = http local_port = 5000 subdomain = nas [web] type = http local_port = 80 subdomain = web

详细解释

[common] 必填的 server_addr 服务器端公网 server_port frp 服务端口,和服务器端 bind_port 一致 auth_token 和前面服务器端 [ssh] auth_token 一致 pool_count 连接池数量 [ssh] type 服务类型(tcp、http、https、udp) local_ip NAS 本地局域网内网 ip local_port NAS 开启 ssh 服务端口号,默认 22 remote_port 服务器端 ssh 端口,和服务器端 [ssh] listen_port 配置一致 [nas] NAS 管理界面 subdomain 二级域名 nas.lekee.cc 访问 NAS type = http 服务类型为 http local_port NAS 默认端口 5000 [web] NAS web Station 服务,没用可以不用设置 type = http 类型为 http local_port = 80 NAS web 服务端口 subdomain = web 二级域名 web.lekee.cc 使用自定义二级域名的时候,域名 *.lekee.cc 要解析到服务器 IP

5.保存,运行。(后台运行,请看下面)

./frpc -c ./frpc.ini

此时在服务端会看到"start proxy sucess"字样,即连接成功。

测试运行

ssh 测试

ssh -p 6000 user@服务器ip

user为登录群晖的用户名

能ssh连上去说明成功了。

后台运行

后台运行服务的方法有很多,这里只说一种可以在服务器端(Linux)和客户端(NAS)都可以用的nohup指令。

服务器端

nohup ./frps -c ./frps.ini &

客户端

nohup ./frpc -c ./frpc.ini &

自动启动

参见此教程:frp 自动启动 – 码农的世界

原文链接:https://zhuanlan.zhihu.com/p/51351619

© 版权声明
THE END
喜欢就支持一下吧
点赞11 分享