说起来,我觊觎NAS这个东西已经很久了
本来就有存储空间不足恐惧,下载的视频资源每次看完多半就删了
同时有时候想着要是上学或者在外地工作,能白嫖家里的电费跑一些小程序听起来也很不错,也能给家里人存放照片
加上前段时间给家里的PC换了套板U,空闲出来一块19年换的i5 8400,还有硬件升级空闲下来的两条8g内存,就想着能不能利用一下
于是想着在等开学的这段摸鱼时光搞点大工程,决定从零开始组一台属于自己的NAS。
为什么不选择直接买一个成品nas?主要是因为现在市面上的硬盘极其昂贵,而且成品nas配置一般高不到哪去,更何况价格也是天文数字
硬件选型方案
丑话先说在前:以下选型完全是基于我自己的需求和预算,不是专业建议,抄作业翻车了别找我 😅
最后敲定下的配置大概是这样:
| 部件 | 型号 | 价格 |
|---|---|---|
| CPU | Intel i5-8400 | 0 |
| 主板 | 华擎B365M Pro4 | ¥208 |
| 内存 | 威刚万紫千红DDR4 8G×2 | 0 |
| 系统盘 | 金斯顿128G SSD | ¥169 |
| 存储盘 | 西数红盘Plus | ¥711 |
| 机箱 | 乔思伯N4 | ¥500 |
| 电源 | 长城SFX 400W | ¥279 |
| CPU风扇 | 乔思伯HP400S | ¥79 |
选硬件的过程其实挺折磨的。CPU和内存是现成的——家里PC换板U之后闲置下来的i5-8400,还有两条威刚8G条。这颗U虽然老了点,但六核六线程拿来跑NAS绰绰有余,功耗也低,放家里24小时开着不心疼电费。
主板挑的是华擎B365M Pro4,理由很简单——便宜,而且SATA口管够,闲鱼208拿下。
机箱这块纠结了最久。好看的贵,便宜的丑,便宜的还大的离谱。最后狠心上了乔思伯N4,首先考虑到他的盘位比较多,拓展性比较强,而且机箱一般也比较耐用
500买个颜值和紧凑体积,算是一笔还可以的投资,不能完全算是钱花在刀把上。
电源上了长城SFX 400W,SFX小电源塞进N4刚刚好。散热器是乔思伯HP400S下压式.
存储盘只上了一块西数红盘Plus。现在硬盘价格比较离谱,只能先跑起来,这个容量也够使用相当长的一段时间了,以后再加盘也不迟。
系统盘随手翻了块金斯顿128G的ssd,装个系统足够,或者跑一些docker容器
全套下来不到2000块,该有的都有了。
系统选择
NAS系统这块选择还挺多的——TrueNAS、Unraid、OMV、黑群晖。
说实话,关于系统的选择,我也纠结了一阵子。TrueNAS功能强但吃内存,Unraid好用但收费,黑群晖能用是能用,但终究是黑户,哪天升级挂了哭都来不及。
最后选的是 飞牛OS(fnOS)。
这个系统基于Debian,对我这种用惯了Arch/Debian系的人来说几乎没有上手门槛,SSH进去就跟回家了一样。但真正让我下定决心选它的原因其实就一个——飞牛影视。这个程序刮削影视资源的能力强到爆,海报墙、自动匹配字幕、演员信息啥的全给你安排得明明白白,比我自己手动整理不知道高到哪里去了。
我组NAS很大一部分原因就是为了存番剧和电影,飞牛刚好戳到了这个需求上。
而且自带的Docker管理界面也挺顺手,不用手敲 docker-compose 也能愉快部署容器,虽然我后面还是手敲了。
安装本身倒不复杂,官网下个镜像写进U盘,插上NAS开机从U盘启动,一路下一步就完事了。基于Debian的好处在这里也体现出来了——驱动兼容性好得一批,网卡、SATA控制器全部免驱识别,没给我整什么幺蛾子。
存储池与网络配置
硬盘装上去之后第一件事就是组存储池。
fnOS这点做得挺省心的——直接在设置里点几下就能创建存储空间。
不过目前我只插了一块红盘,所以其实也没什么阵列可组,就是一个单盘存储池先用着。等之后硬盘价格降下来再加盘,btrfs支持在线扩池,到时候直接往里加就行了。
网络这边,我没有搞什么复杂的穿透方案。家里的宽带本身就支持IPv6,进路由器后台把IPv6开关打开,NAS拿到公网v6地址之后就能直接访问了。
但光有v6地址还不够——运营商给的地址是动态的,隔三差五就变一次,总不能每次出门前先回家看一遍IP。所以需要DDNS把动态v6绑定到一个固定的域名上。
这里我用的是一个叫 Lucky 的容器,功能比较齐全。我主要用它干了三件事:
- DDNS — 自动把NAS的IPv6地址同步到域名解析,不管IP怎么变,域名永远指向家里
- 反代 — 把各种服务(飞牛影视、Docker容器的Web面板)统一用域名 + 端口代理出去,不用记一串端口号
- SSL证书 — 自动申请Let’s Encrypt证书,统一使用https访问
但是还遇到一个比较尴尬的问题,目前IPv6并没有完全普及。家里的网络、手机流量基本都有v6了,但外面有些WiFi——尤其是公司、学校、商场这些地方的公共网络——v6支持依然稀烂。万一人在外面正好碰上这种网络,NAS就直接失联了。
所以我还在NAS上部署了ZeroTier服务作为备用方案。和手机、Ipad等设备建立虚拟局域网,在遇到不支持IPv6的网络环境,也有办法连通家里的nas
Docker服务部署:NAS的灵魂
如果没有Docker,NAS就只是个会发光的硬盘盒。
我的核心服务不多,但基本覆盖了日常需求,有如下几个:
AstrBot
第一个要说的容器是AstrBot,一个开源的机器人框架。拓展性极强,支持各种消息平台接入,插件生态丰富,部署在NAS上24小时跑着,能实现不少自动化agent功能——比如消息推送、定时提醒、甚至一些简单的交互查询。说白了,有了它之后NAS不只是一台存储服务器,还能当一个小型的自动化助手用,平时放在群里还能水群。
qBittorrent
下载器是NAS的刚需,不然家里千兆网摆着多浪费。我选了qBittorrent,老牌BT客户端,稳定、轻量、Web管理界面用着也顺手。部署完之后把下载目录挂载到存储盘上,手机电脑都能通过网页远程加种子,回到家番剧已经下好躺着了。
ani-rss
一个非常好用的追番管理助手,和nas的关系只能用下面这张图来形容。

工作流程大概是这样的:把想追的番添加到ani-rss里,它去蜜柑计划(Mikan Project) 搜索种子,匹配到之后自动推给qBittorrent下载。下载完了ani-rss还会自动重命名文件——把那些乱七八糟的 [XXX字幕组]番剧名[01][GB][1080P] 整理成飞牛影视能识别的格式,然后移到指定的资源文件夹里。飞牛影视检测到新文件后自动刮削生成海报墙。
不过到这还没完。ani-rss本身提供了MCP服务接口,我把这个接口接入了AstrBot。效果就是——在QQ群里直接@机器人,让它帮我查番剧搜索和下载进度,机器人调ani-rss的MCP工具直接返回结果。再也不需要专门打开ani-rss的WebUI去翻下载列表了,群里一句话的事。
这套方案确实很不赖。
踩坑记录
不出意外的话,要出意外了。
Lucky + Cloudflare DDNS配置踩坑日志
DDNS这块我用的是Cloudflare做DNS解析,Lucky负责自动更新记录。听起来很简单,很多视频的教学就是在Lucky填上CF的API Token,选好域名,完事。但实际上我在这步卡了很久很久。
CF的代理状态。CF默认会开启橙色云朵,流量会经过CF的CDN。但CF的CDN对非标准端口支持有限,而我NAS上的服务用的都不是80/443。结果就是域名解析对了,但连不上。最后把代理关掉(灰云朵,DNS only),直接走纯DNS解析,才终于走通。
反代443端口:成功了,但又没完全成功
另一个让我折腾了好一阵的就是反代。我想把NAS主页通过Lucky反代到443端口,这样直接用域名就能访问飞牛OS,不用在地址栏里加端口号。
Lucky里反代规则配置本身倒不复杂,上游指向NAS本地端口,挂上SSL证书,完事。我还在本地做了DNS回流,在内网环境下用域名访问——确实成功了,一切正常,当时还挺高兴的。
然后我切到手机流量试了一下,打不开。
反复排查之后基本确定——不是配置的问题,是运营商把家庭宽带的80和443端口给封了。本地之所以能用,是因为DNS回流走的是内网,压根没出家门。但一到外网走流量访问的时候,443端口的请求直接被运营商拦在路上了。
那没招了,只能开放一个别的端口了,只能这样了。
结语
总之,现在这台NAS算是搞定了。回顾一下从零到有的整个过程——从翻出闲置的i5-8400和内存条,到一块一块地凑配件,再到选系统、配网络、部署Docker、踩坑排雷——前前后后折腾了不少时间,但最终跑起来的那一刻,值了。
现在NAS上跑着AstrBot、qBittorrent、ani-rss、Lucky、ZeroTier这一堆服务,追番自动化、远程下载、外网访问、群机器人,该有的都有了。而且功耗控制得不错,平时硬盘闲置温度也就30到40度之间,风扇安安静静的,不会打扰家里人生活,电费也不至于爆炸。
说到底,组NAS这件事最大的乐趣不在于最终得到了什么,而在于那个”自己动手、从零到有”的过程。以后再加硬盘、折腾新服务什么的,估计还会接着搞。不过那都是后话了——
先享受几天躺着追番的日子吧。