自建密码管理器横评:Bitwarden vs Vaultwarden vs Passky,自部署密码方案怎么选?
你有没有遇到过这种情况——想用一个密码管理器…
你有没有遇到过这种情况——想用一个密码管理器,但不想把全家桶密码交给第三方云服务?去年 LastPass 泄露事件之后,我彻底决定把所有密码从云上搬回本地。折腾了一圈,最后在 **Bitwarden、Vaultwarden、Passky** 三个方案之间反复横跳。今天这篇就把我踩过的坑、对比的数据、最终的结论摊开来讲。
—
## 一、为什么非要自建密码管理器?
先说两个场景,你大概率经历过:
1. **第三方服务一泄露,全网改密码**——2022年LastPass、2025年Okta,你永远不知道下一个是哪个。
2. **免费版功能阉割严重**——主流密码管理器免费版限设备数、限附件、限分享,逼你开订阅(一年$36-$60不等)。
**自建的好处就三条:** 数据完全在自己手里、不限设备不交年费、还能顺便练一把 Docker 运维。缺点只有一个——服务器不能宕机,但这一点用 Docker 监控 + 自动备份完全可以兜底。
—
## 二、三款方案速览
| 方案 | 开发语言 | 官方版是否开源 | 资源占用(1C2G VPS) | Docker 镜像大小 |
|:—|:—:|:—:|:—:|:—:|
| **Bitwarden** | C# (.NET) | ✅ 开源 | 重(~2GB RAM) | ~2.5GB |
| **Vaultwarden** | Rust | ✅ 开源 | **极轻(~30MB RAM)** | ~50MB |
| **Passky** | Python | ✅ 开源 | 轻(~80MB RAM) | ~150MB |
看到这张表你应该已经猜到了——**Vaultwarden 几乎是大多数人的首选**。别急,往下看每个方案的部署细节和坑。
—
## 三、Bitwarden:官方正统,但太重了
Bitwarden 官方提供自建方案(Self-host),但你打开 Docker Compose 文件就会明白——这套东西是为了大中型企业准备的,不是一个 2C2G VPS 能轻松跑起来的。
### 部署
“`bash
# 官方 Bitwarden 需要先安装脚本工具
curl -Lso bitwarden.sh https://go.bitwarden.com/install/
chmod +x bitwarden.sh
./bitwarden.sh install
“`
执行过程中它会问你域名、SSL 配置、数据库类型。**安装完你会看到 10+ 个容器**:主应用、数据库、nginx、身份认证、队列、日志……全部堆上去,光 `docker images` 就能占掉 4GB 磁盘。
### 优缺点
✅ **优点:** 功能最完整、官方团队维护、支持所有 Bitwarden 客户端(浏览器插件、手机 App、桌面端)、支持 Send 文件分享
❌ **缺点:** 资源占用变态、部署复杂、升级流程麻烦、单机跑很浪费
**适合谁?** 公司团队部署、或者你手上有台 4C8G 以上的闲置服务器。
—
## 四、Vaultwarden(推荐):Rust 重写的轻量化替代
这是 Bitwarden 的 Rust 实现,**完全兼容 Bitwarden 官方客户端**,但资源占用只有官方的 1/50。
我自己的 VPS 上跑了大半年,稳定得几乎忘记了它的存在。
### 一键部署
“`yaml
# docker-compose.yml
version: ‘3’
services:
vaultwarden:
image: vaultwarden/server:latest
container_name: vaultwarden
restart: unless-stopped
ports:
– “8088:80”
volumes:
– ./vw-data:/data
environment:
– DOMAIN=https://pw.yourdomain.com
– SIGNUPS_ALLOWED=false
– ADMIN_TOKEN=your_s…cker compose up -d
“`
完事。**三个关键操作必须做:**
1. **注册账号后立即关闭开放注册**(设 `SIGNUPS_ALLOWED=false`)
2. **设置 ADMIN_TOKEN**,通过 `https://你的域名/admin` 面板管理用户
3. **配置每日自动备份**,因为数据全在你手里,没有厂家兜底
### 备份脚本(必配)
“`bash
#!/bin/bash
# /opt/vaultwarden/backup.sh
TIMESTAMP=$(date +%Y%m%d_%H%M%S)
tar czf /backup/vaultwarden_$TIMESTAMP.tar.gz /opt/vaultwarden/vw-data/
# 可选:rclone 同步到 Google Drive 或 S3
rclone copy /backup/ remote:backup/vaultwarden/
“`
加入 crontab:
“`bash
0 3 * * * /opt/vaultwarden/backup.sh
“`
### 优缺点
✅ **优点:** 30MB RAM 跑满功能、部署 30 秒、兼容所有 Bitwarden 客户端、功能几乎和官方版一致(缺 Send 文件分享)
❌ **缺点:** 非官方维护、新功能同步慢几天、没有官方支持
**适合谁?** 99% 的自建用户。**我的最终选择。**
—
## 五、Passky:极简 Python,适合轻量使用
Passky 是纯 Python 写的密码管理器,前后端分离,界面走极简路线。
### 部署
“`bash
# 服务端
docker run -d –name passky-server \
-p 8080:80 \
-v passky-data:/database \
passky/server:latest
“`
### 优缺点
✅ **优点:** 部署最简单、资源占用低、界面清爽、免费无限制
❌ **缺点:** 生态太小——没有像样的浏览器自动填充插件、移动端 App 功能简陋、社区冷清
**适合谁?** 只是「记密码」没有其他需求、不想折腾 Docker 之外的任何配置的人。
—
## 六、横评总结:三选一,怎么选?
| 维度 | Bitwarden | Vaultwarden | Passky |
|:—|:—:|:—:|:—:|
| 部署难度 | ⭐⭐⭐ | ⭐ | ⭐ |
| 资源占用 | 2GB+ RAM | **30MB RAM** | 80MB RAM |
| 功能完整度 | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐☆ | ⭐⭐⭐ |
| 客户端生态 | 全平台 | **全平台** | 弱 |
| 安全性 | 官方审计 | 社区审计 | 未审计 |
| 维护成本 | 高 | **低** | 低 |
**我的建议:**
– **大多数人直接上 Vaultwarden** —— 30MB RAM、全平台客户端、Docker 30 秒部署,没有理由不用它
– **公司/团队/重度用户** → 官方 Bitwarden,需要企业功能(SSO、审计日志)时没得选
– **纯密码本需求** → Passky 也能用,但说实话既然 Vaultwarden 一样轻量且生态更好,没必要退而求其次
—
## 七、迁移攻略:从第三方切到 Vaultwarden
如果你现在用的是 1Password / LastPass / Dashlane,想切到自建,迁移路径如下:
**1Password → Bitwarden/Vaultwarden:**
1Password 支持导出为 `1pux` 或 CSV 格式 → 在 Vaultwarden 网页端导入即可
**LastPass → Vaultwarden:**
LastPass 有内置导出功能(`更多操作 → 导出`)→ 得到 CSV 文件 → Vaultwarden 后台选择「LastPass (CSV)」导入
**Chrome 内置密码 → Vaultwarden:**
`chrome://settings/passwords` → 导出密码 → 在 Vaultwarden 选择「Bitwarden (CSV)」导入
**⚠️ 注意:** 导入完成后,**在第三方服务里彻底删除所有密码数据**,然后注销账号。密码这种东西,多存一份就多一分泄露风险。
—
## 八、写在最后
从去年下定决心把所有密码自建开始,Vaultwarden 已经在我 2C2G 的便宜 VPS 上跑了 8 个月,零故障。配合 Bitwarden 浏览器插件 + 手机 App,使用体验和 1Password 没有任何区别,一年省下 300 多块订阅费,换来的是「密码在自己手里」的踏实感。
如果你也在犹豫要不要自建密码管理器,我的建议是——**从 Vaultwarden 上手,30 分钟就能跑起来,试过才知道回不去。**
—
*你有什么密码管理器的踩坑经历?或者正在用哪个方案?欢迎在评论区留言交流。*
