Vaultwarden 部署与使用指南

一个轻量、安全、自托管的密码管理解决方案


##项目简介

VaultwardenBitwarden 的非官方 Rust 重写版服务端,与 Bitwarden 官方客户端 100% 兼容,但资源占用极低,适合个人、家庭及小型团队自托管部署。

特性 说明
轻量级 仅需 ~50MB 内存,树莓派或 256MB VPS 即可流畅运行
完全开源 服务端与客户端代码完全开源,可审计
兼容性强 支持所有 Bitwarden 官方客户端(浏览器插件、手机 App、桌面端)
功能丰富 支持 TOTP、YubiKey、通行密钥(Passkeys)、组织共享等高级功能
零成本 完全免费,解锁官方版需付费的组织/共享功能

系统要求

资源 最低要求
CPU 任意现代处理器
内存 50MB+
存储 100MB+(数据量取决于密码条目数量)
网络 可选公网访问,内网部署亦可

Docker 部署

快速启动(测试用)

docker run -d --name vaultwarden \
  -v vaultwarden-data:/data \
  -p 8080:80 \
  -e ADMIN_TOKEN="zws@123!vaultwarden" \
  --restart unless-stopped \
  vaultwarden/server:latest

访问 http://localhost:8080 即可使用。

生产级部署(推荐)

创建 docker-compose.yml

version: '3'

services:
  vaultwarden:
    image: vaultwarden/server:latest
    container_name: vaultwarden
    restart: unless-stopped
    environment:
      WEBSOCKET_ENABLED: "true"          # 启用实时同步
      SIGNUPS_ALLOWED: "true"            # 允许注册(注册完成后建议改为 false)
      ADMIN_TOKEN: "$argon2id$v=19$m=65536,t=3,p=4$..."  # Argon2 PHC 格式的管理员令牌
      SMTP_HOST: "smtp.qq.com"           # SMTP 邮件服务器(可选,用于密码找回)
      SMTP_FROM: "your-email@qq.com"
      SMTP_PORT: "587"
      SMTP_SECURITY: "starttls"
      SMTP_USERNAME: "your-email@qq.com"
      SMTP_PASSWORD: "your-auth-code"    # QQ 邮箱填写授权码,非密码
    volumes:
      - vaultwarden-data:/data
    ports:
      - "127.0.0.1:8080:80"              # 仅本地监听,通过反向代理暴露

volumes:
  vaultwarden-data:

启动:

docker compose up -d
docker logs -f vaultwarden

生成安全的 ADMIN_TOKEN

切勿使用明文密码! 使用 Argon2 PHC 字符串:

# 在 Vaultwarden 容器内生成
docker run --rm -it vaultwarden/server:latest vaultwarden hash

# 或使用 argon2 工具
echo -n "你的强密码" | argon2 "$(openssl rand -hex 16)" -id -t 3 -m 16 -p 4 -l 32 -e

将生成的字符串填入 ADMIN_TOKEN


客户端配置

安卓客户端下载

从 Bitwarden GitHub Releases 下载:

  • 官方标准版com.x8bit.bitwarden.apk(60.5 MB)
  • F-Droid 纯净版com.x8bit.bitwarden-fdroid.apk(66.9 MB,无 Google 服务)
  • 校验文件bw-android-apk-sha256.txt

下载地址:https://github.com/bitwarden/mobile/releases

连接自托管服务端

  1. 打开 Bitwarden App → 登录页面点击设置齿轮
  2. 选择自托管环境
  3. 输入你的 Vaultwarden 地址:https://vault.yourdomain.com
  4. 使用注册的账号密码登录

安卓自动填充设置

系统级自动填充(Android 8+):

手机设置 → 密码与安全/系统 → 自动填充服务 → 选择 Bitwarden

品牌差异:

  • 小米/红米:设置 → 密码与安全 → 智能密码管理
  • 华为:设置 → 系统和更新 → 语言和输入法 → 自动填充服务
  • OPPO/vivo:设置 → 其他设置 → 键盘与输入法 → 自动填充
  • 三星:设置 → 常规管理 → 语言和输入 → 自动填充服务

辅助功能模式(兼容性更好):

Bitwarden App → 设置 → 自动填充 → 使用自动填充辅助功能 → 开启


安全设置

两步验证(2FA)

Web 端 → 设置 → 安全 → 两步登录 → 启用

支持方式:

  • 验证器应用(Google Authenticator、Aegis 等)
  • YubiKey / FIDO2 安全密钥
  • 邮件验证
  • Duo Security

⚠️ 务必保存恢复代码! 丢失 2FA 设备且无恢复代码 = 账户永久锁定。

紧急访问

设置 → 安全 → 紧急访问 → 指定信任联系人

  • 设置等待期(如 7 天)
  • 紧急情况下联系人可申请接管账户

URI 匹配检测

编辑密码条目 → URI 设置 → 选择匹配模式:

模式 说明 示例
Base domain 默认推荐,匹配主域名及子域名 login.example.com 匹配 example.com
Host 完整主机名匹配 仅匹配 login.example.com
Starts with 路径开头匹配 example.com/admin 匹配 example.com/admin/login
Regular expression 正则匹配 高级用户自定义规则
Never 永不自动填充 手动选择填充

邮件配置(QQ 邮箱示例)

字段
Host smtp.qq.com
Secure SMTP starttls(或 force_tls
Port 587(starttls)或 465(SSL)
From Address qq@qq.com"">`your-qq@qq.com`
Username qq@qq.com"">`your-qq@qq.com`
Password QQ 邮箱授权码(非 QQ 密码)

获取授权码

  1. 登录 QQ 邮箱 → 设置 → 账户
  2. 开启 SMTP 服务 → 发送短信验证
  3. 获得 16 位授权码,填入 Password 字段

备份策略

# 定时备份脚本(加入 crontab)
tar czf /backup/vaultwarden-$(date +%Y%m%d).tar.gz /path/to/vaultwarden/data

数据库为单个 SQLite 文件(data/db.sqlite3),备份简单:

  1. 停止容器或确保无写入
  2. 复制 data/ 目录
  3. 加密后备份到异地存储

常见问题

问题 解决
No persistent volume! 错误 必须使用命名卷或绑定卷挂载 /data
Insecure URL not allowed 客户端强制 HTTPS,配置 SSL 证书
容器反复重启 查看 docker logs vaultwarden,通常是权限或端口占用
安卓无法自动填充 开启自动填充服务或辅助功能权限
邮件发送失败 检查 SMTP 配置,确认使用授权码而非密码

提示:注册完成后,建议将 SIGNUPS_ALLOWED 设为 false 关闭公开注册,防止未授权用户创建账户。

作者:zws  创建时间:2026-05-04 12:17
最后编辑:zws  更新时间:2026-05-04 12:32
上一篇:
下一篇: