密码这东西,越多越头疼。网站一个、邮箱一个、云服务器又是强口令,记脑子里不现实,写备忘录又怕手机丢了全泄露。浏览器自带的密码填充跨设备同步时好时坏,商业密码管理器按月付费还把库存在别人服务器上。Vaultwarden 是 Bitwarden 服务端的轻量开源实现(用 Rust 重写,资源占用极低),自己跑一台,数据完全在自己手里。本文用一台雨云 KVM 云服务器,Docker 一把部署,配好 HTTPS 后浏览器扩展、手机 APP 全平台同步。
一、先准备一台雨云 KVM 云服务器
Vaultwarden 极轻,1 核 1G 都跑得动,但它要 7×24 在线、最好带一个域名配 HTTPS(Bitwarden 客户端强制要求 HTTPS 才连)。想低成本起一台可以看国产高性价比云服务器,比如雨云:KVM 虚拟化、Debian/Ubuntu 镜像任选,新用户用优惠码 admin01 享五折,入门版折后约 9 元/月,支持 7 天无理由退款,拿来托管密码库很划算。挑机器可参考 VPS 怎么选不踩坑 和 新手买 VPS 先看这几个配置参数。
我选 Debian 12。域名提前解析 A 记录到服务器 IP,HTTPS 用免费的 Let’s Encrypt(certbot)签发。基础安全按 VPS 到手第一件事做什么 走一遍,本文默认你已建好普通用户、开了 ufw。
二、装 Docker 并拉起 Vaultwarden
装 Docker:
curl -fsSL https://get.docker.com | sh
systemctl enable --now docker
建目录并写 docker-compose.yml:
mkdir -p /opt/vaultwarden && cd /opt/vaultwarden
version: "3"
services:
vaultwarden:
image: vaultwarden/server:latest
container_name: vaultwarden
environment:
- WEBSOCKET_ENABLED=true
- SIGNUPS_ALLOWED=true
- DOMAIN=https://你的域名
ports:
- "127.0.0.1:8080:80"
volumes:
- ./vw-data:/data
restart: unless-stopped
注意我把 8080 只绑在 127.0.0.1,不对外直接暴露,后面用 Nginx 反代 + HTTPS 才安全。SIGNUPS_ALLOWED=true 先开着方便你注册,建完账号记得改回 false 防陌生人注册。
启动:
docker compose up -d
三、用 Nginx + certbot 做 HTTPS 反代
装 Nginx 和 certbot:
apt install -y nginx python3-certbot-nginx
建站点配置 /etc/nginx/sites-available/vw:
server {
listen 80;
server_name 你的域名;
location / {
proxy_pass http://127.0.0.1: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://127.0.0.1:3012;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
}
启用并申请证书:
ln -s /etc/nginx/sites-available/vw /etc/nginx/sites-enabled/
nginx -t && systemctl reload nginx
certbot --nginx -d 你的域名
证书自动续期。浏览器访问 https://你的域名 就能看到 Vaultwarden 登录页。
四、创建账号与日常使用
打开 https://你的域名 点“创建账号”,填邮箱、主密码(主密码本地加密、服务端不存明文,忘了谁都救不回,务必记牢)。登录后进“工具 → 导入数据”可以把浏览器导出的密码批量搬过来。
各端装上 Bitwarden 官方客户端(浏览器扩展、手机 APP、桌面端都行),服务器 URL 填你的域名,登录即可全平台同步。关于多端同步和备份的整体思路,也可以对照 雨云搭建 Gitea 私有代码仓库 那篇的“自己的数据自己管”理念。
五、踩过的坑与经验
- 客户端连不上:多半是没 HTTPS。Bitwarden 客户端强制 HTTPS,用 IP 或 http 直接被拒。老老实实配域名 + 证书。
- 数据备份:库是
./vw-data里的 SQLite 文件,定期tar czf打包下来,或同步到 雨云对象存储做异地备份,服务器没了也能恢复。 - 注册开关:正式用一定把
SIGNUPS_ALLOWED改回false再docker compose up -d,否则公网任何人都能来建号。 - SMTP 可选:想收验证码/邀请邮件,在环境变量配
SMTP_*即可;纯个人用不配也能跑,只是收不到邮件通知。 - 安全基线:这台机器存的是你所有密码的“钥匙串”,按 VPS 安全配置实战 做好密钥登录、防火墙、fail2ban,主密码用长随机短语。
小结
自建 Vaultwarden 的爽点很直接:密码库在自己服务器上,不交月费、不受商业服务停服影响,全平台客户端还是官方 Bitwarden 那套,体验无缝。部署本身就是一个 docker-compose 加一个 Nginx 反代,难点在 HTTPS 和注册开关这两个细节。长期托管推荐雨云这类低价稳定的 KVM 机器——优惠码 admin01 五折、7 天无理由退款,跑密码库这种常驻小服务很合适。
合规提醒:使用雨云及本文所述方案时,请遵守《网络安全法》《个人信息保护法》《数据安全法》等相关法律法规,仅用于存储和管理你本人或经授权主体的凭据,妥善保管主密码,不得用于窃取、托管他人未授权凭据等任何违法违规活动。






