NodeWarden:零成本自建密码管理服务的终极方案
前言
各位试想这么一个问题:你有多少个网络账户?50个?100个?还是像我一样超过600个?每个账户都需要密码,而这些密码你都是怎么管理的?
如果你和大多数人一样,答案可能是”浏览器帮我记”。Chrome、Edge、Safari——现代浏览器都提供了密码保存功能,看起来很方便,对吧?但这个”方便”背后,藏着多少安全隐患?今天这篇文章,我要和大家聊聊密码管理这件事,以及一个让我眼前一亮的开源项目:NodeWarden。
浏览器密码管理器的安全陷阱
看起来很美
现代浏览器的密码保存功能确实很方便:
- 自动保存密码,无需记忆
- 跨设备同步
- 自动填充表单
- 完全免费
听起来很美好?但当我深入研究这个问题后,发现事情并没有那么简单。
真正的风险
Reddit 上有一个帖子引发了热烈讨论。一位用户分享了他的经历:他在 Chrome 中保存了 600 多个账号密码,并且开启了跨设备同步。然后他听说有人因为 Chrome 被黑客入侵,丢失了所有加密货币存款——即使开启了 2FA,黑客仍然能够修改密码并阻止原主人访问。
这听起来像是危言耸听,但技术上来说,这完全是可能的。原因如下:
1. 浏览器的安全边界有限
浏览器的密码存储本质上是一个本地数据库文件。在 Chrome 中,这个数据库使用操作系统的凭据管理器加密,但问题在于:只要你登录了系统,Chrome 就能解密这些密码。这意味着任何能够访问你系统的恶意软件,理论上都能导出你保存的所有密码。
2. 同步功能的双刃剑
跨设备同步意味着你的密码存储在云端。虽然 Google、Microsoft 等厂商都声称使用了强加密,但密钥管理权在他们手中,而非你手中。一旦账号被盗,所有同步的密码都会暴露。
3. 无法保护桌面和移动应用
这是浏览器密码管理器的一个根本性缺陷:它只能在浏览器中使用。你电脑上安装的 Steam、微信、各种开发工具,手机上的 App——这些应用的密码,浏览器完全无法自动填充。结果就是:你还得手动输入密码,或者干脆用同样的密码。
被迫的选择
正是因为这些问题,专业的密码管理器应运而生:1Password、Bitwarden、LastPass……它们提供了更强的安全性、跨平台支持、以及更丰富的功能。但这些服务要么收费,要么免费版功能受限,对于我们这种垃圾佬来说,总感觉差点意思。
Passkey 与 TOTP:现代认证的正确打开方式
在聊密码管理器之前,有必要先介绍两个现代认证技术:Passkey 和 TOTP。这两个技术正在改变我们保护账户安全的方式。
Passkey:密码的终结者
Passkey(通行密钥)是一种基于 FIDO2/WebAuthn 标准的无密码认证技术。它的核心思想是:用密钥对代替密码。
工作原理:
- 注册时,设备生成一对密钥:私钥保存在本地,公钥发送给服务器
- 登录时,服务器发送一个挑战,设备用私钥签名,服务器用公钥验证
- 整个过程,密码从未在网络中传输
为什么更安全?
- 抗钓鱼:Passkey 与域名绑定,钓鱼网站无法伪造
- 不可重放:每次签名都不同,无法被截获重用
- 无需记忆:生物识别(指纹、Face ID)即可完成认证
主流平台支持:
几乎所有科技巨头都已经支持 Passkey:Google、Microsoft、Apple、GitHub、Cloudflare、Amazon……这已经是一个成熟的标准。
TOTP:你一直在用的双因素认证
TOTP(Time-based One-Time Password,基于时间的一次性密码)是大多数”验证器 App”使用的技术。它的工作原理是基于共享密钥和当前时间,生成一个 6 位数字验证码。
为什么比短信验证码更好?
- 不依赖网络:离线也能生成
- 无法被拦截:短信可以被伪基站拦截,TOTP 不能
- 标准化:所有验证器 App 都兼容
浏览器的又一块短板
Passkey 和 TOTP 这两个技术,现代浏览器都无法很好地支持:
- Chrome 的 Passkey 支持仅限于 Google 账号同步的 Passkey,无法跨平台使用
- TOTP 功能在 Chrome 中完全不存在
而专业的密码管理器(如 Bitwarden、1Password)则完整支持这两种技术,并且可以跨平台自动填充。这进一步凸显了浏览器密码管理器的局限性。
Bitwarden 与 Vaultwarden:开源的力量
说到密码管理器,Bitwarden 是一个绕不开的名字。
为什么是 Bitwarden?
Bitwarden 是一个开源的密码管理器,它的优势在于:
- 完全开源:代码公开,安全可审计
- 跨平台:Windows、macOS、Linux、iOS、Android、浏览器扩展
- 功能完整:密码存储、TOTP、Passkey、文件附件、安全笔记
- 端到端加密:只有你能解密你的数据
但问题来了:Bitwarden 的官方服务是收费的。个人高级版每年 $10,家庭版每年 $40。对于企业用户来说,这个价格不算什么,但对于我们这种垃圾佬,有没有更好的方案?
Vaultwarden:Bitwarden 的开源替代
Vaultwarden(原名 Bitwarden_RS)是一个用 Rust 编写的非官方 Bitwarden 服务器实现。简单来说,它让你可以搭建自己的 Bitwarden 服务,完全免费地使用 Bitwarden 的高级功能。
它能做什么?
| 功能 | 支持 |
|---|---|
| 个人密码库 | ✅ |
| Send 安全分享 | ✅ |
| 文件附件 | ✅ |
| 网站图标 | ✅ |
| 组织/团队 | ✅ |
| 多因素认证 | ✅ |
| 紧急访问 | ✅ |
几乎所有 Bitwarden 的付费功能,Vaultwarden 都支持。而且因为它兼容 Bitwarden 的 API,你可以直接使用 Bitwarden 的官方客户端。
自建服务的痛点
听起来很完美?但 Vaultwarden 有一个根本性的问题:你需要自己部署和维护。
这意味着:
- 需要一个服务器:VPS、NAS、或者家里的 Homelab
- 需要保证数据安全:定期备份、防止数据丢失
- 需要保证服务可用:7x24 小时运行,网络稳定
- 需要安全配置:HTTPS、防火墙、安全更新
对于技术宅来说,这些都不是问题。但对于普通用户,这简直是一场噩梦。更重要的是,如果你的服务器挂了、数据丢了、被黑了——你的所有密码都没了。这种风险,不是每个人都愿意承担的。
所以问题变成了:有没有一种方案,既能享受自建服务的自由,又不用承担服务器运维的负担?
Cloudflare:赛博菩萨的免费午餐
答案就在 Cloudflare。这家公司被很多人戏称为”赛博菩萨”,因为它提供了大量免费的优质服务。
Workers:无服务器计算平台
Cloudflare Workers 是一个无服务器计算平台。简单来说,你只需要写代码,不需要管服务器——代码会在 Cloudflare 的全球边缘网络上运行。
免费额度:
- 每月 100,000 次请求
- 每次请求 10ms CPU 时间
- 无限构建分钟(3000 分钟/月)
对于个人密码管理这种场景,完全足够了。
D1:SQLite 数据库
D1 是 Cloudflare 提供的 SQLite 数据库服务,专为 Workers 设计。
免费额度:
| 资源 | 免费额度 |
|---|---|
| 存储 | 5 GB |
| 行读取 | 500 万行/天 |
| 行写入 | 10 万行/天 |
密码数据主要是文本,体积很小。我自己的密码库(600+ 条记录)导出后只有几百 KB,5 GB 的存储空间绰绰有余。
R2:对象存储
R2 是 Cloudflare 的对象存储服务,兼容 S3 API。
免费额度:
| 资源 | 免费额度 |
|---|---|
| 存储 | 10 GB |
| A 类操作 | 100 万次/月 |
| B 类操作 | 1000 万次/月 |
| 流量 | 无限制 |
最关键的是:流量免费。这意味着你可以无限次地上传下载附件,不用担心流量费用。
为什么说这是完美的解决方案?
如果把 Vaultwarden 部署到 Cloudflare 上,我们就能获得:
- 零成本:免费额度完全够用
- 高可用:Cloudflare 的全球网络,99.99%+ 的可用性
- 零运维:不需要管服务器、不需要备份、不需要安全更新
- 数据安全:Cloudflare 的安全级别,比你自己搭的服务器靠谱多了
问题是:Vaultwarden 能跑在 Cloudflare Workers 上吗?
NodeWarden:应运而生的解决方案
这就是本文的主角登场的时候了。
NodeWarden 是一个运行在 Cloudflare Workers 上的 Bitwarden 第三方服务端。它兼容官方 Bitwarden 客户端,让你可以免费、零运维地使用自己的密码管理服务。
它能做什么?
| 功能 | Bitwarden | NodeWarden | 说明 |
|---|---|---|---|
| Web Vault | ✅ | ✅ | 网页端密码库管理 |
| 文件夹/收藏 | ✅ | ✅ | 常用管理能力 |
| 全量同步 | ✅ | ✅ | 已做兼容与性能优化 |
| 附件上传/下载 | ✅ | ✅ | R2 和 KV 二选一 |
| 导入导出 | ✅ | ✅ | 完整实现,含密码库+附件 ZIP 导入 |
| 网站图标代理 | ✅ | ✅ | 自动获取网站图标 |
| Passkey、TOTP | ✅ | ✅ | 完全支持,无需高级版 |
| Send | ✅ | ✅ | 安全分享功能 |
| 多用户 | ✅ | ✅ | 完整的用户管理,邀请机制 |
客户端支持:
- ✅ Windows 客户端
- ✅ 手机 App(iOS/Android)
- ✅ 浏览器扩展(Chrome/Firefox/Edge/Safari)
- ✅ Linux 客户端
- ⬜ macOS 客户端(未测试,理论上可用)
部署有多简单?
只需要几步:
-
Fork 仓库
打开 NodeWarden 的 GitHub 仓库,点击右上角的 Fork。如果这个项目对你有帮助,顺便点个 Star。
-
部署到 Cloudflare
- 打开 Cloudflare Workers 控制台
- 选择 “Continue with GitHub”
- 选择你 Fork 后的 NodeWarden 仓库
- 点击下一步,默认使用 R2 存储
- 如果没有开通 R2(需要绑卡),可以切换为 KV 存储
- 点击部署
-
完成!
几分钟后,你的密码管理服务就上线了。Cloudflare 会给你一个
.workers.dev域名,你也可以绑定自己的域名。
存储方式对比:
| 存储 | 是否需绑卡 | 单个附件上限 | 免费额度 |
|---|---|---|---|
| R2 | 需要 | 100 MB | 10 GB |
| KV | 不需要 | 25 MB | 1 GB |
如果你有信用卡,推荐使用 R2;如果没有,KV 也够用了。
CLI 部署方式(适合开发者)
如果你习惯命令行,也可以这样部署:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# 克隆仓库
git clone https://github.com/shuaiplus/NodeWarden.git
cd NodeWarden
# 安装依赖
npm install
# Cloudflare CLI 登录
npx wrangler login
# 部署(R2 模式)
npm run deploy
# 或部署(KV 模式,无需信用卡)
npm run deploy:kv
多用户支持
NodeWarden 支持多用户使用。第一个注册的用户会自动成为管理员,管理员可以在管理页面生成邀请码,其他用户凭邀请码注册。这意味着你可以和家人、朋友共享这个服务。
数据备份
虽然 Cloudflare 的可靠性极高,但数据安全始终是第一位的。NodeWarden 支持在客户端中导出密码库,保存为 JSON 文件。建议定期导出备份,以防万一。
支持的导入格式:
- Bitwarden json/csv
- 密码库+附件 zip
- NodeWarden 密码库+附件 json(含加密模式)
还支持直接导入 Bitwarden 密码库+附件 zip,这条路径官方 Bitwarden Web 暂不支持。
为什么说 NodeWarden 是目前唯一的选择?
让我来算一笔账:
方案一:使用 1Password
- 个人版:$2.99/月 = $35.88/年
- 家庭版:$4.99/月(最多 5 人)= $59.88/年
方案二:使用 Bitwarden 官方
- 个人高级版:$10/年
- 家庭版:$40/年
方案三:自建 Vaultwarden
- VPS 费用:$24-100+/年
- 域名费用:$10/年
- 时间成本:无法估量
- 风险成本:数据丢失的可能性
方案四:NodeWarden
- 费用:$0
- 运维成本:0
- 可靠性:Cloudflare 级别
对于我们这种垃圾佬来说,选择显而易见。NodeWarden 是目前唯一一个能够实现零成本、零运维、高可用的自建密码管理方案。
更重要的是,NodeWarden 是完全开源的。代码公开,安全可审计,不用担心后门。结合 Cloudflare 的全球网络和安全能力,你的密码数据比放在任何自建服务器上都要安全。
一些注意事项
在结束之前,有几点需要提醒各位:
-
主密码很重要
NodeWarden 使用端到端加密,只有你持有的主密码能解密数据。如果忘记主密码,无法恢复。请务必妥善保管。
-
定期备份
虽然 Cloudflare 很可靠,但数据安全无小事。建议定期在客户端导出密码库备份。
-
免责声明
NodeWarden 是第三方实现,与 Bitwarden 官方无关。如遇问题,请在 GitHub Issues 反馈,不要骚扰 Bitwarden 官方支持。
-
数据归属
你的数据存储在 Cloudflare 的服务器上。虽然 Cloudflare 是一家值得信赖的公司,但如果你对数据主权有极高要求,可能需要考虑其他方案。
总结
密码管理这件事,说大不大,说小不小。但它关乎你的数字生活安全,值得认真对待。
浏览器的密码保存功能虽然方便,但安全性和功能性都有明显短板。专业的密码管理器如 Bitwarden 提供了更好的解决方案,但官方服务需要付费。Vaultwarden 让我们可以免费自建,但运维成本和数据风险让很多人望而却步。
NodeWarden 的出现,完美解决了这些问题。它利用 Cloudflare 的免费服务,实现了零成本、零运维、高可用的自建密码管理方案。对于追求性价比的垃圾佬来说,这是目前最好的选择。
最后,感谢 shuaiplus 开发出这么棒的项目并开源分享。如果这个项目对你有帮助,别忘了去 GitHub 点个 Star。
数据安全无价,但保护它不一定需要花钱。NodeWarden 让我们垃圾佬也能用上企业级的密码管理服务,我就问你 NB 不 NB?



