Homelab | 架构设计与实现-High-level design - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
shunagliu008
V2EX    分享发现

Homelab | 架构设计与实现-High-level design

  •  
  •   shunagliu008 2023-06-23 10:29:27 +08:00 2108 次点击
    这是一个创建于 915 天前的主题,其中的信息可能已经有所发展或是发生改变。

    一 :介绍

    这个家庭实验室的 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 证书的互联网服务,借助自动化脚本,第一次配置完成后,后续就不用关注了,包括证书续期,全自动。 [post cid="1396" /]

    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 自身有加密功能,安全性可以保证。

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

    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 菜市场,任你...博客,网盘,视频,下载,邮箱,代码仓库等等

    8 条回复    2023-06-25 10:23:46 +08:00
    ltkun
        1
    ltkun  
       2023-06-23 10:39:40 +08:00 via Android
    差不多的架构也用 hostdare 和 pve 哈 其他乱七八糟的也很多
    shunagliu008
        2
    shunagliu008  
    OP
       2023-06-23 10:42:12 +08:00
    其他的 LLD 可以参考这个博客 https://homelab.samliu.tech/archives/1436.html
    fabiannnnnnnnnn
        3
    fabiannnnnnnnnn  
       2023-06-23 10:42:26 +08:00 via Android
    问一下 其他地方买的域名放到 cf 托管也可以吗?具体怎么操作怎么收费啊
    shunagliu008
        4
    shunagliu008  
    OP
       2023-06-23 10:53:19 +08:00
    @fabiannnnnnnnnn 不收费,只需双向验证一下就可以,Google 下
    cylx3124
        5
    cylx3124  
       2023-06-23 18:39:49 +08:00
    Hostdare 几年前的特殊时期拔过线,后来我就不敢用他家的东西了
    vsyf
        6
    vsyf  
       2023-06-23 19:10:12 +08:00 via Android
    内网中可以将域名解析到 NPM,这样在家里也可以直接域名访问了,不用记几十个不一样的端口号。
    airbact
        7
    airbact  
       2023-06-25 04:10:30 +08:00 via Android
    @cylx3124 hostdare 今年一月也突然停止服务了一个月左右,而且没有公开回复原因。
    shunagliu008
        8
    shunagliu008  
    OP
       2023-06-25 10:23:46 +08:00
    @airbact 是的,以为跑路了。好像是被一家印度公司收购了
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     945 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 24ms UTC 20:50 PVG 04:50 LAX 12:50 JFK 15:50
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86