组 NAS 有感

60

自1己心里一直埋着搭建一台 NAS 的想法,最近闲来无事便付诸了行动。最开始在购物平台浏览了一些成品 NAS,但发现价格过于昂贵,钱包难以承受......何不自己组装一台呢?说干就干。在小黄鱼上搜寻一番,最终相中了 J3455 主板,它板载了一个同名 CPU 及 4G DDR3 内存,商家已经提前在上面预装好了 飞牛OS,斥资160购入!电源选择的是 台达12V 7.5A,因为这个板子采用 DC 直流供电。

板子问题解决了,现在主要还是差一个硬盘。在 AI 技术的蓬勃发展下,存储价格也是水涨船高,令我有些焦头烂额......不过好消息是,我还有一台坏掉的上古笔记本,拆开也许能有意想不到的收获?

不负我所望,果真拆出来了一个 256GB 2.5寸 的机械硬盘。不过这玩意是真难拆啊,它的螺丝滑丝了,还是我用扳手硬撬开的。

因为手里缺少 sata电源线,所以先用了一个 DC-ATX 电源单独给硬盘供电。但是这样就出现了一个问题,这样操作硬盘转都不带转的,后来上网查了一下,说是这种电源单插上电是无法单独供电的,是处于待机状态,需要获取主板的开机信号才行,除非买那种双电源线连上。不过 AI 还提供了另一个解决方案,就是把这个电源上的绿线和黑色地线短接一下就可以了,我用了两根针尝试这么做却失败了,中途因为针碰到了硬盘的金属部分还差点导致短路烧毁。

这个图应该是我最后悔没有提前看到的了。我盲目听从了 AI 购买 XH2.54 的 sata电源线 ,没有观察与查证究竟买什么规格的,实际上应该是 PH2.0 的,PH2.0 两边有细长的开孔,中间有一个大的开孔。说起来,咨询 AI 也应该适度,自己也不能少了亲自考证的能力,否则人会变得越来越傻没有自主判断能力的,无论 AI 说的再怎么有可信力,幻觉始终是一个无法避免的问题。

废了九牛二虎之力后,这块电子垃圾也算是被我组装完成了。我还给它配了一个简陋的盒子机箱,挖了若干个洞当作散热孔。我在上面使用 Docker 部署了一个 Navidrome 服务,相当于一个自建的音乐流媒体平台,这下直接听歌自由(虽然还要自己找资源下吧)。

内网穿透与组网使用的是 Cloudflare TunnelTailscale (依旧感谢赛博佛祖)。使用 Tailscale 让我对 NAT 也有了一些深入的了解。一般的,宽松一些的地区会使用 锥形NAT (Cone NAT),或者叫 端口受限形锥形NAT(Port-Restricted Cone NAT),在这种模式下,外网无法随意访问你的内网,但是只要你向外网某个服务发送了请求,路由就会允许那个服务在一个规定的 TTL 里面向你的内网主动发送数据......既然这样,我们就可以利用这个原理通过 Tailscale 打一个 P2P 的洞。A 设备会先向 Tailscale 的服务器发送一个请求,服务器记住 A 的 IP 与运营商分配的一个端口,B设备也同样操作,最后通过服务器让 A 与 B 交换对方的 IP 与端口,再互相发送数据。这时候他们各自就有向对方发送数据的记录了,路由就会放行对方的请求,这时候就像在防火墙上打了一个洞,二者便可不经过第三方服务器直接通信,大大提高了速度。不过你需要在双方设备上都安装 Tailscale客户端,它会给设备分配一个自己的 私有IP 用于外网连接,你也需要登录账户来同步设备信息。

前两天我在出门的时候尝试使用流量连接家里的 NAS,但是失败了。经过了一番研究,发现了在通过 IPv4 访问的时候可能会遇到 对称性NAT(Symmetric) 的困境。大家都知道全球正面临着 IPv4 紧缺的问题,运营商为了更精确的把控它的使用,就会采取这种模式。这种情况下,你每访问不同的服务时,运营商给你分配的端口都是变化的,这就导致你在访问 Tailscale 服务器和 B 设备的时候采用的端口是不一致的,就会导致打洞失败。不过后来我采用了 Tailscale 分配的 IPv6 去访问内网设备问题就迎刃而解了,因为流量状态下分配的 IPv6 一般都是公网IP,不需要加 NAT 了。

在搭完这些服务后,它的内存还是有很大的余量的。或许未来某一天,我就把博客什么之类的网站全搬上面,这样就不用继续负担昂贵带云服务费用了。