DC的工作间 · 2025年9月11日 0

分流、反代、HTTPS——NIC重构简要后续

不多废话了,简单记录下在这之后的一些新增和维护。

一、分流

由于种种原因,最终还是选择通过DNS分流,在公网DNS配置了新的二/三级域名专为新NIC上运行的服务器提供NIC内地址查找,在内网DNS对应添加新的cloaking-rule将内网访问的流量指向内网地址。

为什么不直接修改之前的二级域名DNS记录?因为可能还有一些运行在老NIC网络上的服务依赖这些域名解析,光是我能立马想到的就是我的开发日志等等静态网站还依赖老NIC进行Git同步和构建。此外,我的家人的设备还需要依赖这些DNS记录,通过L2TP和老NIC访问NAS等服务。总而言之,能用,就先不动它了,也正好作为新NIC的后备。

二、反代

新NIC在家中的反代服务器现在搭建在LXC容器里了,资源占用更少、性能更好不说,启停也更加迅速了。

SMB这种非HTTP的服务自然不方便用Nginx,还是用socat端口转发。配置基本上照搬之前的就行,唯一需要注意的是记得修改client_max_body_size,我还是完成反代搭建后才注意到Synology Photos没法上传大于1MB左右的照片,这才想起来有这回事。

三、HTTPS

Gitea和群晖NAS相关服务都基于HTTP,在反代之余顺便也全员HTTPS化了。这次抛弃了acme.sh,改用了lego,主要是看中它不需要sudo,通过一点简单的脚本+cron就能实现自动续签了,再没遇到acme.sh那些稀奇古怪的问题。说来acme.sh主要优势就是单个shell文件通吃负责任务,但面对Go静态编译的、同为单文件的lego,就不具备明显优势了。

这次申请了二级域名的通配符证书,免得后面增加走NIC的服务时还要新增证书,只管猛加三级域名就行了。

四、那么,代价是什么

Nginx的性能意外的好,在使用过程中LXC容器的内存占用普遍在60MB左右。外网访问由于主要受带宽限制,感受不出来明显区别——硬要说的话WireGuard比L2TP稳定多了;在家里内网的话,通过新的反代服务器的NAS上传/下载速度降低了不超过20%。对我而言可以接受,因为本来通过群晖的网页上传就跑不满内网的千兆,真要传大文件我一般都直接用SMB了,而在内网的时候我一般用文件资源管理器直接通过NAS的主机名直接连接,也不需要在反代服务器上转一遭。

所以,总的来说,基本上没什么代价,全体HTTPS化+分流带来了统一域名访问,使用群晖的App时也不用时不时重新信任自签发证书,视频内容串流也不必只能使用HTTP了。