DC的工作间 · 2025年3月19日 0

近期的基础架构维护

回国之后——应该说再加上过年后再次回到自己家中,为了用的更爽,顺便也是给自己找事,对家里的基础架构进行了一些维护,在这里简单记录一下。

容器和虚拟机

由于Proxmox VE支持LXC,于是将一部分轻量或是需要频繁重启的服务通过LXC进行部署,能够节约相当一部分宿主机资源(主要是内存)。这时候就体现出Ubuntu LTS的用处了:私以为Ubuntu这个LTS最重要的是那个LTS维护的内核,就连基于Debian的Proxmox VE也移植了Ubuntu的内核过来,而非继续使用Debian的内核版本。而一个相对稳定的LTS内核版本对LXC迁移和兼容性有着明显的好处。

就改用LXC部署的服务而言,几个例子是内网DNS和Nexus仓库。前者DNS服务仅需占用很少的资源,单独开一台虚拟机可能绝大部分资源都被用在OS上了;而Nexus仓库平时我并不怎么使用,使用LXC部署后可以更方便的通过Proxmox VE的面板直接启动和关闭容器。

NIC维护

由于华东的服务器到期,现在整套NIC彻底迁移至华南的云服务器上。这个过程最痛苦的是排查各个云主机/本地服务器/容器使用的是哪套NIC配置,也借此机会把各个SoftEther客户端进行了更新。

最重要的维护成果就是通过同一域名直连或通过NIC访问自托管的服务了。这一点其实不难,但之前因我我懒所以一直没弄:在内网DNS配置指向本地地址的记录,然后在公网DNS配置指向通过NIC访问的记录。之前我一直是靠改host文件实现的统一域名访问,在这一劳之后才反省之前自己是真的不怕麻烦。

除此之外,所有服务器的防火墙和NIC的访问控制都重新做了配置,这又是一场烂摊子……总之经过痛苦的调试后终于是能正常使用——或者说拦下设计之外的访问了。果然工程化还是有意义的,不然糊出来的东西最终总会是自己都不想挖开重构的屎山。

全网络HTTPS化

这部分其实是接续上一部分进行的,使用acme.sh为所有内网服务配置了SSL证书自动化。最大好处是不用在新设备访问时信任不安全连接了,Git也不用操心时不时蹦报错。

说到Git,为了方便配置HTTPS,给Gitea外面套了一层Nginx,但是通过HTTPS push会报错,原来是默认的client_max_body_size过小,导致我某个仓库里的大提交推不上去。

妙妙工具维护

不可细说。简单来讲,通过(至少我自认为)精巧的转发和路由配置,构建了一条从CN Mainland-JP-CN HK-AU的可靠链路,其中每个节点都配置了outbound以使用该地区服务,同时尽可能做到了速度和延迟的平衡。其实主要目的是为了用ChatGPT等AI服务器,其次才是给自己的Nexus仓库同步上游数据源。

探针部署(进行中)

说来话有点长——回国之后手头就闲置出来两个树莓派4了,有想过再买一块来组三机集群玩,但要玩集群我可以在PVE上开虚拟机玩呀?用树莓派来玩也就只有“真机看得见摸得着”这一个优点了,于是这两个树莓派就继续闲置。

但是过年期间我思考了一个问题:我之前一直在尝试用Arduino做一个小型的探针设备,用于网络唤醒+检测家里设备在线情况,那为什么不直接用树莓派+现成的轮子来做呢?

事实证明绝大多数新硬件架构都优先移植GCC和Linux kernel有多么正确:与其自己给特定硬件从头开发应用,不如想办法让Linux跑起来,然后在上面跑现成轮子。

于是任务内容就从“在Arduino上搓一个集WOL、Web Server……为一身的固件”变成了“在Ubuntu上安装几个包”……

这下网络唤醒和在线检测都变得无比简单,接入NIC后也能十分方便的访问,现在只差糊一个WebUI出来方便我使用了。乐意的话我甚至可以用这个探针作为跳板机,访问老家没有接入NIC的设备。难怪看现在不少创客都喜欢用树莓派做开发,有一个文档齐全、支持稳定的,能运行Linux的开发板真心省了不少功夫。

接下来就是再买一个被动散热外壳,然后在老家的局域网里各丢一个探针,然后边用边开发了——反正树莓派4没有电源键,断电之后来电就自己启动了hhhhhh