18 10 月 2026
密码复用是互联网时代最大的个人安全隐患——一个网站泄露,全军覆没。密码管理器是标准答案,但把全部密码存在别人服务器上,很多人心里过不去这道坎。Bitwarden 的开源服务端 Vaultwarden 让"自托管密码库"变成 100M 内存就能跑的小应用。这篇手把手搭。

一、为什么是 Vaultwarden

官方 Bitwarden 服务端是 .NET + SQL Server 的"重工业化"组合,自托管至少 4G 内存。Vaultwarden 是 Rust 重写的兼容实现:

  • 兼容 Bitwarden 全平台客户端(Chrome/Firefox/Edge/手机 App/命令行)——自托管服务端,用的还是官方客户端
  • 内存占用约 100M,SQLite 单文件存储,树莓派都能跑
  • 功能覆盖个人 99% 场景:密码库、TOTP 两步验证码、密码生成器、附件、发送(Send)
  • 企业级功能(组织机构、目录同步)没有——但个人和家庭用不上

二、部署:Docker Compose 五件套

# docker-compose.yml
services:
  vaultwarden:
    image: vaultwarden/server:latest
    container_name: vaultwarden
    restart: unless-stopped
    ports:
      - "8080:80"                    # 容器内 80,宿主机 8080,443 交给 Nginx
    environment:
      DOMAIN: "https://vw.yourdomain.com"     # 必须写完整 HTTPS 地址
      SIGNUPS_ALLOWED: "false"                # 关掉公开注册!自己账号建好后关
      WEBSOCKET_ENABLED: "true"               # 实时同步
      INVITATIONS_ALLOWED: "false"
      SHOW_PASSWORD_HINT: "false"
    volumes:
      - ./vw-data:/data                        # SQLite 库和附件都在这里

volumes:
  vw-data:
docker compose up -d

先开注册再关:初始把 SIGNUPS_ALLOWED 设成 true,启动后用浏览器访问注册自己的账号,然后把值改回 false,docker compose up -d 重建生效。开着公开注册的密码库,是在公网裸奔。

Docker 基础命令见Docker 安装与基础命令,compose 编排见Docker Compose 编排实战。

三、Nginx 反代 + HTTPS

server {
    listen 443 ssl http2;
    server_name vw.yourdomain.com;

    location / {
        proxy_pass http://127.0.0.1:8080;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;      # WebSocket 必须
        proxy_set_header Connection "upgrade";
        proxy_set_header Host $host;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}

server {
    listen 80;
    server_name vw.yourdomain.com;
    return 301 https://$host$request_uri;
}

证书用 Let's Encrypt 免费申请,见免费 SSL 证书申请与 HTTPS 部署。反代细节见Nginx 反向代理与多站点配置。

DOMAIN 环境变量必须和实际访问地址完全一致(协议 + 域名 + 端口),否则客户端同步会报错——这是自托管 Vaultwarden 第一大坑。

四、客户端接入

服务端跑起来后,各平台用官方 Bitwarden 客户端,登录时把服务器地址改成你的域名:

平台客户端备注
浏览器Chrome/Firefox/Edge 扩展主力,自动填表
iOS/AndroidBitwarden App支持自动填充
Windows/macOSBitwarden 桌面版支持 PIN 解锁
命令行bw CLI脚本取密码,配合 Shell 用

TOTP 也能存:把网站的两步验证二维码种子存进 Vaultwarden 的"验证码"字段,手机自动填登录码,等于一个 App 管所有 2FA——比 Google Authenticator 还多一个云端同步。

五、备份:密码库丢了比泄密更绝望

Vaultwarden 的数据就两样:SQLite 库 + 附件目录,备份极简但必须自动化 + 异地:

#!/bin/bash
# 每日备份 Vaultwarden 数据
TS=$(date +%F)
tar czf /backup/vw-$TS.tar.gz -C /opt/vaultwarden vw-data
# 异地:rsync 到另一台机器或对象存储
rsync -az /backup/vw-$TS.tar.gz user@备份机:/backup/vw/
find /backup -name 'vw-*.tar.gz' -mtime +30 -delete

rsync 增量备份方案见rsync 同步与定时备份实战,定时任务见crontab 计划任务完全指南。

导出密码库要加密:Bitwarden 支持加密导出(.json 加密格式),明文导出只用于迁移,导完立刻删。

六、安全加固清单

密码库是"一把钥匙开所有锁"的地方,安全按最高标准:

七、家庭/小团队用法

Vaultwarden 支持"组织":把家人加进来,共享 Wi-Fi 密码、账号、银行卡信息。免费版组织功能受限,但家庭共享(Organization)够用——比"把密码发微信给老婆"安全一万倍。


结语

自托管密码库是"数据自主权"最典型的场景:全部密码在一台 100M 内存的小服务里,客户端还是官方全平台 App,体验不打折,数据不出门。这样一台 1核1G 的 NAT 型服务器,就能把全家人的密码管得服服帖帖。

需要搭密码库服务器,可以看看财富云计算:NAT 型云服务器支持 443 映射,1核1G 起步够跑 Vaultwarden,SSD + 快照 + 自动备份,价格比独立 IP 机型省一半以上——一台机器管全家钥匙,成本忽略不计。

延伸阅读
  1. 网站环境怎么选:LNMP 手动 / 宝塔面板 / Docker / 云开发
  2. 问卷表单系统搭建:SurveyKing / Formbricks,数据自己收
  3. 图床搭建:Lsky Pro / Lychee,自托管图片托管方案
  4. 邮件列表搭建:listmonk 自托管 Newsletter,把读者握在自己手里
  5. 文档站点搭建:MkDocs / VuePress / Docsify,产品文档与技术手册方案
  6. RSS 阅读器搭建:FreshRSS 自托管,把信息流拿回自己手里
  7. 短链接服务搭建:Shlink 自托管,链接数据自己掌握
  8. 网站状态监控页搭建:Uptime Kuma,服务器挂了第一时间知道
更多阅读
  1. 上一篇:私有网盘搭建:Nextcloud / Cloudreve / AList,哪个适合你的服务器
  2. 下一篇:网站状态监控页搭建:Uptime Kuma,服务器挂了第一时间知道
发表评论 1

取消回复