目录
💤[1 Vaultwarden 简介与核心优势](#1 Vaultwarden 简介与核心优势)
💤[2 部署环境说明](#2 部署环境说明)
💤[3 使用 Docker 在群晖 NAS 上部署 Vaultwarden](#3 使用 Docker 在群晖 NAS 上部署 Vaultwarden)
💤部署步骤
💤[4 首次访问与 HTTPS 警告](#4 首次访问与 HTTPS 警告)
💤[5 通过 cpolar 实现 HTTPS 与外网访问](#5 通过 cpolar 实现 HTTPS 与外网访问)
💤[6 登录并创建隧道](#6 登录并创建隧道)
💤[7 保留二级子域名](#7 保留二级子域名)
💤[8 获取公网地址并访问](#8 获取公网地址并访问)
💤[9 Vaultwarden 基础使用](#9 Vaultwarden 基础使用)
💤创建账户
💤使用演示
💤总结
前言:真正麻烦的不是"记不住",而是密码开始失控
很多人开始找密码管理器,并不是因为突然想研究安全,而是账号数量已经多到靠记忆和浏览器保存撑不住了。
工作后台、NAS、邮箱、论坛、购物网站、社交平台......有的密码重复使用,有的临时记在备忘录里,还有一些只存在某台电脑的浏览器中。平时没出问题时,这些做法似乎还能凑合;真正换设备、重装系统,或者需要临时在另一台电脑登录时,才会发现密码其实散得到处都是。
自建 Vaultwarden 的意义,也不只是"把密码放到 NAS"。真正要解决的是一整套使用问题:密码能不能集中管理、浏览器能不能自动填充、旧密码能不能迁移过来、手机和电脑能不能同步,以及人在外面时还能不能访问自己的密码库。
本文以 群晖 Synology NAS + Docker 为环境完成部署。过程中还会碰到一个很典型的节点:Vaultwarden 本地 HTTP 页面虽然能打开,但加密 API(Subtle Crypto API)要求 HTTPS 安全上下文。也就是说,"容器启动成功"并不等于"密码管理器已经可以正常长期使用"。
后面会继续通过 cpolar 补上 HTTPS 与公网访问,再接入 Bitwarden 浏览器扩展,完成自动填充和 CSV 密码迁移。整篇的目标不是只把服务跑起来,而是把它真正变成日常能用的一套密码管理环境。

1 Vaultwarden 简介与核心优势
Vaultwarden 是一款开源的密码管理解决方案,用于安全存储和管理密码等敏感数据。
如果只看"保存密码",很多工具都能做到。Vaultwarden 更值得关注的地方在于,它能继续兼容 Bitwarden 官方客户端和浏览器扩展,所以自托管以后,并不需要放弃已经成熟的多端使用方式。
-
完全私有:数据全部存放在自己的设备(如 NAS)中,不上传任何第三方云端。对于已经有长期在线 NAS 的用户来说,密码库可以和其他自建服务一样,由自己维护存储位置与备份。
-
端到端加密:只有你自己能解密,真正做到隐私自由。
-
安全防护:
- 支持个人 API 密钥,强化数据访问安全。
- 支持全方位多因素认证(MFA),包括验证器 App、邮箱、FIDO2、YubiKey 等。
- 提供紧急访问功能,可设置可信联系人,特殊情况下也能调取保险库数据。

-
客户端兼容:适配 Bitwarden 官方的手机 App、电脑客户端和浏览器插件。后文会直接用浏览器扩展连接自托管地址,验证日常登录时能否继续自动填充。
-
密码生成器:一键生成包含大小写字母、数字、符号的超长复杂密码。
-
附件存储:可加密保存证书扫描件、软件许可证、照片等文件。
-
自动图标:保存网站账号后自动获取并显示对应网站图标,方便识别。
-
管理后台与 Web 客户端:自带优化版 Web 界面,无需复杂配置即可使用,适合个人或小团队。

2 部署环境说明
密码管理器和普通临时 Web 服务不太一样:它通常需要长期在线,而且里面的数据需要持续保存。因此部署环境的稳定性、数据目录和后续备份都比"启动一次看看页面"更重要。
-
本教程以 群晖 Synology NAS + Docker 为例演示部署。
-
将密码库放在 NAS 上,主要利用它长期在线和本地存储的特点,后续也便于把数据目录纳入自己的备份策略。
-
其他小主机或 Linux 服务器操作步骤大同小异。

3 使用 Docker 在群晖 NAS 上部署 Vaultwarden
部署步骤
这一部分先解决"服务能不能正常跑起来"。后面还会单独处理 HTTPS、远程访问和客户端连接,所以这里暂时不要把"浏览器能打开页面"当成全部完成。
- 通过 SSH 终端登录群晖 NAS。

-
执行
sudo -i进入管理员模式。 -
粘贴并执行一键部署命令:
mkdir -p /volume1/Vaultwarden/data &&
docker pull vaultwarden/server:latest &&
docker run --detach
--name vaultwarden
--env DOMAIN="https://vw.domain.tld"
--volume /volume1/Vaultwarden/data:/data
--restart unless-stopped
--publish 8088:80
vaultwarden/server:latest

- 该命令会自动创建数据目录、拉取镜像并启动容器。
- 端口映射为
8088:80,避开群晖默认 80 端口占用问题。 DOMAIN建议填写你最终要使用的 HTTPS 域名(例如 cpolar 生成的域名)。
这里有一个容易忽略的点:DOMAIN 和后面的 HTTPS 访问地址是有关系的。Vaultwarden 不是只要本地端口能访问就结束,后面客户端与加密 API 都会依赖安全上下文,因此 HTTPS 会成为下一步必须处理的问题。

4 首次访问与 HTTPS 警告
- 安装完成后,在浏览器访问
http://<NAS_IP>:8088。 - 页面会弹出提示:Vaultwarden 的加密 API(Subtle Crypto API)需要在 HTTPS 安全上下文中运行,当前 HTTP 明文访问不符合要求。
- 这个警告说明必须通过 HTTPS 访问,下一步使用 cpolar 即可解决。
这一步很典型:容器已经运行,网页也能打开,但真正的密码库功能还没有进入合适的使用环境。 对 Vaultwarden 来说,HTTP 本地访问更像是部署检查,HTTPS 才是后面账户登录、扩展连接和远程访问真正需要的入口。
5 通过 cpolar 实现 HTTPS 与外网访问
前面已经确认 Vaultwarden 本地服务正常,接下来只处理网络入口这一层。
cpolar 在本文中的作用有两个:一是给 8088 服务提供 HTTPS 访问地址,解决前面的安全上下文警告;二是让密码库在离开家庭局域网后仍然可以访问。Vaultwarden 的密码数据、账户和客户端逻辑本身并不会因此改变。
下面是安装cpolar步骤:
cpolar 提供了群晖安装的套件,点击下面Cpolar群晖套件下载地址,下载相应版本的群晖Cpolar套件,如果找不到对应的型号,可以选择相近版本型号套件。
打开群晖套件中心,点击右上角的手动安装按钮。
选择我们本地下载好的cpolar套件安装包,然后点击下一步
点击同意按钮,然后点击下一步
最后点击完成即可。
安装完成后,在外部浏览器,我们通过群晖的局域网ip地址加9200端口访问Cpolar的Web管理界面,然后输入Cpolar邮箱账号与密码进行登录,登录后,一切的操作在管理界面完成.
6 登录并创建隧道
到这里 cpolar 已经安装完成,下一步把公网入口明确指向 Vaultwarden 的 8088 端口。
- 安装完成后,访问
http://<NAS_IP>:9200登录 cpolar Web 管理界面。

-
点击 创建隧道:
- 隧道名称:自定义。
- 本地地址:
8088。 - 域名类型:选择 二级子域名(需要固定公网地址)。

7 保留二级子域名
密码管理器和临时测试页面不同,浏览器扩展会保存自托管服务器 URL。如果地址经常变化,每次都要重新修改客户端配置。因此这里直接保留固定二级子域名,更适合后面的长期使用。
- 登录 cpolar 官网,进入 预留 > 保留二级子域名。
- 地区选择 China Top ,后缀为
.top,名称自定义后点击 保留。

- 复制保留好的子域名,回到群晖 cpolar 配置界面的域名框中粘贴,然后点击 创建。

8 获取公网地址并访问
固定地址绑定完成后,这一步不只是测试"外网能不能打开",还要确认前面的 HTTPS 警告是否真正消失。
- 创建成功后,打开左侧 在线隧道列表,可以看到生成了 HTTP 和 HTTPS 两条二级子域名地址。

- 使用其中的 HTTPS 地址访问 Vaultwarden,HTTPS 警告会直接消失。
- 此时外部网络也可以通过该地址访问家里的密码库。
到这里,"Docker 容器启动"和"真正可用的 HTTPS 入口"才算连起来。接下来再创建账户、导入密码和连接浏览器扩展,整个使用链才完整。

9 Vaultwarden 基础使用
创建账户
现在已经有固定 HTTPS 地址,再开始建立正式账户更符合后面的长期使用逻辑。
- 首次打开 Vaultwarden Web 端,点击 创建账户。
- 填写电子邮箱地址和名称。
- 设置主密码:必须至少 12 个字符,并填写密码提示。
- 完成注册后进入密码库主页。

左侧导航功能
Vaultwarden 真正替代"便签 + 浏览器散存"的过程,主要发生在这些日常功能里:
- 密码库:新建条目保存 B 站、博客、游戏、工作后台等账号;系统会自动抓取网站图标。

- Send:加密发送文本或文件,可与他人安全共享。

- 工具 > 生成器:一键生成复杂密码,注册新账号时可直接使用并自动保存。

- 导入:一次性导入已备份好的密码文件。

- 导出:将当前密码库导出备份。
- 报告:识别密码库中的安全问题,如弱密码、重复密码、泄露密码、未启用两步登录等。对于以前长期重复使用同一个密码的人,这一项比单纯"把密码搬进来"更有价值,因为它能帮助继续清理旧习惯。

- 设置:开启两步登录(MFA)、查看登录设备、修改主题和语言等。

浏览器扩展配置与自动填充
到这里密码库已经能存数据,但如果每次登录网站还要先打开 Vaultwarden,再复制用户名和密码,使用体验仍然不完整。
真正让自托管密码库进入日常使用的是浏览器扩展:网站登录页出现时自动识别对应条目,需要保存新账号时再同步回自己的 Vaultwarden。
安装与配置
- 在 Vaultwarden 密码库页面点击 安装浏览器扩展 ,跳转到浏览器扩展商店安装 Bitwarden Password Manager。

- 安装完成后点击扩展图标,下滑找到 自托管环境 选项。

- 在服务器 URL 处填写 cpolar 生成的 HTTPS 地址。
- 使用在 Vaultwarden 注册的邮箱和主密码登录,扩展即与密码库同步。
这里也能看出前面为什么要提前固定域名:浏览器扩展保存的是自托管服务器地址,固定入口能避免后面反复修改客户端配置。

自动填充设置
-
点击扩展中的 设置 > 自动填充:
- 勾选 将 Bitwarden 设置为默认密码管理器(避免与浏览器内置密码管理器冲突)。
- 勾选 页面加载时自动填充,打开登录页即可自动填充账号密码。

使用演示
接下来才进入最接近日常使用的一步:不再主动去"查密码",而是让扩展在登录页面直接识别对应条目。
- 访问 B 站等登录页面时,点击浏览器右上角 Bitwarden 扩展图标,即可自动识别并填充账号密码。

- 首次在飞牛 NS 等页面登录成功后,扩展会提示保存该账号,选择保存即可同步到 Vaultwarden 服务器。

全平台密码迁移与同步
如果以前已经在浏览器里积累了很多账号,重新手工录入一遍并不现实。这里最后处理"旧密码怎么搬过来",把原有浏览器密码一次性迁移到新的密码库中。
- 打开浏览器设置中的 密码 选项,导出已保存的所有密码,格式选择 CSV。

- 回到 Vaultwarden Web 端,使用 导入 功能上传该 CSV 文件。
- 导入完成后,所有密码即可在 Vaultwarden 各端同步使用。
这样迁移完成后,新账号继续通过扩展保存,旧账号已经一次性导入,密码管理才真正从"分散保存"切换到统一密码库。
总结
这篇教程最容易被理解成"5 分钟起一个 Vaultwarden 容器",但真正做完以后会发现,容器启动只是整个密码管理流程的第一步。
首先是密码库本身要能长期保存 。Docker 把 Vaultwarden 跑起来,/volume1/Vaultwarden/data 负责保存数据;随后本地 HTTP 页面出现 Subtle Crypto API 的 HTTPS 警告,又说明"网页能打开"并不代表已经适合正式使用。
接着通过 cpolar 给 8088 服务增加 HTTPS 和公网入口,并保留固定二级子域名。固定地址不仅方便人在外面访问,也直接影响浏览器扩展的自托管服务器配置------地址稳定以后,客户端不需要跟着公网地址反复调整。
真正进入日常使用,则依赖后面的 Bitwarden 浏览器扩展、自动填充、密码生成器、安全报告和 CSV 导入。尤其是 CSV 迁移,它解决了一个很现实的问题:以前已经存在浏览器里的几十个甚至更多账号,不需要重新手动录入一遍。
所以这套方案最终解决的是三个层面:
- 保存在哪里:Vaultwarden 数据留在自己的 NAS;
- 平时怎么用:Bitwarden 客户端和浏览器扩展继续负责同步与自动填充;
- 人在外面怎么访问:cpolar 提供固定 HTTPS 入口。
相比把同一个密码重复用在多个网站,或者继续把账号散在浏览器、备忘录和不同设备里,自建密码库真正带来的变化,是让密码开始有统一的生成、保存、同步、填充和迁移方式。
而对密码管理这种长期使用的工具来说,后续同样重要的还有数据备份、MFA 和主密码本身的管理。服务搭好只是开始,能不能长期保持一套稳定的使用习惯,才决定它最终有没有价值。
如果小假的内容对你有帮助,请点赞,评论,收藏。创作不易,大家的支持就是我坚持下去的动力!
