12ms | 瑞安 : 如何设计一个可持续性的个人云

本文转自: https://blog.12ms.xyz/archives/2615
仅做个人收藏,版权归原作者所有

构建一个个人云不仅是一种趋势,更是一种保证数据隐私和掌控权的必要手段。

然而,大多数情况是我们开一台虚拟机,玩玩之后随他过期上面的东西也都没了。这些部署都是不可持续的 unsustainable

在我思考了曾经哪些玩玩就扔掉的机器之后,得出结论:

在设计一个可持续的个人云时,有三个关键特性:整体性便利性隐私性

这些特性直接决定了你的个人云能等持续运行下去。

整体性:高内聚方便迁移

个人云的架构必须要有灵活性和可迁移性。一个设计良好的个人云,应该具备简易迁移的能力。当环境或设备发生变化时,比如从家庭服务器迁移到云端,或服务器过期迁移。所以个人云的迁移过程应当尽可能简便。

这不仅意味着配置和数据能够快速同步和恢复,还要保证系统架构具有足够的可扩展性

整体性是我们个人云的运行关键特性,无论环境如何改变,我们的系统都可以快速迁移。

便利性:随时随地连接使用

对于个人云而言,便利性意味着用户能够在任何时间、任何地点轻松访问其服务。

无论是从家里、办公室,还是在外地旅行,个人云的访问应该是稳定、流畅的。

而且,用户不应当花费过多时间去处理复杂的网络设置和配置问题。

实现这种便利性的关键是降低访问门槛,减少用户手动配置的步骤。这包括使用反向代理、自动化的网络配置工具

好的个人云设计,应该几乎不到阻隔的存在,只需通过设备就能直接访问需要的数据或应用。

隐私性:数据加密传输

隐私性也是很关键的一点。随着个人数据虽然价值密度低,但是对于个人而言还是很重要的。

所有数据在存储和传输过程中都应当经过加密处理,以防止未经授权的访问。

在设计个人云时,通信加密和身份验证机制必须被集成到架构中。


解决方案工具简介

前面分析了一个可持续话个人云的重要的三点要求,下面就是软件架构方案

软件方案的详细介绍

为了实现这些特性,下列工具被用作实际方案:

  • Tailscale: 提供私有 VPN 服务,在多主机/VPS之间快速建立安全的网络连接,实现设备间的高速互联,家庭网络/手机客户端的ipv6也可以帮助获取低延迟的体验(同省内直连 ping < 20ms)
  • Cloudflare Tunnel: 通过一键反向代理+隧道的方式,为 self-hosted 应用提供简化的访问路径,减少网络配置的复杂性,提升便利性。
  • Cloudflare Zero Trust Application: 一键配置提供敏感应用的身份验证功能,确保外部访问的安全性,保护隐私和数据加密传输。

通过这些工具的组合,能够有效地满足个人云的三大核心需求,构建出一个可持续、易用且安全的个人云系统。

在设计个人云时,选择合适的工具是确保系统高效、可靠和安全的关键。以下是用于实现前述三大核心特性的具体软件方案:

1. Tailscale

Tailscale 提供了一种灵活的 VPN 服务,专注于简化主机之间的互联。通过 Tailscale,用户可以利用内网 IP 直接访问各个设备,无需暴露主机的外部端口,也无需担心公网非加密的流量。

Tailscale 的主要优势在于,它基于 WireGuard 协议,提供了高效的点对点连接,并且自动处理防火墙穿透和 NAT 问题。用户只需轻松配置,即可实现不同主机间的高速互联,无论设备位于家庭网络、云端还是外网,访问都像在同一个局域网中一样简单。这不仅极大提升了整体性和可迁移性,还降低了维护成本。

2. Cloudflare Tunnel

Cloudflare Tunnel 提供了简单、快速的反向代理和隧道服务,它允许用户在不开放任何主机端口的情况下,将本地服务暴露给互联网。其最大的优势在于,可以通过 Cloudflare 的基础架构快速部署一个支持 HTTPS 加密的站点,而无需配置证书或防火墙规则。

通过 Cloudflare Tunnel,可以让外部用户以安全的方式访问自托管应用,例如个人文件存储系统、博客平台等。Cloudflare 负责处理流量的加密和认证,用户无需担心数据在传输过程中的安全性。这种自动化的部署方式,减少了配置复杂度,极大地提升了便利性。

但问题是中国地区的主机会默认连接到 SJC 也就是 San Jose, CA, United States,速度相当慢

3. Cloudflare Zero Trust Application

Cloudflare Zero Trust Application 提供了对任意域名的强大鉴权功能。通过简单的配置,用户可以为任何外部应用建立一个安全网关,并通过多种身份验证机制(如 TOTP 或 GitHub OAuth)保护应用的访问。

这一鉴权网关可以用于保护个人云中敏感的后台管理域名,确保只有经过认证的用户才能访问。

例如,使用 TOTP(时间一次性密码)或 GitHub 的 OAuth 身份验证,个人云中的应用和服务将得到多层次的保护,进一步增强了隐私性。关于部署流程可以参考

软件部署

TBD


应用场景示例

可以实现多个自托管应用和服务的高效部署。以下是一些常见的应用场景:

  1. 个人文件同步与备份
  2. 使用 Tailscale 让家中的 NAS 设备与笔记本电脑建立 VPN 连接,无论身在何处都可以通过内网 IP 快速访问文件。通过 Cloudflare Tunnel,可以将文件存储系统如 Nextcloud 暴露到互联网上,实现随时随地的文件访问。
  3. 自托管博客或网站
  4. 通过 Cloudflare Tunnel,可以快速将自托管的博客(如 Ghost 或 WordPress)暴露给互联网用户,并自动获得 HTTPS 加密保护。借助 Cloudflare Zero Trust Application,还可以为博客的管理后台设置 TOTP 验证,避免后台受到恶意攻击。
  5. 远程桌面与开发环境
  6. 使用 Tailscale,将家庭服务器或工作站与笔记本电脑连接,随时远程访问开发环境。无需担心端口暴露或公网访问的安全问题,所有流量都经过加密隧道处理。
  7. 个人任务管理与笔记
  8. 使用 Cloudflare Tunnel 将自托管的任务管理工具(如 Kanboard)或笔记工具(如 Joplin Server)部署到互联网上,随时通过加密连接访问和管理任务、笔记。Zero Trust 可以为这些应用添加额外的身份验证层,确保敏感信息的安全性。

通过这些工具和应用场景,可以构建一个高效、安全、可持续的个人云,既满足日常使用需求,又确保了未来的可扩展性和数据隐私。