Vaultwarden:开源轻量的1Password替代,自托管密码管理方案
背景
在互联网时代,密码安全是每个人都面临的问题:
- 密码太多记不住,不同平台用同一个密码又不安全
- 各大密码泄露事件频发:LastPass 多次被黑、Twitter 密码明文存储
- 商业密码管理器要么收费,要么数据存储在第三方
- 想找一个免费、开源、可以自托管的解决方案
今天介绍一款开源的密码管理服务器——Vaultwarden,它是 Bitwarden 的轻量级替代,在 GitHub 上已获得 40K+ Star。
什么是 Vaultwarden?
Vaultwarden 是一个用 Rust 编写的 Bitwarden 客户端 API 的替代服务器实现,兼容官方 Bitwarden 客户端。
核心理念: "Lightweight Bitwarden server, written in Rust"——用 Rust 编写的轻量级 Bitwarden 服务器。
核心特性:
| 特性 | 说明 |
|---|---|
| 完整 API 兼容 | 兼容 Bitwarden 全平台客户端 |
| 开源免费 | MIT 许可证,完全免费 |
| 轻量高效 | Rust 编写,资源占用极低 |
| 自托管 | 数据完全自主,支持 Docker 部署 |
| TOTP 支持 | 内置两步验证器功能 |
| 组织共享 | 支持团队密码共享 |
| 多因素认证 | Email、FIDO2、YubiKey、Duo |
GitHub 地址: github.com/dani-garcia…
Vaultwarden vs Bitwarden vs 1Password
| 对比项 | Vaultwarden | Bitwarden | 1Password |
|---|---|---|---|
| 价格 | 免费 | 免费/付费 | $36/年 |
| 开源 | ✅ 完全开源 | ✅ 客户端开源 | ❌ 闭源 |
| 自托管 | ✅ 完全支持 | ✅ 付费版 | ❌ 不支持 |
| 资源占用 | ~50MB 内存 | ~500MB 内存 | 云服务 |
| 部署难度 | 简单 | 复杂 | 不适用 |
| TOTP | ✅ 支持 | ✅ 支持 | ✅ 支持 |
| 密码共享 | ✅ 支持 | ✅ 支持 | ✅ 支持 |
Vaultwarden 的独特优势:
- 资源占用极低(最低 50MB 内存)
- 完全兼容官方 Bitwarden 客户端
- 自托管数据完全自主
- 支持几乎所有 Bitwarden 高级功能
快速上手
方式一:Docker 部署(推荐)
# 创建目录
mkdir -p /opt/vaultwarden && cd /opt/vaultwarden
# 创建 docker-compose.yml
cat > docker-compose.yml << 'EOF'
version: '3.8'
services:
vaultwarden:
image: vaultwarden/server:latest
container_name: vaultwarden
restart: unless-stopped
environment:
DOMAIN: "https://vw.yourdomain.com"
SIGNUPS_ALLOWED: "true"
WEB_VAULT_ENABLED: "true"
volumes:
- ./vw-data:/data
ports:
- "127.0.0.1:8080:80"
volumes:
vw-data:
EOF
# 启动服务
docker compose up -d
# 访问 Web Vault
# http://localhost:8080
方式二:Docker 命令直接启动
docker run -d \
--name vaultwarden \
--restart unless-stopped \
-e DOMAIN="https://vw.yourdomain.com" \
-e SIGNUPS_ALLOWED="true" \
-v /opt/vw-data:/data \
-p 127.0.0.1:8080:80 \
vaultwarden/server:latest
方式三:非 Docker 安装
Ubuntu/Debian:
# 添加仓库并安装
curl -fsSL https://pgp.mit.edu/pks/lookup?op=get&search=0x6E385E2D5C6D3F0B | gpg --dearmor | sudo tee /usr/share/keyrings/vaultwarden-archive-keyring.gpg > /dev/null
echo "deb [signed-by=/usr/share/keyrings/vaultwarden-archive-keyring.gpg] https://apt.vaultwarden.org stable main" | sudo tee /etc/apt/sources.list.d/vaultwarden.list
sudo apt update && sudo apt install vaultwarden
添加 HTTPS(推荐)
Vaultwarden 需要 HTTPS 才能正常使用 Web Vault。建议使用反向代理:
Nginx 配置
server {
listen 80;
server_name vw.yourdomain.com;
return 301 https://$server_name$request_uri;
}
server {
listen 443 ssl http2;
server_name vw.yourdomain.com;
ssl_certificate /path/to/cert.pem;
ssl_certificate_key /path/to/key.pem;
client_max_body_size 128M;
location / {
proxy_pass http://127.0.0.1:8080;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header 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;
proxy_set_header X-Forwarded-Host $host;
}
}
Traefik 配置
services:
vaultwarden:
image: vaultwarden/server:latest
container_name: vaultwarden
restart: unless-stopped
environment:
DOMAIN: "https://vw.yourdomain.com"
volumes:
- ./vw-data:/data
labels:
- "traefik.enable=true"
- "traefik.http.routers.vaultwarden.rule=Host(`vw.yourdomain.com`)"
- "traefik.http.routers.vaultwarden.tls=true"
- "traefik.http.services.vaultwarden.loadbalancer.server.port=80"
官方客户端使用
Vaultwarden 完全兼容官方 Bitwarden 客户端:
桌面客户端
支持平台:
- Windows
- macOS
- Linux
配置步骤:
- 下载并安装 Bitwarden 桌面客户端
- 点击右上角设置图标
- 选择 "Settings" → "Self-hosted"
- 输入你的 Vaultwarden 服务器地址:
https://vw.yourdomain.com - 保存并登录
浏览器扩展
支持的浏览器:
- Chrome
- Firefox
- Safari
- Edge
- Brave
配置步骤:
- 安装 Bitwarden 浏览器扩展
- 点击扩展图标 → 设置
- 选择 "Self-hosted" 并输入服务器地址
- 保存并登录
移动端
支持平台:
- iOS
- Android
配置步骤:
- 安装 Bitwarden App
- 进入设置 → 选择 Self-hosted
- 输入服务器地址
- 登录
Web Vault
Vaultwarden 内置 Web Vault:
https://vw.yourdomain.com
可以直接在浏览器中访问和管理密码。
核心功能详解
1. 密码管理
Vaultwarden 提供完整的密码管理功能:
密码库项目类型:
| 类型 | 说明 |
|---|---|
| Login | 登录信息(用户名、密码、URL) |
| Secure Note | 安全笔记 |
| Card | 银行卡信息 |
| Identity | 身份信息(姓名、地址、电话等) |
密码生成器:
// 内置密码生成器
长度: 16-64 位
包含: 大小写字母、数字、特殊字符
选项: 避免歧义字符 (0, O, l, 1)
选项: 生成易记密码
2. TOTP 两步验证
Vaultwarden 内置 TOTP(基于时间的一次性密码):
添加 TOTP:
1. 进入任意登录项
2. 点击 "Add Attachment" 或编辑
3. 选择 "Authenticator Key" 或 TOTP URI
4. 保存后自动显示 6 位验证码
TOTP 自动填充:
- 登录时会自动显示当前验证码
- 可设置自动复制验证码到剪贴板
- 支持自动填充功能
3. 组织与共享
Vaultwarden 支持创建组织来共享密码:
组织功能:
- 创建团队金库
- 设置成员角色(Owner、Admin、User)
- 创建集合(Collection)管理密码
- 事件日志审计
密码共享流程:
1. 创建组织
设置 → Organizations → Create Organization
2. 创建集合
组织设置 → Collections → New Collection
3. 添加成员
组织设置 → Members → Invite Member
4. 共享密码
选择密码项 → 移动到集合
4. 紧急访问
Vaultwarden 支持紧急访问功能:
紧急访问设置:
1. 用户 A 设置紧急联系人
设置 → Emergency Access → Add Emergency Contact
2. 指定信任级别
- View Passwords: 可查看密码
- Accept-Only: 仅接受访问请求
3. 用户 B 处理请求
用户 A 出事后,用户 B 可申请紧急访问
5. 发送功能(Send)
Vaultwarden 支持安全发送文本或文件:
Send 功能:
- 创建加密的文本/文件发送
- 设置过期时间
- 设置最大访问次数
- 密码保护
使用示例:
1. 点击 "Send" → "Create Send"
2. 选择类型(Text 或 File)
3. 输入内容或上传文件
4. 设置过期时间和访问限制
5. 生成分享链接
安全配置
禁用注册(推荐生产环境)
environment:
SIGNUPS_ALLOWED: "false" # 禁用新用户注册
INVITATIONS_ALLOWED: "false" # 禁用邀请功能
设置管理员令牌
environment:
ADMIN_TOKEN: "your-admin-token" # 设置管理员面板访问令牌
日志配置
environment:
LOG_FILE: "/data/vaultwarden.log"
LOG_LEVEL: "info" # debug, info, warn, error
EXTENDED_LOGGING: "true" # 详细日志
备份与恢复
备份数据
# 备份 vaultwarden 数据目录
tar -czvf backup-$(date +%Y%m%d).tar.gz /opt/vaultwarden/vw-data/
# 或使用 docker
docker cp vaultwarden:/data ./vw-data-backup
tar -czvf backup-$(date +%Y%m%d).tar.gz ./vw-data-backup/
恢复数据
# 解压备份
tar -xzvf backup-20240101.tar.gz
# 恢复数据目录
cp -r backup-data/* /opt/vaultwarden/vw-data/
# 或使用 docker
docker cp ./vw-data-backup vaultwarden:/data
常见问题
Q:Vaultwarden 和官方 Bitwarden 有什么区别?
A:
- Vaultwarden 是轻量级替代实现,用 Rust 编写
- 官方 Bitwarden 服务器功能更全,但资源占用大
- Vaultwarden 资源占用约 50MB,官方版约 500MB
- 两者 API 兼容,客户端可以互换
Q:数据存储在哪里?
A:数据存储在你自己的服务器上:
- SQLite 数据库(默认)
- 支持外部 PostgreSQL
- 文件存储在挂载的 volume 中
Q:如何确保安全?
A:
- 务必使用 HTTPS
- 设置强主密码
- 启用两步验证
- 定期备份数据
- 禁用新用户注册(生产环境)
Q:支持导入导出吗?
A:
- 支持从 Bitwarden 导入
- 支持从 LastPass、1Password 等导入
- 支持导出为 JSON 或 CSV
Q:如何更新 Vaultwarden?
A:
# Docker 部署
docker pull vaultwarden/server:latest
docker compose down
docker compose up -d
适用场景
推荐使用:
- 个人密码管理
- 家庭密码共享
- 小团队密码管理
- 对数据隐私有要求
- 有 NAS 或服务器资源
不推荐使用:
- 超大规模企业(建议官方 Bitwarden Enterprise)
- 需要 SSO 集成的场景
- 没有服务器运维能力
总结
Vaultwarden 用"轻量 + 兼容 + 开源"的组合,成为了自托管密码管理的最佳选择。
核心优势回顾:
- 轻量高效:Rust 编写,仅需 50MB 内存
- 完整兼容:100% 兼容官方 Bitwarden 客户端
- 开源免费:MIT 许可,无使用限制
- 自托管:数据完全自主,满足隐私要求
- 功能完备:TOTP、组织共享、紧急访问
- 易于部署:Docker 一键部署
对于追求密码安全、数据自主、免费解决方案的个人和团队,Vaultwarden 是最佳选择。
本文由无边界科技技术团队分享,专注软件开发与技术解决方案。
官网:wubianj.com
© 版权归无边界科技所有,版权所有。