这是一个经验帖,如果能帮到您我也很高兴。
最新2025年1月20日将整改新增3瓦小主机承接所有网站服务及SSL、DDNS、Docker等服务,NAS专注于存储备份和虚机。将CentOS服务器主机迁移到实体机上。并且小主机作为统一入口承接防火墙重任
-----以下是旧方案----
背景
上次在家里组建了黑群晖系统,见《家庭倍控N100主机另类AIO》,现在准备将所有之前运行在阿里云、腾讯云服务器的网站、Docker等迁移到黑群上。
我在黑裙上除了部署Docker,还有Linux虚机,将云服务器的虚机通过宝塔迁移下来。
我家里有IPV4及IPV6,简单来说通过DDNSGO泛解析到域名(具体方法自己搜),为了统一出口及自动化续约SSL,也为了防止端口太多容易忘记。通过 Nginx Proxy Manager 代理跑在了一个端口上使用子域名区分,众所周知,运营商是不给开43、80端口的,所以我通过代理后,还是需要带端口访问。但是这已经达成了第一步的目的。像MQTT、NodeRed等服务带不带端口访问无所谓,但是我的主站是一定需要不带域名访问的(往下有讲怎么做)。
目前各项主备方案:
DDNS方案
对于DDNS,这是稳定的第一步,必须保证在IP变化的时候能及时将IP解析到域名,
首先我把小米路由器开启了SSH,在小米路由器跑了一个DDNSGO服务,配置了IPV4及IPV6解析到某个子域名。
其次我在群晖跑了DDNSGO的套件,将IPV4及IPV6泛解析到了域名。
最后使用TP路由的动态DNS,将IP解析到了TP的官方子域名。
三重保障,降低出问题的可能。
WebSSL方案
在群晖使用Docker跑了 Nginx Proxy Manager,进行管理内网服务的访问及泛域名SSL自动续约。(本身其实上不上https无所谓、我纯属为了躲避运营商日志系统所以全加密访问,在某些方面可以躲避运营商自动化系统抓web特征)
环境管理方案
1、网络是通过TP的企业路由拨号,二级路由是小米路由器供WIFI使用。别给我扯啥OpenWrt越复杂越出问题,所以我没用。
2、为啥是用TP企业路由作为一级路由,官方有免费远程控制台(TP商云),只要有网,就能远程修改路由配置,起码不会出问题,香。
(假设将路由器管理页面映射到外网,首先是安全问题、其次是假设某次拨号拨到了内网地址,那就完了,访问不到了,也没法重启)
NAS大文件方案
因为Nginx代跑在Docker会受到nginx配置及性能原因,大文件上传下载会概率出问题,所以将DSM及其他非Web服务比如MQTT、RustDesk等直接通过路由器转发出来。
解决80端口访问问题
因为我还有个书签站供公共访问,所以显然通过端口访问是不合适的。
我使用的域名比较多,比如A.com域名是我的泛解析到NAS的域名,B.com时候我原来云服务的域名。
方案1:使用阿里云的显性/隐性URL解析出来。
具体使用步骤也是自己搜哈,因为已经做了DDNS,所以记录值就是确定的,比如我通过Nginx Proxy Manager代理的web是www.A.com:9999,www是我的主服务,那么我的原来域名是www.B.com,在下图就是主机记录www。记录值www.A.com:9999,也就是访问www.B.com就访问到了www.A.com:9999。
方案2:使用贝瑞花生壳代理出来
这是我第一次测试的方案,缺点是受限官方只给1M的速度,及1GB的访问流量。这个方案的逻辑就是用了花生壳的内网穿透,但是我有ipv4不需要哇。
在本地服务器部署花生壳端,在后台绑定。配置映射就行了。
再把阿里域名解析到花生壳域名,或者将域名转到贝瑞直接使用(这个方案绕一大圈)
其他
我的整体架构是黑群主机跑Docker(感觉他这个管理页面好用),虚拟机宝塔跑各项PHP、JAVA、Nodejs等网站服务,不用群晖的Web Station,不会用也懒得研究,好像对于我的场景Web Station有些功能做不到。
所有备份方案都用的群晖。
数据库或者其他中间件都在主机上,所有服务用一个中间件,避免了比如Docker重复给你整那么多数据库及相同的中间件,占用资源。
现在差一个日志分析的系统,没找到好用的,用来分析 Nginx Proxy Manager的访问及错误日志,有好用的开源项目感谢推荐~
所以除了群晖原本的功能,及百度网盘、阿里网盘、本地、OSS备份四方备份服务,我现在大概跑了15个Docker、10几个网站、一个Windows虚拟机、一个CentOS虚拟机还有HA等智能家居服务CPU及内存占用仍有30%左右富裕。