欢迎光临
我们一直在努力

Vaultwarden:轻量级开源密码管理器,自建服务器实现密码自由

Vaultwarden:轻量级开源密码管理器,自建服务器实现密码自由

背景

密码管理是数字时代的基本功,但现状令人担忧:

  • 密码太多记不住,不同平台重复使用同一密码
  • 浏览器保存的密码缺乏加密,安全性低
  • 1Password、LastPass 等商业密码管理器订阅费用高昂
  • 云端密码库数据存储在第三方服务器,隐私无法保障
  • 换设备时密码同步困难

今天介绍一款开源密码管理利器——Vaultwarden,它是 Bitwarden 的轻量级自托管替代方案。

什么是 Vaultwarden?

Vaultwarden 是一款使用 Rust 编写的开源密码管理器,是 Bitwarden 的社区分支,完全兼容 Bitwarden 客户端协议。

核心理念: “Lightweight Bitwarden server API implementation written in Rust”——用 Rust 编写的轻量级 Bitwarden 服务器实现。

核心特性:

特性说明
轻量高效 资源占用极低,2核2G服务器流畅运行
协议兼容 完全兼容 Bitwarden 官方客户端
开源免费 AGPL 3.0 许可证,完全免费
自托管 数据完全自主,隐私安全
多平台支持 Web/iOS/Android/桌面客户端
端到端加密 密码在客户端加密,服务端无法查看

GitHub 地址: https://github.com/dani-garcia/vaultwarden

Star 数量: 30K+

Vaultwarden vs Bitwarden vs 其他方案

对比项VaultwardenBitwarden1Password浏览器保存
价格 免费 免费/付费 $36/年 免费
开源 ✅ 完全开源 ✅ 开源 ❌ 闭源 ❌ 闭源
自托管 ✅ 完全支持 ✅ 支持 ❌ 不支持 ❌ 不支持
服务器资源 极低(80MB) 较高(1GB+) 云服务 本地
部署难度 简单 复杂 不适用 不适用
数据隐私 完全自主 第三方可选 第三方 不安全

Vaultwarden 的独特优势:

  • 资源占用极低,一台 2核2G 的小服务器就能运行
  • 兼容所有 Bitwarden 官方客户端,体验一致
  • 完全开源,代码可审计
  • 数据完全自主,隐私安全
  • 部署简单,一个 Docker 镜像搞定

工作原理

Vaultwarden 采用端到端加密架构:

┌─────────────────────────────────────────────────────────────┐
│ 客户端 │
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │
│ │ 密码库数据 │───▶│ AES-256 │───▶│ 加密数据 │ │
│ │ (原文) │ │ 加密 │ │ (发送至服务器)│ │
│ └─────────────┘ └─────────────┘ └─────────────┘ │
└─────────────────────────────────────────────────────────────┘


┌─────────────────────────────────────────────────────────────┐
│ Vaultwarden │
│ │
│ 服务器存储的是加密后的数据,无法解密原始密码 │
│ 即使服务器被攻破,攻击者也无法获取用户密码 │
│ │
└─────────────────────────────────────────────────────────────┘

加密流程:

  • 客户端使用主密码生成加密密钥
  • 密码库数据在本地加密
  • 加密后的数据上传至服务器
  • 服务器仅存储密文,无法解密
  • 快速上手

    Docker 部署(推荐)

    创建目录:

    mkdir -p ~/vaultwarden && cd ~/vaultwarden

    创建 docker-compose.yml:

    version: '3'

    services:
    vaultwarden:
    image: vaultwarden/server:latest
    container_name: vaultwarden
    restart: unlessstopped
    ports:
    "8080:80"
    "3012:3012"
    environment:
    WEBSOCKET_ENABLED=true
    SIGNUPS_ALLOWED=true
    SIGNUPS_VERIFY=true
    ADMIN_TOKEN=your_admin_token_here
    volumes:
    ./vwdata:/data
    networks:
    vaultwarden_network

    networks:
    vaultwarden_network:
    driver: bridge

    启动服务:

    # 启动服务
    docker-compose up -d

    # 查看运行状态
    docker-compose ps

    # 查看日志
    docker-compose logs -f

    访问 Web 界面:

    http://your-server-ip:8080

    高级配置

    使用 MySQL 数据库:

    version: '3'

    services:
    vaultwarden:
    image: vaultwarden/server:latest
    container_name: vaultwarden
    restart: unlessstopped
    ports:
    "8080:80"
    "3012:3012"
    environment:
    WEBSOCKET_ENABLED=true
    DATABASE_URL=mysql://vaultwarden:your_password@mysql:3306/vaultwarden
    volumes:
    ./vwdata:/data

    mysql:
    image: mysql:8
    container_name: vaultwarden_mysql
    restart: unlessstopped
    environment:
    MYSQL_ROOT_PASSWORD=root_password
    MYSQL_DATABASE=vaultwarden
    MYSQL_USER=vaultwarden
    MYSQL_PASSWORD=your_password
    volumes:
    ./mysqldata:/var/lib/mysql

    使用 PostgreSQL 数据库:

    version: '3'

    services:
    vaultwarden:
    image: vaultwarden/server:latest
    container_name: vaultwarden
    restart: unlessstopped
    ports:
    "8080:80"
    "3012:3012"
    environment:
    WEBSOCKET_ENABLED=true
    DATABASE_URL=postgresql://vaultwarden:your_password@postgres:5432/vaultwarden
    volumes:
    ./vwdata:/data

    postgres:
    image: postgres:15
    container_name: vaultwarden_postgres
    restart: unlessstopped
    environment:
    POSTGRES_ROOT_PASSWORD=root_password
    POSTGRES_DB=vaultwarden
    POSTGRES_USER=vaultwarden
    POSTGRES_PASSWORD=your_password
    volumes:
    ./postgresdata:/var/lib/postgresql/data

    客户端配置

    浏览器扩展

    支持的浏览器:

    浏览器支持版本
    Chrome Chrome 79+
    Firefox Firefox 63+
    Safari Safari 14+
    Edge Edge 79+
    Opera Opera 64+

    配置步骤:

    1. 安装 Bitwarden 浏览器扩展
    Chrome: Chrome Web Store
    Firefox: Firefox Add-ons

    2. 点击扩展图标,点击设置图标

    3. 选择"自托管"并配置:
    – 服务器 URL:http://your-server-ip:8080

    4. 创建账号或登录

    5. 开始使用

    桌面客户端

    支持的操作系统:

    平台支持版本
    Windows Windows 7+
    macOS macOS 10.11+
    Linux Ubuntu/Debian/Fedora

    配置步骤:

    1. 下载 Bitwarden 桌面客户端
    https://bitwarden.com/download/

    2. 安装并启动

    3. 点击设置 → 选择"自托管"

    4. 填写服务器 URL:
    http://your-server-ip:8080

    5. 登录或创建账号

    移动端

    支持的平台:

    平台支持版本
    iOS iOS 12+
    Android Android 5.0+

    配置步骤:

    1. 下载 Bitwarden App
    iOS: App Store
    Android: Google Play

    2. 打开 App,点击设置图标

    3. 选择"自托管"

    4. 填写服务器 URL:
    http://your-server-ip:8080

    5. 登录或创建账号

    核心功能详解

    1. 密码管理

    创建密码条目:

    密码条目包含:
    – 登录名称
    – 密码
    – 网站 URL
    – 备注
    – 收藏夹标记
    – 自定义字段
    – 附件

    密码生成器:

    配置选项:
    – 密码长度:8-128位
    – 大写字母:A-Z
    – 小写字母:a-z
    – 数字:0-9
    – 特殊字符:!@#$%^&*
    – 避免歧义字符:0、O、l、1、I

    生成示例:
    – 长度 20,包含所有字符
    – 输出:aB3$kL9@mN2#pQ5!

    2. 双因素认证(TOTP)

    Vaultwarden 支持 TOTP 双因素认证:

    支持的 TOTP 方式:
    – 基于时间的一次性密码 (TOTP)
    – 支持 Google Authenticator 兼容
    – 支持 Authenticator 导入

    使用步骤:
    1. 在需要双因素认证的网站获取密钥
    2. 在 Vaultwarden 中添加 TOTP
    3. 自动生成 6 位验证码
    4. 每 30 秒自动更新

    3. 安全笔记

    Vaultwarden 支持加密安全笔记:

    支持的笔记类型:
    – 常规笔记
    – 信用卡信息
    – 身份信息
    – 加密文件

    信用卡笔记包含:
    – 卡号
    – 持卡人姓名
    – 到期日期
    – CVV
    – 备注

    4. 组织与共享

    创建组织:

    组织功能:
    – 多人共享密码库
    – 设置不同权限
    – 群组管理

    权限级别:
    – 用户:只读
    – 成员:读写
    – 管理员:完全控制

    共享集合:

    共享方式:
    – 创建组织集合
    – 添加成员到集合
    – 设置集合权限
    – 成员自动同步

    5. 密码健康检查

    Vaultwarden 提供密码健康检查:

    健康检查项:
    – 弱密码检测
    – 重复密码检测
    – 泄露密码检测(Have I Been Pwned)
    – 旧密码提醒

    报告内容:
    – 弱密码数量
    – 重复使用密码数量
    – 暴露在数据泄露中的密码
    – 最近修改时间过长的密码

    6. 导入导出

    支持导入:

    支持的导入格式:
    – Bitwarden (JSON)
    – 1Password (1PIF)
    – LastPass (CSV)
    – Chrome (CSV)
    – Firefox (CSV)
    – Edge (CSV)
    – Dashlane (JSON)
    – Keeper (CSV)

    导出步骤:

    1. 登录 Web 界面
    2. 进入设置 → 导出保管库
    3. 选择格式(JSON/CSV)
    4. 输入主密码确认
    5. 下载导出文件

    高级配置

    反向代理配置

    Nginx 配置:

    server {
    listen 80;
    server_name vault.example.com;

    client_max_body_size 128M;

    location / {
    proxy_pass http://localhost:8080;
    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 /notifications/hub {
    proxy_pass http://localhost:3012;
    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;
    }

    location /notifications/hub/negotiate {
    proxy_pass http://localhost:8080;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
    }

    启用 HTTPS:

    server {
    listen 443 ssl http2;
    server_name vault.example.com;

    ssl_certificate /path/to/cert.pem;
    ssl_certificate_key /path/to/key.pem;
    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256;
    ssl_prefer_server_ciphers off;

    # … 其他配置同上
    }

    环境变量配置

    常用环境变量:

    environment:
    # 允许新用户注册(生产环境建议关闭)
    SIGNUPS_ALLOWED=false

    # 注册邮箱验证
    SIGNUPS_VERIFY=true

    # 管理面板 Token
    ADMIN_TOKEN=your_secure_token

    # WebSocket 启用
    WEBSOCKET_ENABLED=true

    # 日志级别
    RUST_LOG=info

    # 最大附件大小(字节)
    ATTACHMENT_MAX_SIZE=10485760

    # 数据库 URL
    DATABASE_URL=sqlite://./data/vaultwarden.db

    禁用注册与邀请用户

    生产环境建议:

    environment:
    SIGNUPS_ALLOWED=false
    INVITATIONS_ALLOWED=true

    手动创建用户(通过 Admin 面板):

    1. 访问 http://your-server-ip:8080/admin
    2. 输入 ADMIN_TOKEN
    3. 点击"Add User"
    4. 填写用户信息
    5. 发送邀请链接

    备份策略

    数据目录备份:

    # 备份数据目录
    tar -czvf vaultwarden-backup-$(date +%Y%m%d).tar.gz ./vw-data

    # 备份到远程服务器
    rsync -avz ./vw-data user@backup-server:/path/to/backups/

    定时备份脚本:

    #!/bin/bash
    # backup.sh

    DATE=$(date +%Y%m%d)
    BACKUP_DIR=/path/to/backups
    DATA_DIR=/path/to/vaultwarden/vw-data

    # 创建备份
    tar -czvf $BACKUP_DIR/vaultwarden-$DATE.tar.gz $DATA_DIR

    # 删除 30 天前的备份
    find $BACKUP_DIR -name "vaultwarden-*.tar.gz" -mtime +30 -delete

    # 上传到云存储(可选)
    # rclone copy $BACKUP_DIR/vaultwarden-$DATE.tar.gz remote:backups/

    安全加固

    设置强主密码

    主密码建议:
    – 长度至少 12 位
    – 包含大小写字母、数字、特殊字符
    – 避免使用常见单词
    – 不要与其他网站密码相同

    最佳实践:
    – 使用密码管理器生成的主密码
    – 定期更换主密码
    – 启用双因素认证

    启用双因素认证

    TOTP 设置步骤:
    1. 登录 Web 界面
    2. 进入设置 → 双因素认证
    3. 扫描二维码或输入密钥
    4. 输入验证码确认

    建议使用:
    – Authy(支持多设备同步)
    – Google Authenticator
    – FreeOTP

    配置防火墙

    # 只允许 HTTPS 和 WebSocket
    sudo ufw allow 443/tcp
    sudo ufw allow 8443/tcp

    # 限制管理面板访问
    sudo ufw allow from 192.168.1.0/24 to any port 8080

    常见问题

    Q:Vaultwarden 和 Bitwarden 有什么区别?

    A:

    • Bitwarden 官方版使用 .NET Core,需要更多资源
    • Vaultwarden 使用 Rust,资源占用极低
    • Vaultwarden 是社区分支,完全兼容 Bitwarden 客户端
    • 官方版支持更多企业功能,Vaultwarden 更适合个人/小团队

    Q:需要多少服务器资源?

    A:

    • 最低配置:1核1G
    • 推荐配置:2核2G
    • SQLite 数据库,存储占用小
    • 内存占用约 80-200MB

    Q:数据安全如何保障?

    A:

    • 端到端加密,服务器无法解密
    • 主密码不存储在服务器
    • 支持双因素认证
    • 支持审计日志
    • 完全自主托管,数据不经过第三方

    Q:如何更新 Vaultwarden?

    A:

    # 拉取最新镜像
    docker-compose pull

    # 重启服务
    docker-compose up -d

    # 或使用 Watchtower 自动更新
    docker run -d \\
    –name watchtower \\
    -v /var/run/docker.sock:/var/run/docker.sock \\
    containrrr/watchtower \\
    vaultwarden

    Q:支持哪些客户端?

    A:

    • 所有 Bitwarden 官方客户端
    • 浏览器扩展(Chrome/Firefox/Edge/Safari/Opera)
    • 桌面客户端(Windows/macOS/Linux)
    • 移动端(iOS/Android)
    • CLI 工具

    适用场景

    推荐使用:

    • 个人密码管理
    • 家庭共享密码
    • 小团队密码协作
    • 替代 1Password/LastPass
    • 对隐私安全有要求的用户
    • 不想付费使用 Bitwarden 高级功能

    不推荐使用:

    • 需要完整企业功能(LDAP 集成、SCIM provisioning)
    • 超大规模团队集中管理
    • 需要本地客服支持的场景

    总结

    Vaultwarden 以"轻量 + 开源 + 自托管 + 兼容 Bitwarden"的组合,成为了密码管理领域的最佳开源选择。

    核心优势回顾:

    • 极低资源占用:2核2G 服务器即可流畅运行
    • 完全开源:代码透明可审计
    • 协议兼容:无缝使用 Bitwarden 全套客户端
    • 端到端加密:数据安全有保障
    • 自托管部署:数据完全自主
    • 完全免费:无任何功能限制

    对于追求密码自主管理、隐私安全、免费无限制的用户,Vaultwarden 是最佳选择。


    © 版权归无边界科技所有,版权所有。

    赞(0)
    未经允许不得转载:171主机测评 » Vaultwarden:轻量级开源密码管理器,自建服务器实现密码自由
    分享到: 更多 (0)

    评论 抢沙发

    • 昵称 (必填)
    • 邮箱 (必填)
    • 网址