一 :介绍

这个家庭实验室的IT基础架构,从最初的设计到最终实现差不多历时大半年,花了不少时间,也花了一点金钱。

时间自不用说,上班期间的摸鱼,包括下班时间的“加班”;金钱花费上包括软硬件的费用,例如域名,Handsome主题,云主机,云存储,还有一个放置在家里的X86小盒子和一个ARM的树莓派,总共花费差不多3K,以后还会有每年300人民币云主机的固定费用。以后在这个项目上的时间花销才是真正的无底洞,生命不息,折腾不止。

基于此,大多数互联网服务,像博客,网盘,视频,下载,邮箱,代码仓库等等,都可以借助开源项目自建自用,随时随地。

二: 清单

  • 域名:

    samliu.tech 从腾讯云购买,为了方便申请SSL证书,目前托管在Cloudflare。

  • 云主机:

    Hostdare,一家在漂亮国的,不那么知名的老牌主机商家,配置不重要,线路才是重点。最大带宽50Mb,电信双向CN2 GIA线路,联通和移动直连,平时RTT< 200ms,,高峰RTT<300ms,高峰期间也很稳定,极少丢包。

  • 云存储:

    腾讯云COS,作为博客图床使用,因此即使主机在远在米国,国内访问体验也是非常不错的,目前没有配置CDN。

  • X86主机和ARM主机:

    homelab大部分东西关于这部分,放置在家中,7x24。使用Proxmox系统虚拟化,Docker进程虚拟化。

  • Let's Encrypt
    一个用来申请免费SSL证书的互联网服务,借助自动化脚本,第一次配置完成后,后续就不用关注了,包括证书续期,全自动。

homelab_hld-1.png

三: 云上部分

云主机有一个固定的公网IP,系统Ubuntu 12。域名目前由Cloudflare托管,在上面自定义DNS记录。

Nginx 作为一级反向代理服务器,接受来自用户侧的流量,主要代理Web流量,依据Http协议中不同host字段,即不同域名,转发到后端不同服务。后端部署的服务,例如 两个不同类型的博客:

基于Typecho平台:https://homelab.samliu.tech
基于Wordpress平台:https://blog.samliu.tech

当然还有一些独立的docker-based 的应用,例如Letsencrypt,用于自动化处理关于证书的所有事情。
对于一些对时延不敏感的应用,则可以部署在另一个后端,'Homelab'本地环境。云主机此时会充当流量转发的角色,基于策略,转发不同流量到‘Homelab’本地环境,可以是Web流量,也可以是普通TCP/UPD流量。

完成转发任务的组件是一个开源项目FRP,它可以基于端口转发TCP/UDP流量,也可以基于域名转发HTTP(S)流量,充当Web反向代理。在云上部署FRP server端,’Homelab‘本地部署FRP client端,此时的FRP server,对于web流量而言,其实也是作为一个二级 反向代理,出于证书集中管理和会话建立效率问题考虑,云上主机终结所有HTTPS流量,对于去往’Homelab‘的web流量,只转发http流量,frp tunnel自身有加密功能,安全性可以保证。

会话建立效率问题:对于弱网环境,例如丢包或者高时延线路,TCP三次握手,以及TLS 1-4次握手,会严重拉高服务响应时间,表现就是网站打开很慢,基于UDP的HTTP3,对此场景完美适配

homelab_hld-2.png

四: 云下部分

’Homelab‘环境下的X86小鸡,部署免费开源Proxmox虚拟化系统,一个VMWare Vsphere的替代方案。
目前有如下VM:

  • Debian 11:主力系统,部署各种应用,大部分也是docker-based的应用
  • OpenMediaVault:一个开源的NAS系统
  • OpenWrt: Bypass GFW
  • Win10: 图形化工作台

ARM小鸡,主要用于尝试一些ARM应用,当然亦可以部署ARM版本的Proxmox。

在Debian VM上,有一些特殊的基础架构应用,前面提到的FRP:

  • FRP client:用于与FRP server建立隧道,并充当二级反向代理
  • NPM(Nginx Proxy Management):
    开源的Nginx的图形化项目,方便管理配置一些Nginx的功能,以及集成一些其他功能,这里它作为三级
    反向代理,接受来自FRP Tunnel的http web流量,然后分发到真正的应用端。FRP当然也可以直接转
    发流量到应用端,但是对于需要经常变动的后端应用来说,FRP管理起来不太方便,NPM就更容易一些,
    更完美的方案其实是Traefik,当部署基于Docker的应用时,会自动变更相关反向代理配置,部署即上线。
  • Next terminal: 这个其实是一个基于Web的管理平台,跨平台的管理内网IT资产,随时随地
  • Wireguard:下一代VPN解决方案,这里也是用于连接内网,便于管理,当然需要安装wireguard客户端

homelab_hld-3.png

五: 生命不息,折腾不止

上述基础架构部署完成后,就可以聚焦应用本身了,Docker Hub大市场,Github菜市场,任你...博客,网盘,视频,下载,邮箱,代码仓库等等

最后修改:2023 年 01 月 19 日
如果觉得我的文章对你有用,请随意赞赏