分类:开源 标签:自托管、NAS、密码管理、开源项目
面对主流密码管理器不断上涨的订阅费用、隐私安全隐患以及功能限制,越来越多的人开始寻找更具自主掌控力的替代方案。如果你手头刚好有一台 24 小时开机的 NAS,那么利用开源社区的力量自建一套密码管理系统,不仅能省下一笔订阅费,还能让数据彻底掌握在自己手中。
本文将分享如何通过 Vaultwarden 后端搭配现代化客户端 Keyguard,打造一套高效、安全且完全属于你自己的密码管理体系。
为什么选择 Vaultwarden
市面上的商业密码管理方案各有痛点:1Password 价格高昂,LastPass 安全事故频出,KeePass 跨平台体验碎片化,而官方 Bitwarden 的免费版在部分功能上又有所限制。
此时,Vaultwarden(一个由社区维护的非官方开源 Bitwarden 后端服务)成为了不二之选。
- 轻量高效:采用 Rust 编写,Docker 镜像极其小巧,常驻内存通常不过百兆。
- 功能完备:直接从后端解锁了 TOTP 管理、多人共享等官方需要付费的高级功能。
- 完美兼容:完美支持官方的 Bitwarden 浏览器插件及各类生态客户端。
NAS 部署实战指南
对于成品 NAS 而言,使用 Docker 部署 Vaultwarden 是最省心的方式。以下是部署过程中的几个核心要点:
- 镜像与目录映射:使用
vaultwarden/server镜像,并务必将容器内的/data目录映射到 NAS 实体文件夹中,方便后续进行手动备份或迁移。 - 端口配置:容器默认使用 80 端口,建议修改环境变量中的
ROCKET_PORT或通过 bridge 网络映射至 NAS 宿主机的其他自定义端口,避免端口冲突。 - HTTPS 强制要求:现代浏览器的「安全上下文」策略规定,密码管理器依赖的加密接口必须在可信网络中调用。因此,局域网 HTTP 访问会触发拒绝警告,我们必须为其配置 HTTPS。
通过 Cloudflare Tunnel 实现优雅的公网访问
如果不想折腾复杂的反向代理和内网穿透,推荐使用 Cloudflare Tunnel。它能将内网服务安全地映射到外网,顺手解决 SSL/TLS 证书问题,还能提供免费的 DDoS 防护。
- 在 Cloudflare 控制台的 Zero Trust 中创建隧道。
- 在 NAS 或路由器上部署
cloudflared客户端。 - 将 Vaultwarden 服务绑定到你自己的域名(建议购买一个便宜域名托管至 Cloudflare),即可通过稳定的 HTTPS 链接随时随地访问密码库。
安全加固与权限管理
密码库一旦能够通过公网访问,安全防护就成了重中之重:
- 关闭公开注册:创建好自己的账号后,需立即在环境变量中将
SIGNUPS_ALLOWED设置为false并重新部署,防止外人通过脚本扫描或误触注册账号。 - 关闭管理后台:管理后台(
/admin)掌控着整个数据库。在配置完成后,建议彻底删掉ADMIN_TOKEN字段,关闭后台访问功能。 - 开启两步验证:为你的主账号配置 TOTP、通行密钥或硬件安全密匙等 2FA 登录验证,并妥善保管紧急恢复代码。
客户端与密码迁移
密码平滑迁移
登录网页端后台后,进入「工具」->「导入」,Vaultwarden 支持市面上绝大多数主流密码管理器(如 1Password、Enpass 等)的 JSON 数据格式解析。建议在确认所有登录凭证完美迁移前,保留原工具一段时间。
告别臃肿:使用 Keyguard 提升移动端体验
虽然浏览器端可以使用官方的 Bitwarden 插件,但官方移动端 App 的体验在近年来略显繁琐。这里推荐使用开源且颜值极高的第三方客户端 Keyguard:
- 现代化 UI:支持 Windows、macOS、Linux、Android 以及 Wear OS,交互和动画效果极为出色。
- 原生通行密钥支持:支持从其他应用或服务中直接迁移通行密钥,免去繁琐的重新配置流程。
- 强大的自动填充:完美接管 Android 系统的第三方自动填充服务,且具备优秀的本地密码库缓存能力,即使云端网络波动也丝毫不影响正常使用。
写在最后
自建密码管理服务听起来门槛颇高,但只要完整跑通一次容器部署、HTTPS 映射和客户端连接的链路,你会发现这不仅是一个省钱的方案,更能带来极强的掌控感与成就感。如果你也想摆脱商业订阅的束缚,不妨花个把小时尝试一下这套自托管组合。