分类:科技 标签:开源项目、NAS、密码管理、自托管


随着主流密码管理方案不断调整订阅价格,寻找更具性价比且数据完全可控的替代方案成为了许多数码爱好者的共同诉求。面对 1Password 的高昂订阅、LastPass 频繁的安全丑闻,以及 KeePass 碎片化的跨平台体验,利用手边的 NAS 自建密码管理系统成为了折腾党们的优选。本文将分享如何通过 Vaultwarden 后端搭配 Keyguard 客户端,打造一套私密、轻量且体验出色的自托管密码管理方案。

为什么选择 Vaultwarden

Vaultwarden 是一个由社区维护的非官方开源 Bitwarden 后端服务。相较于官方基于 .NET 且较为笨重的自托管后端,Vaultwarden 镜像极其轻巧,常驻内存通常仅需数十兆。它不仅核心功能完备,还能直接从后端解锁 TOTP 管理、多人共享等高级功能,非常适合个人及小微团队自建。

NAS 部署实战

对于拥有 24 小时开机 NAS 的用户来说,使用 Docker 部署 Vaultwarden 是最便捷的方案。

部署注意事项

  1. 镜像选择:拉取 vaultwarden/server 的 latest 标签,后续更新只需重新拉取镜像。
  2. 持久化存储:务必将容器内的 /data 目录映射到 NAS 的实体文件夹,便于日后手动备份或整体迁移。
  3. 端口配置:建议使用 bridge 网络,将容器内的 80 端口映射为 NAS 主机上的其他自定义端口(例如 8808:80),避免端口冲突。
  4. 关闭开放注册:部署成功并注册好自己的账号后,必须立即在环境变量中将 SIGNUPS_ALLOWED 设置为 false,防止外人通过脚本或误触注册账号。

解决 HTTPS 与公网访问难题

现代浏览器的“安全上下文”策略强制要求密码管理器网页端所依赖的 Web Crypto API 必须在可信网络(如 HTTPS)中才能被调用。如果在非本地网络直接通过 HTTP IP 地址访问,Vaultwarden 会直接拒绝调用。

如果你身处国内运营商的宽带大内网,配置传统反向代理较为繁琐,推荐使用 Cloudflare Tunnel 隧道功能:

  1. 登录 Cloudflare 控制台,进入 Zero Trust 中的网络连接器,创建隧道并根据指引安装 cloudflared 客户端。
  2. 绑定你自己的独立域名(推荐购买一个便宜域名并托管至 Cloudflare),将内网的 Vaultwarden 服务安全地映射出去。
  3. 这样不仅能免费获取 SSL/TLS 证书解决 HTTPS 问题,还能顺带享受 DDoS 防护等安全能力,实现随时随地跨设备同步。

客户端选择:告别官方客户端的“移植感”

虽然浏览器端可以使用官方的 Bitwarden 插件,但在移动端,官方 App 往往存在自动填充抓取失败或解锁无响应等痛点。此时,开源的第三方前端客户端 Keyguard 成了更好的选择。

  • 优秀的多平台体验:Keyguard 支持 Windows、macOS、Linux、Android 及 Wear OS,其 UI 设计与交互逻辑比官方客户端更为精致。
  • 支持通行密钥迁移:Keyguard 允许用户从其他密码服务中直接迁移通行密钥,免去了繁琐的重新配置流程。
  • 原生自动填充与本地兜底:Keyguard 可以完美接管 Android 系统的第三方自动填充服务,且即便因为网络波动无法连接自建数据库,其稳健的密码库本地保存功能也能保证基础使用。

写在最后

自己动手搭建一套私有服务,不仅能摆脱商业成品的订阅束缚,更能让敏感数据完全掌握在自己手中。从前期的 Docker 部署、内网穿透,到后期的客户端调优,整个过程虽然需要一点折腾成本,但跑通链路后带来的掌控感与自由度,绝对是数码极客们乐此不疲的乐趣所在。