NAS 系统
飞牛/群晖 NAS 自建 Vaultwarden 密码库:容器部署、HTTPS 反代与加密备份实战
2026年9月15日
在飞牛/群晖NAS用Docker自建Vaultwarden密码库,打通HTTPS反代与加密备份。
飞牛/群晖 NAS 自建 Vaultwarden 密码库:容器部署、HTTPS 反代与加密备份实战
摘要:把账号密码交给第三方密码管理器总有顾虑。本文在飞牛/群晖 NAS 上用 Docker 部署 Vaultwarden(Bitwarden 兼容服务端),打通 HTTPS 反代、客户端同步与定时加密备份,实现数据完全自持的家庭密码中台。
一、为什么要在 NAS 上自托管密码管理器
浏览器自带填充、各类网盘笔记都能存密码,但问题在于:密码散落在多处、同步不可控、一旦账号被盗全盘泄露。密码管理器的正确形态是"一个加密库 + 全端同步 + 本地掌控密钥"。
Vaultwarden 是 Bitwarden 服务端的高性能 Rust 重写版,资源占用极低(空闲约 10–20MB 内存),完美适配 NAS 这种 7×24 常开设备。它兼容官方 Bitwarden 全平台客户端,数据存在你自己的磁盘上。
二、用 Docker Compose 部署
在 NAS 的 Docker 目录新建 vaultwarden,写入:
services:
vaultwarden:
image: vaultwarden/server:latest
container_name: vaultwarden
restart: unless-stopped
environment:
- WEBSOCKET_ENABLED=true
- SIGNUPS_ALLOWED=true
- ADMIN_TOKEN=换成强随机串
ports:
- "8088:80"
volumes:
- ./vw-data:/data
WEBSOCKET_ENABLED=true 让客户端能实时推送变更;ADMIN_TOKEN 是后台管理面板口令,务必用 openssl rand -base64 24 生成强串;数据全部落在 ./vw-data,备份只管这个目录。飞牛和群晖都自带 Docker 套件,直接上传 compose 即可启动,监听 8088。
三、HTTPS 反代与安全暴露
NAS 一般都已配好反向代理(Nginx/Traefik)。给 Vaultwarden 加一条反代:外部 https://pwd.你的域名 → 内部 http://127.0.0.1:8088,并转发 WebSocket(Upgrade 头)。证书用 Let's Encrypt 自动续期。
两个关键配置:
- 在 Vaultwarden 环境变量加
DOMAIN=https://pwd.你的域名,否则客户端会报域名不匹配。 - 反代要带
X-Real-IP和正确的Host头,否则后台看到的登录 IP 全是 127.0.0.1,不利于审计。
四、客户端接入与日常使用
手机装 Bitwarden App、浏览器装 Bitwarden 扩展,服务器 URL 填 https://pwd.你的域名,登录即用。导入旧密码:先在浏览器导出 CSV(Chrome/Edge 都支持),在 Vaultwarden 网页端"工具→导入"选对应格式即可。建议开启两步验证(2FA),Vaultwarden 支持 TOTP 和硬件密钥。
五、备份:这是自托管的生命线
自建的好处是数据在手,坏处是丢了没人赔。务必做三件事:
- 定时打包:用 NAS 计划任务每天
tar czf压缩vw-data到另一块盘或异地。 - 加密再备份:压缩包用
gpg -c加口令加密,再 rsync 到云盘/另一台 NAS。 - 定期演练恢复:每月挑一次把备份解压到测试容器,确认能正常登录,避免"假备份"。
六、上线后的安全加固
部署完第一件事:把 SIGNUPS_ALLOWED 改为 false,并用管理员面板( /admin)邀请家庭成员账号,防止公网被陌生人注册。再配合 NAS 防火墙只放行必要端口、启用失败登录限流,基本可以放心长期运行。
小结
在 NAS 上跑 Vaultwarden,等于把全家密码库搬回了自家硬盘:兼容 Bitwarden 全平台客户端、内存占用极低、数据完全自持。部署重点是 compose 里留好数据卷、反代补上 WebSocket 与 DOMAIN、上线即关闭开放注册并开启 2FA;而最容易被忽视的备份,要"压缩+加密+异地+定期演练"四步走,才能真正做到既方便又不怕丢。