目 录CONTENT

文章目录

在 Docker 上自托管 Vaultwarden 密码管理服务

传家宝VPS
2025-07-29 / 0 评论 / 0 点赞 / 5 阅读 / 0 字
RackNerd Mobile Leaderboard Banner

在密码管理工具的「芸芸众生」之中,Bitwarden 是我最为青睐的一款。它不仅功能全面,采用开源架构,更重要的是支持在云主机或 HomeLab 等自托管环境中部署。通过自建服务器,你可以将密码和身份验证凭据牢牢掌握在自己的手中,再也不用担心敏感信息被服务提供商或第三方获取。

采用 Bitwarden 的混合架构后,你可以把核心密码保存在本地服务器,同时将其他数据同步到 Bitwarden 的云端服务,这样就同时兼顾了安全性和灵活性。

01. 什么是 Vaultwarden 服务?

尽管 Bitwarden 官方的服务器方案已经十分出色,但是比较吃硬件资源 😂。为此,GitHub 上的大拿 Dani Garcia 开发了 Vaultwarden,来作为 Bitwarden 的轻量级自托管替代方案。

Vaultwarden 采用了 Rust 编写,完全兼容 Bitwarden 客户端协议,支持通过 Docker 或 Podman 极速部署,几分钟内就能完成上线,极为便捷。尤其适合服务器资源有限、追求轻量化的用户。

我亲自入坑过 Bitwarden 和 Vaultwarden 的服务端方案。实测下来,Vaultwarden 的部署速度更快,功能也足够丰富,推荐你也上手一试。

那么,Vaultwarden 和 Bitwarden 之间有哪些具体差异呢?以下几点可以帮助你快速了解:

  • 安全性:都采用了端到端加密(E2EE)来保护「密码库」数据。不过,Vaultwarden 使用了一种名为 Crypton 的专有算法,类似于 Signal 的加密方案,一定程度上甚至比 Bitwarden 的 OpenPGP 端到端加密更加安全。

  • 用户界面:两者的界面风格相似,但不完全一致。Vaultwarden 的布局稍有不同,并且提供了内置密码管理器等额外功能,导航体验也略有区别。

  • 服务端实现:Vaultwarden 采用了去中心化的服务器架构,各用户的数据加密后会分散存储,仅在客户端解密。相比 Bitwarden 的传统客户端-服务器(C/S)模式,这种设计在数据安全性上更具优势。

作为 Bitwarden 的轻量级替代品,Vaultwarden 自然继承了它的诸多核心功能,例如:

  • 支持多设备同步。

  • 端到端加密保护。

  • 密码生成器:可以随机生成高强度密码、口令和用户名。

  • 安全分享:可以与他人安全共享敏感信息。

  • Android 和 iOS 移动端应用覆盖。

接下来,我将以 Docker 部署方式为例,简要介绍 Vaultwarden 的上线流程。

02. 安装 Docker 环境

Vaultwarden 服务通常需要在多设备间同步数据,并通过公网访问。因此,建议优先选择一台稳定的 Linux 服务器或 Windows Server,来作为 Docker 的部署环境。 虽然你也可以在桌面版的 Linux 或 Windows 上部署,但关机后服务不就掉线了么 🥲……

  • 主流 Linux 发行版:推荐使用 LinuxMirrors 提供的 Docker 一键部署脚本,适用于绝大多数主流发行版,使用起来也非常方便:

bash <(curl -sSL https://linuxmirrors.cn/docker.sh)

03. 部署 Vaultwarden 实例

Docker 环境准备就绪,现在就可以正式部署 Vaultwarden 了:

  1. 服务部署:执行以下命令,拉取 Vaultwarden 镜像并启动实例:

docker run --detach --name vaultwarden \
  --volume /vaultwarden/data/:/data/ \
  --restart unless-stopped \
  --publish 80:80 \
  vaultwarden/server:latest

记得将volume指定到本地一个实际存在的数据存放位置。另外,虽然 Vaultwarden 也支持直接启用 HTTPS,但为了便于长期维护,我更推荐使用 Nginx 反代来提供 HTTPS 服务。

  1. 状态检查:稍等片刻,容器会自动拉起。你也可以通过以下命令查看运行状态:

docker ps -a

在列表中看到状态为healthy就表示部署成功,可以进入下一步操作。

  1. 反向代理:在服务器上装一个你喜欢的反代服务,比如 Nginx 或 Caddy,然后再去 Vaultwarden 官方提供的反代配置示例中,Kiang 一个过来使用。例如:

器上装一个你喜欢的反代服务,比如 Nginx 或 Caddy,然后再去 Vaultwarden 官方提供的反代配置示例中,Kiang 一个过来使用。例如:

upstream vaultwarden-default {
    zone vaultwarden-default 64k;
    server 192.168.100.4:3210;
    keepalive 2;
}
map $http_upgrade $connection_upgrade {
    default upgrade;
    '' "";
}
server {
    listen 80;
    server_name vaultwarden.demo.com;
    return 301 https://$server_name$request_uri;
}
server {
    listen 443 ssl;
    listen 443 quic;
    http2 on;
    server_name vaultwarden.demo.com;
    ssl_certificate /root/.acme.sh/XXX/fullchain.cer;
    ssl_certificate_key /root/.acme.sh/XXX/osgeek.link.key;
    add_header Alt-Svc 'h3=":443"; ma=86400';
    add_header Strict-Transport-Security "max-age=31536000" always;
    client_max_body_size 525M;
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection $connection_upgrade;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Proto $scheme;
    location / {
        proxy_pass http://vaultwarden-default;
    }
}
  1. 公网发布:如果你使用的是云主机,记得开启防火墙;如果是 HomeLab 环境部署,则需要自行发布公网访问。这部分内容本文不做详细展开。

04. 访问 Vaultwarden 服务

  1. 在电脑上打开浏览器,访问http://SERVER打开 Vaultwarden 的登录页面,SERVER需要替换为实际的服务器域名或 IP 地址。

  2. 点击「创建账户」,按照提示填写相关信息并完成新用户注册。

  1. 登录管理界面后,根据需求完成初始设置。例如,从其他平台导入密码库,或者手动录入各类密码条目。

  1. 在桌面应用、移动端应用或浏览器的 Bitwarden 插件中,选择「自托管」服务,然后填入「服务器 URL」连接到本地 Vaultwarden 实例。

05、总结

通过本次实践,我们成功使用Docker部署了vaultwarden开源工作管理工具,并配置了Nginx作为反向代理来增强访问的安全性和灵活性。过程中不仅加深了对Docker容器化部署和管理的理解,也实践了如何为Web服务配置HTTPS访问,提升了项目的实战能力。此外,这次部署也为后续类似项目提供了一个可借鉴的模板,特别是在安全和效率方面提供了宝贵的经验。

广告 广告
博主关闭了所有页面的评论