目录

2024我又让博客起死回生了


/80d94e37-319a-4a39-986d-08dfca182f6b/1.jpg

好多年以前的记录

回顾了在3,4年前,在2020年末和21年初的文章,那时候抱着很大的兴趣的折腾着一个简陋的自建NAS。现在回想起来,当时只是在非常有限的成本下折腾了一个能跑起来的玩具。

它长下面这个样子

/80d94e37-319a-4a39-986d-08dfca182f6b/2.jpg

CPU是一颗超低电压的intel i5 8350u,无风扇被动散热,8g ddr4 ram,考虑到超低电压,性能就不要太过于奢望了。当然做nas也不用太高的性能,更何况这机器比以前的树莓派那是不知道高明到哪里去了。

系统安装了ubuntu,docker部署了aira2pro,nextcloud,jellyfin,jira,jinkens等容器,再加上一个12T的西数氦气USB移动硬盘开机挂载到机器上,这样又有了足够的空间做照片视频的备份和下载电影。

nextcloud的docker部署有这篇文章记录:(外挂NTFS盘用Docker部署NextCloud+Caddy反向代理及一系列问题的解决)

这个blog当时就运行在这台主机中,网站是基于hugo编译的静态页面。用frp做了隧道并把反向代理的网页穿透到了公网,然后我又用go写了一些工具,自动化了markdown转换和make比对功能(自动添加yaml头及图片提取),基于webdav的文件同步,这样虽然是静态页面,也可以做到动态自动更新。虽然文章不多,但为了嵌入式和通用平台的兼容性这个博客一路折腾过来也费了不少力气。

这台主机既然是做nas来用,当然不仅仅是同步文章和博客,实际上它也是一个非常强大的后台。当时家庭的网络拓扑结构是这样的:

/80d94e37-319a-4a39-986d-08dfca182f6b/3.png

如拓扑图所示:

  • 主路由拨号接入光猫联网。接入一个旁路由,旁路由修改dnsmasq提供DHCP服务来劫持nextcloud域名,做内网上传访问的优化。

  • 旁路由还提供一个KMS服务器用作激活Windows以及Office

  • NAS上除了提供docker服务外,还启动了clash的代理和wireguard的接入。

  • 主路由上只做一个nas的wireguard的端口映射,(当时电信是支持IPv4公网),如果在外网都接入wireguard后才能访问内网资源。

  • clash服务需要代理才能使用,所以只做到了浏览器或者支持代理的软件的无缝上网,同理,在外网的手机和机器要接入wireguard才可以使用clash代理。

这样的内网架构,一直使用到了23年初。机器非常稳定,运行状态良好,我一直担心的硬盘突然挂掉也没有发生。甚至都没出现过掉盘问题。

跨入了新时代

23年我终于狠下心来攒了台All In One设备。

硬件篇

AIO它长这个样子

/80d94e37-319a-4a39-986d-08dfca182f6b/4.jpg

一台主机,一台AP(中兴BE7200pro+),一个UPS电源,解决所有痛点问题,非常优雅。

这台主机用的是乔思伯的NAS机箱型号是N2,CPU AMD R5 5600G,内存64G 3200MHz的DDR4,用了4个4TB的SATA固态,两个梵想S100Pro,两个达墨QW521,PCIe插槽加了乐扩8125B 2.5g4网口扩展卡,唯一的小bug在主板,主板用的是昂达B550SD4itx,这里最大的问题是只有3个SATA口,所以为了能稳定用上至少4个SATA口,在M.2 WIFI口上加了个转接卡,因为m.2 wifi和m.2 nvme接口在主板上下堆叠,还加装了M.2 NVME的延长线打磨后错位安装,才完美解决了接口不足的缺陷问题。

/80d94e37-319a-4a39-986d-08dfca182f6b/5.jpg

除去SATA硬盘,硬件上只花了3000出头,SATA固态盘也买在了两年来的最低位(以2024年中计),加上硬盘的机器总价大概7000多,这个性价比如果和群晖的机器比起来,那可高了不止一点点了。从性能上来说,实现普通家用软件路由+NAS+HTPC的AIO功能,已经绰绰有余了。

软件篇

既然搞AIO,那肯定是要搞虚拟化的,系统安装的是PVE 8.2版本,内部虚拟化运行了三个系统,修改版的Openwrt系统iStoreOS作为软路由系统,Ubuntu Server用作NAS系统,和Windows 11平时通过远程启动家庭办公使用。

现在的网络拓扑图

/80d94e37-319a-4a39-986d-08dfca182f6b/6.png

与以前的结构也有了很多修改点和自身的特点:

  • 由于公网ipv4地址被禁,ddns做了ipv6解析,wireguard接入点是ipv6。
  • 为了兼容平时无法访问ipv6的网络,也支持一个ipv4的frp隧道的地址,wireguard通过frp隧道也可接入内网。
  • 平时上网时外网的访问不再通过clash代理了,clash的支持直接在openwrt这一层,所以全局透明。
  • 以前的caddy v1的反向代理也升级到了caddy v2。
  • AIO设备的集成显卡直通给了windows系统,理论上windows是可以玩一些中型游戏的。
  • 平时在AIO中,Windows是关机的,家庭用瘦客户端处理一些简单的工作,我写了个远程开机脚本,如果需要复杂一些的如编译调试等工作,瘦客户端直接运行脚本即可接入windows系统,内网速度很快,几乎感觉不到延时。

再回到主题来,在2022年的时候,坚果云的时间戳出了问题,导致这个博客的文章同步出了问题,时期和链接混乱,正值迁移和改造设备,就一直忽略了博客,最近终于下了决心把文章的日期全部重新梳理了一遍,另外一方面hugo更新是比较大的,所以隔一些版本的主题就没办法互相兼容,以前我的老主题已经不维护,导致了无法简单迁移。

干脆我重构了整个同步逻辑,支持了新的主题,并且导出了老的评论数据库,修改数据库并恢复了文章的评论,终于博客艰难的迁移到了新的设备上运行起来。

结语

这就是这几年折腾的心路历程,折腾才是进步的源动力嘛!

另外其实NAS上我开发过一个实用的小功能,udev判断tf卡或U盘插入,遍历卡中的照片,并通过微信通知。这个使用的场景是我平时会拿单反拍拍照,又懒得每次把照片导出来,就做成了自动化,非常实用,这个功能以后再写文章来记录一下。