本地分布式存储:从坚果云到 IPFS 的三代范式
元认知:存储不是”放文件”,是”数据主权” #
当我们讨论”文件存在哪里”时,问题的本质不是”哪个网盘更好用”,而是数据主权属于谁。
坚果云把你的文件放在它的服务器上(是的,坚果云是云同步服务,文件会上传到它的服务器)。Google Drive 把你的文件放在它的服务器上。iCloud 把你的文件放在它的服务器上。你以为你在”同步文件”,实际上你在租用别人的硬盘。
本地分布式存储的核心哲学是:数据应该存在你自己的设备上,按需共享,而不是存放在别人的服务器上等待被审查、被泄露、被关停。
搭积木:三代存储范式 #
第一代:中心化云同步(2008-2018) #
| 代表 | 核心逻辑 | 数据位置 |
|---|---|---|
| Dropbox | 客户端 → 云端 → 客户端 | 厂商服务器 |
| 坚果云 | 同上 | 国内服务器 |
| Google Drive | 同上 | Google 服务器 |
| iCloud | 同上 | Apple 服务器 |
问题:
- 厂商倒闭 = 数据丢失
- 厂商审查 = 数据被删
- 厂商泄露 = 隐私暴露
- 厂商涨价 = 被迫付费
第二代:P2P 无中心同步(2013-至今) #
| 代表 | 核心逻辑 | 数据位置 |
|---|---|---|
| Syncthing | 设备 ↔ 设备 | 你的设备 |
| Resilio Sync | 同上 | 你的设备 |
| LocalSend | 同上(局域网) | 你的设备 |
突破:
- 没有服务器,没有账号,没有月费
- 数据永远在你手里
- 设备之间直接通信
第三代:内容寻址去中心化存储(2015-至今) #
| 代表 | 核心逻辑 | 数据位置 |
|---|---|---|
| IPFS | 内容哈希 → 全球唯一标识 | 去中心化网络 |
| Filecoin | IPFS + 经济激励 | 去中心化网络 |
| Arweave | 永久存储 | 去中心化网络 |
突破:
- 数据不再绑定位置,绑定内容
- 相同内容 = 相同哈希 = 全球唯一
- 任何人可以从任何节点获取
案例即原理:五个开源精品 #
案例一:Syncthing —— 无中心的 P2P 同步 #
1 | |
GitHub Stars: 86k | 语言: Go | 协议: MPL-2.0
核心特性:
- 没有服务器,没有账号
- 设备之间直接通信(NAT 穿透)
- TLS 加密,端到端安全
- 支持文件版本控制
- 跨平台(Windows/macOS/Linux/Android)
极客玩法:
1 | |
配合 Tailscale 异地组网,实现”家里的 NAS 和公司的电脑自动同步”。
案例二:Rclone —— 云存储的统一抽象层 #
1 | |
GitHub Stars: 58.1k | 语言: Go | 协议: MIT
支持的存储:Google Drive、OneDrive、Dropbox、S3、阿里云 OSS、腾讯 COS、MinIO、WebDAV、SFTP、FTP、70+ 种。
极客玩法:
1 | |
案例三:LocalSend —— 局域网 AirDrop 替代 #
GitHub Stars: 84.5k | 语言: Flutter/Rust | 协议: Apache-2.0
核心特性:
- 跨平台(Windows/macOS/Linux/Android/iOS)
- 局域网直传,不需要互联网
- HTTPS 加密
- 零配置,自动发现设备
极客玩法:
1 | |
案例四:FileBrowser —— Web 文件管理器 #
GitHub Stars: 35.4k | 语言: Go/Vue | 协议: Apache-2.0
核心特性:
- 单二进制文件,零依赖
- Web UI 管理文件
- 支持上传、下载、预览、编辑
- 用户权限管理
极客玩法:
1 | |
案例五:IPFS —— 去中心化存储的终极形态 #
1 | |
GitHub Stars: 17.1k | 语言: Go | 协议: MIT/Apache-2.0
核心特性:
- 内容寻址(Content Addressing)
- 去中心化存储网络
- 内置版本控制
- 支持 FUSE 挂载
极客玩法:
1 | |
缺陷与批判:每种方案的陷阱 #
云同步的陷阱:厂商锁定 #
| 风险 | 案例 |
|---|---|
| 厂商倒闭 | 多个网盘服务关停 |
| 厂商审查 | 文件被误删或限制分享 |
| 厂商涨价 | 免费空间不断缩小 |
| 数据泄露 | 多起云存储数据泄露事件 |
P2P 同步的陷阱:NAT 穿透 #
问题:
- 家庭网络通常在 NAT 后面
- 两个 NAT 后面的设备无法直接通信
- 需要中继服务器或打洞技术
解决方案:
- Tailscale/ZeroTier 组网
- Syncthing 内置中继
- IPv6(如果 ISP 支持)
去中心化存储的陷阱:可用性 #
问题:
- 如果没有节点在线,数据无法获取
- 没有”删除”功能(内容寻址 = 永久存在)
- 性能不如中心化存储
解决方案:
- Pin 服务(固定在某个节点)
- Filecoin 经济激励
- 本地缓存
前沿方向:AI 时代的存储革命 #
1. 数据主权是 AI 的基础 #
“没有数据主权,就没有 AI 主权。”
| 层 | 作用 | 当前方案 |
|---|---|---|
| 短期记忆 | 对话上下文 | 内存 |
| 中期记忆 | 会话历史 | 数据库 |
| 长期记忆 | 个人知识库 | 本地分布式存储 |
| 永久记忆 | 人生档案 | 去中心化存储(IPFS) |
2. AI 驱动的智能存储 #
| 能力 | 当前 | 未来 |
|---|---|---|
| 文件分类 | 手动 | AI 自动分类 |
| 冲突解决 | 手动 | AI 智能合并 |
| 存储优化 | 手动 | AI 自动分层(热/温/冷) |
| 访问控制 | 手动 | AI 基于语义的权限管理 |
3. P2P 是 AI Agent 协作的基础 #
未来的 AI Agent 之间需要直接交换数据,而不是通过中心化服务器。Syncthing 的 P2P 模型天然适合这个场景:
1 | |
4. 从”同步”到”分布式文件系统” #
| 阶段 | 代表 | 特点 |
|---|---|---|
| 第一阶段 | Dropbox/坚果云 | 中心化云同步 |
| 第二阶段 | Syncthing | P2P 同步,无中心 |
| 第三阶段 | IPFS/Ceramic | 内容寻址,去中心化存储网络 |
| 第四阶段 | ? | AI 驱动的智能分布式文件系统 |
实战:5 分钟上手 Syncthing #
如果你只想要一个简单、优雅、免费的本地同步方案,Syncthing 是最佳选择。
安装(Windows) #
1 | |
启动 #
1 | |
浏览器自动打开 http://127.0.0.1:8384,这是 Syncthing 的 Web 管理界面。
添加同步文件夹 #
- 点击右下角 “添加文件夹”
- 设置文件夹路径(如
D:\MyData) - 设置文件夹标签(如 “我的数据”)
- 点击 “保存”
连接其他设备 #
- 在另一台电脑安装 Syncthing
- 在第一台电脑的 Web UI 中点击 “显示设备标识”,复制设备 ID
- 在第二台电脑的 Web UI 中点击 “添加远程设备”,粘贴设备 ID
- 选择要同步的文件夹
完成 #
两台电脑的文件夹会自动同步。新增、修改、删除文件都会实时同步到对方。
进阶:配合 Tailscale 异地组网 #
如果两台电脑不在同一个局域网(比如家里和公司),用 Tailscale 打通:
1 | |
Tailscale 会自动给两台电脑分配内网 IP,Syncthing 通过 Tailscale IP 直接通信,无需中继服务器。
Tailscale 免费版无流量限制:Tailscale 只负责”组网”(打通 NAT),数据不经过 Tailscale 服务器。一旦 P2P 连接建立,数据直接在两台设备之间传输。免费版支持最多 6 人、无限设备,足够个人和小团队使用。
进阶:Docker 一键部署 #
1 | |
1 | |
为什么 Syncthing 是”优雅”的 #
| 特性 | 说明 |
|---|---|
| 无服务器 | 不依赖任何云服务,设备之间直接通信 |
| 无账号 | 不需要注册、登录、记住密码 |
| 无月费 | 完全免费,没有存储空间限制 |
| 端到端加密 | 数据传输全程 TLS 加密 |
| 跨平台 | Windows/macOS/Linux/Android/iOS |
| 增量同步 | 只同步变化的部分,节省带宽 |
| 版本控制 | 自动保留文件历史版本 |
| 冲突处理 | 自动检测冲突,保留两个版本供人工选择 |
总结:选择合适的方案 #
| 需求 | 推荐方案 | 理由 |
|---|---|---|
| 多设备同步 | Syncthing | P2P,无中心,免费 |
| 管理多个云存储 | Rclone | 70+ 存储统一管理 |
| 局域网快速传输 | LocalSend | AirDrop 替代,零配置 |
| 远程访问文件 | FileBrowser | Web UI,单二进制 |
| 永久存储 | IPFS | 内容寻址,去中心化 |
| 异地组网 | Tailscale | 打通 NAT,安全组网 |
一句话总结:
坚果云是”云同步”,Syncthing 是”设备同步”,IPFS 是”内容同步”。三者代表了三代存储范式。
数据应该存在你自己的设备上,按需共享,而不是存放在别人的服务器上等待被审查、被泄露、被关停。
参考资料:
- Syncthing GitHub: https://github.com/syncthing/syncthing
- Rclone GitHub: https://github.com/rclone/rclone
- LocalSend GitHub: https://github.com/localsend/localsend
- FileBrowser GitHub: https://github.com/filebrowser/filebrowser
- IPFS Kubo GitHub: https://github.com/ipfs/kubo