Skip to content

使用docker安装vaultwarden

您是否常常为了密码管理而烦恼?有时为了省事,把所有账户设为统一密码;有时记在小本子上;或者干脆交给浏览器保存并同步到云端。但这样做,非常的不安全。

本文将介绍一种更安全的方式 —— 如何将密码保存在本地。

什么是vaultwarden

vaultwarden是一个使用Rust编写的轻量级Bitwarden服务端实现,提供了自托管密码管理服务,兼容官方Bitwarden客户端,占用资源极低,甚至于可以将其部署到树莓派上,所以vaultwarden主要是面向个人、家庭和小型组织为主。

地址:https://rs.ppgg.in/home

Dockerhttps://hub.docker.com/r/vaultwarden/server

Githubhttps://github.com/dani-garcia/vaultwarden

使用Docker安装vaultwarden

建议不要直接使用 -p 进行端口映射,因为 vaultwardenweb 界面默认仅允许本机访问或通过 https 协议访问,其他网络请求将被拒绝。因此,推荐配置一个 https 转发代理。

vaultwarden安装

为了保障数据安全,在使用 docker 安装vaultwarden时,需要进行目录映射。可以创建并使用 /vwdata 目录来存储持久化数据。

Bash
# mkdir -p /vwdata

接下来,就可以使用 docker 安装并运行 vaultwarden 了:

Bash
# docker run -d --name vaultwarden -v /vwdata:/data vaultwarden/server

这里不需要进行端口映射,因为完全没必要。

可以使用 docker inspect 搭配 jq 命令查看vaultwarden容器的 ip 地址,例如:

Bash
1
2
3
# docker inspect vaultwarden | jq .[0].NetworkSettings.IPAddress
"172.80.0.2"
#

上述 vaultwarden 容器的 IP 地址为:172.80.0.2

SSL证书生成

如前所述,vaultwardenweb 界面默认仅支持本机访问或通过 https 协议进行访问,这一限制是由前端逻辑所决定的,因此这里使用 https 协议进行访问。

如果没有自己的域名,可以使用 openssl 自行签发一个 https证书。本文将通过 nginx 实现站点的转发和访问,nginx 的安装过程在此不再赘述。

首先切换到 nginx 的主目录,然后使用 openssl 生成自签名证书:

Bash
# openssl req -x509 -newkey rsa:2048 -keyout key.pem -out cert.pem -days 365 -nodes

在接下来交互输入中,在 Common Name (CN)中输入invaultwarden20250507.com,假装我们拥有invaultwarden20250507.com域名。

接下来,创建 Vaultwarden 的配置文件:

Bash
# cat >> conf.d/vaultwarden.conf << EOF
server {
    listen 443 ssl;
    server_name invaultwarden20250507.com;

    ssl_certificate     cert.pem;
    ssl_certificate_key key.pem;

    location / {
        proxy_pass http://172.80.0.2:80;

    }
}
EOF

上述内容中,172.80.0.2是容器vaultwardenip地址。

由于域名并不属于我们,所以 其他机器想要访问该站点的话,需要创建hosts映射。

vaultwarden最基本的使用

使用浏览器访问 https://invaultwarden20250507.com 时,会弹出证书无效的提示,直接选择忽略该警告即可。

首次登录时,需要先创建一个用户,创建完成后即可登录。

登录完成后,选择【安装浏览器扩展】:

image-20250507184541056

安装插件完毕后,选择【自托管】:

image-20250507184758041

输入服务器URL,点击保存:

image-20250507184855746

然后就可以登录刚刚创建好的帐号了。

image-20250507185200634

后续使用中,如果登录了网站,会提示是否保存密码,选择保存即可。

image-20250507185353987

如果想要保存如MFA动态验证码,需要将验证器密钥填写进去。

image-20250507185734648

上述是最基本的使用了。

数据库备份

vaultwarden默认使用sqlite3,只需要将/vwdata给打包压缩即可,不过需要注意存放到安全的地方,必要的时候,可以使用第三方数据加密工具进行加密,比如:gpg

最简单的备份脚本如下:

Bash
#!/bin/bash

# 备份vaultwarden
# 2025年05月07日

export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin

nowDate=$(date +"%F-%H-%M-%S")

cd /

mkdir -p dumps

tar zcvf dumps/den-${nowDate}.tar.gz vwdata

总结

vaultwarden 提供了自托管密码管理服务,使得密码能够安全地存储在本地数据库中,有效防止因使用相同密码而遭遇撞库攻击的风险。它不仅支持存储动态验证码,还具备其他实用功能,如密码生成器、Send 分享信息等,是一款功能丰富且非常实用的工具。

另外,vaultwardenweb 界面默认仅允许本机访问或通过 https 协议进行访问,其他网络请求将被拒绝。除了部署 https 访问外,还可以通过本地端口映射来完成请求。




使用docker安装vaultwarden

https://wangli2025.github.io/2025/05/11/vaultwarden_usage.html

本站均为原创文章,采用 CC BY-NC-ND 4.0 协议。转载请注明出处,不得用于商业用途。

Comments