Skip to content
AI SI Daily
English

搜索全站

↑↓ 选择 · Enter 打开 · Esc 关闭

○ 工具介绍

Vaultwarden 概览与入门指南:轻量级密码管理服务端

本文介绍基于 Rust 构建的开源密码管理服务端 Vaultwarden,解析其核心功能、部署流程、运行门槛以及与官方服务的区别。

AI SI Daily 编辑部
这是一篇工具介绍:内容整理自官方网站、官方文档和 GitHub README,本站未对其做实测。功能和价格以官方页面为准,来源见文末。

是什么

Vaultwarden 是一款采用 Rust 语言编写的开源替代服务端,完全兼容 Bitwarden 客户端 API。该项目此前名为 Bitwarden_RS,自 1.21.0 版本起正式更名为 Vaultwarden。此次更名的主要目的是将其与官方服务端项目清晰区分开来,避免在商标与品牌形象上产生混淆。其源代码依据 GNU Affero 通用公共许可证第 3 版(AGPL-3.0)分发。

该软件提供凭据管理与同步的后端服务,同时保持了与 Bitwarden 官方各端客户端软件的兼容性,包括桌面端应用、移动端 App 以及浏览器扩展程序。根据项目 README 的说明,在运行官方服务端因资源消耗较大而不够理想的自建(Self-hosted)场景下,Vaultwarden 可作为一款轻量替代方案。

Vaultwarden 是一个独立项目,与 Bitwarden 或 Bitwarden, Inc. 没有任何关联。项目文档特别澄清,尽管有一名活跃的 Vaultwarden 维护者受雇于 Bitwarden,但该维护者仅以个人身份在业余时间独立参与贡献,其提交的代码同样需要经过其他项目维护者的审核。

由于 Vaultwarden 与上游官方服务完全独立维护,项目维护者明确要求用户切勿将使用咨询、缺陷反馈或崩溃报告提交至 Bitwarden 官方支持渠道。如有相关问题与建议,应直接通过 Vaultwarden 社区反馈,包括其 Issue 追踪器、GitHub Discussions、Discourse 论坛或 Matrix 聊天室。此外,项目文档明确指出,维护者对任何涉及密码或附件的数据丢失概不负责,并建议所有系统管理员对数据库和持久化文件建立日常定期备份机制。

能做什么

Vaultwarden 几乎完整实现了 Bitwarden 客户端 API,允许用户直接使用标准的 Bitwarden 官方客户端工具连接自建服务器。官方容器镜像中还直接内置了修改适配版的 Web Vault 网页端,开箱即可通过浏览器界面进行管理。

在个人凭据管理方面,Vaultwarden 支持个人密码库项目、安全凭据记录和文件附件。它还支持 Bitwarden Send 功能,用于安全发送文本片段和文档。用户可以配置网站图标获取服务,生成并管理用于开发任务的个人 API 密钥,以及配置紧急访问(Emergency Access)功能,以便受信任的联系人在满足特定条件时获得密码库内容的应急访问权限。

Vaultwarden 还集成了全面的多用户和组织管理功能。服务器管理员可以创建组织以实现密码协同共享。在组织内部,凭据可以划入集合(Collections)进行管理,集合相当于具备受控访问权限的共享文件夹。系统提供了基于角色的访问控制(RBAC)、用户组、管理员密码重置、记录系统操作的事件日志,以及用于维护全组织安全规范的策略执行功能。此外,组织还可以使用 Directory Connector 工具同步用户账号。

为保障用户账户安全,Vaultwarden 支持多种多因素身份验证(MFA,即两步登录)机制。用户可以使用基于时间的一次性密码(TOTP)的常见认证器应用、电子邮件验证码、基于硬件的 FIDO2 WebAuthn 密钥、YubiKey 实体设备或 Duo 安全服务来加固身份验证。

此外,该软件还配备了专属的 Vaultwarden 管理员后台(Admin Backend)。管理员可以通过该独立门户查看系统运行配置、审查当前生效的设置并进行服务器层面的管理控制。

怎么开始

安装和运行 Vaultwarden 最主要也是官方推荐的方式,是使用发布在 ghcr.io、docker.io 和 quay.io 等镜像仓库中的容器镜像。虽然用户也可以直接从源代码编译生成二进制文件,或安装第三方社区软件包,但项目文档提醒,社区软件包的更新可能会滞后于官方版本,或者改动了默认配置结构。

使用 Docker 命令行部署 Vaultwarden 时,需要将宿主机的一个持久化数据卷挂载到容器内的 /data/ 目录,以确保应用数据在重启后能够持续保存。项目文档提供了如下标准部署命令:

docker pull vaultwarden/server:latest
docker run --detach --name vaultwarden \
  --env DOMAIN="https://vw.domain.tld" \
  --volume /vw-data/:/data/ \
  --restart unless-stopped \
  --publish 127.0.0.1:8000:80 \
  vaultwarden/server:latest

使用 Podman 的管理员可以直接将上述命令中的 docker 替换为 podman,运行参数保持一致。宿主机存储路径 /vw-data/ 可以根据宿主机上的目录规划任意调整。

针对使用 Docker Compose 管理的环境,可以在 compose.yaml 文件中进行配置。项目文档提供了如下配置内容:

services:
  vaultwarden:
    image: vaultwarden/server:latest
    container_name: vaultwarden
    restart: unless-stopped
    environment:
      DOMAIN: "https://vw.domain.tld"
    volumes:
      - ./vw-data/:/data/
    ports:
      - 127.0.0.1:8000:80

网络安全和加密是部署环节中的强制要求。项目文档强调,内置的 Web Vault 网页端需要运行在 HTTPS 和安全上下文(Secure Context)中,才能与浏览器的 Web Crypto API 正常交互。如果不启用 HTTPS,网页端将无法正常工作。尽管 Vaultwarden 基于具备内置 TLS 支持的 Rocket Web 框架构建,项目维护者仍建议在应用前端部署反向代理,由反向代理统一负责证书管理、流量加密以及请求转发。

价格与门槛

Vaultwarden 是一款遵循 AGPL-3.0 许可证发布的开源软件。关于商业方案、付费订阅及企业级功能,具体定价与方案均以 Bitwarden 官方页面公布的内容为准。

运行 Vaultwarden 需要宿主机能够支持 Docker 或 Podman 等容器运行时环境,或者具备从源代码编译应用二进制程序的环境。宿主机必须分配足够的存储空间,以便在容器重启、重建等生命周期变动中完整保存应用数据库、配置文件和上传的附件。

网络配置方面,需要准备一个域名和有效的 HTTPS 环境。由于现代浏览器限制只能在安全上下文中使用 Web Crypto API,因此配置 HTTPS(按官方文档建议,最好通过反向代理管理)是保证 Web Vault 网页界面完整正常运行的必要前提。

适合谁

根据项目维护者的说明,Vaultwarden 主要面向自建(Self-hosting)服务群体,特别是个人、家庭以及小型组织。它非常适合那些希望拥有自主掌控的私有密码管理基础设施,同时又想在桌面端、移动端和 Web 浏览器中继续配合标准 Bitwarden 客户端软件使用的用户。

对于那些觉得官方服务资源开销较大、并不适合自身环境,从而希望寻找轻量级替代服务端的系统管理员来说,Vaultwarden 尤其合适。由于日常维护 Vaultwarden 需要操作容器软件、配置反向代理、管理域名并定期执行数据备份,因此它适合熟悉自建服务基础设施运维的用户。

替代品

Bitwarden 服务端提供了用于管理密码和组织数据的官方后端实现。

KeePassXC 项目则提供了专注于在本地存储和保护凭据的开源密码管理器。

来源

同类推荐