---
title: "自建 Vaultwarden 密码管理器：域名、关闭注册、团队共享与备份"
description: "用 Zenavo 的模板把 Vaultwarden 部署到自己的服务器上，绑定 HTTPS 域名，注册后关闭公开注册，配置邮件邀请同事，连接 Bitwarden 客户端，并做好备份和升级。"
date: 2026-11-13
language: zh-CN
url: https://zenavo.app/zh-CN/blog/self-host-vaultwarden
---

# 自建 Vaultwarden 密码管理器：域名、关闭注册、团队共享与备份

[Vaultwarden](https://github.com/dani-garcia/vaultwarden) 是一个开源的密码管理服务端，兼容 Bitwarden 的官方客户端：浏览器扩展、桌面版、手机 App 和命令行都能直接连上它。它用 Rust 编写，内存占用很小，一台小服务器就能给一个团队用。

把密码库放在自己的服务器上，意味着数据不经过第三方的云；也意味着域名、注册开关、备份和升级都要自己负责。这篇文章用 Zenavo 的 Vaultwarden 模板，从部署一路走到备份。

Vaultwarden 是社区项目，与 Bitwarden 公司没有关系。

## 部署 Vaultwarden

先在 Zenavo 中[连接一台 Linux 服务器](https://docs.zenavo.app/zh-CN/servers/add-a-server)，再打开 [Vaultwarden 模板](https://zenavo.app/deploy?template=vaultwarden)，选择服务器并部署。

当前模板的配置如下：

| 配置 | 值或用途 |
|---|---|
| 镜像 | `vaultwarden/server:latest` |
| HTTP 端口 | `80` |
| 持久化目录 | `/data`：SQLite 数据库、附件、Send 文件、登录用的密钥和管理后台保存的设置都在这里 |

模板没有预设任何环境变量。下面几步把它补齐。

## 先绑定域名，再注册

Vaultwarden 的网页版依赖浏览器的加密接口，只能在 HTTPS 下使用，所以**注册账号之前**先绑定域名。

在 vaultwarden 服务的 **网络** 页为 `80` 端口绑定域名，例如 `vault.example.com`，在 DNS 添加指向服务器的 A 记录，等待 HTTPS 生效。步骤见[域名文档](https://docs.zenavo.app/zh-CN/networking/domains)。

然后在 **变量** 标签页添加：

```sh
DOMAIN=https://vault.example.com
```

保存后重启。`DOMAIN` 要和你实际访问的地址完全一致（包括 `https://`），邮件里的链接和一些客户端功能都依赖它。

## 创建账号，然后关闭注册

打开 `https://vault.example.com`，点 **创建账号**，设置邮箱和主密码。

**主密码无法找回。** Vaultwarden 只保存加密后的数据，服务器管理员也解不开。忘记主密码就等于丢失整个密码库，请把它记在安全的地方，或者开启客户端的生物识别解锁作为日常入口。

模板默认允许任何人注册。团队成员都注册完之后，在 **变量** 中添加：

```sh
SIGNUPS_ALLOWED=false
```

保存并重启。之后只有被组织邀请的人才能加入（`INVITATIONS_ALLOWED` 默认开启）。如果只想允许公司邮箱注册，也可以保留注册，改用 `SIGNUPS_DOMAINS_WHITELIST=example.com`。

## 配置邮件（邀请同事需要）

邀请成员、邮箱验证、新设备登录提醒都要发邮件。在 **变量** 中加入你的 SMTP 服务：

```sh
SMTP_HOST=smtp.example.com
SMTP_PORT=587
SMTP_SECURITY=starttls
SMTP_FROM=vault@example.com
SMTP_USERNAME=你的 SMTP 用户名
SMTP_PASSWORD=你的 SMTP 密码
```

使用 465 端口的服务商，把 `SMTP_SECURITY` 改为 `force_tls`。保存并重启。变量值在 Zenavo 中加密保存，并对团队观察者隐藏。

## 团队共享：组织和集合

在网页版点 **新建组织**，创建一个组织，再按用途建立**集合**，例如“服务器”“第三方账号”“财务”。把需要共享的条目放进集合，再邀请成员并指定他们能访问哪些集合。

成员接受邀请后，组织管理员还要在成员列表里**确认**一次，对方才能看到共享内容。这一步是为了交换加密密钥，是正常现象。

## 连接 Bitwarden 客户端

所有 Bitwarden 客户端在登录页都可以选择服务器：

1. 在登录页找到服务器（或“登录到”）选项，选择 **自托管**。
2. 服务器 URL 填 `https://vault.example.com`。
3. 用你的邮箱和主密码登录。

浏览器扩展、桌面版和手机 App 都会在本地缓存一份加密的密码库，服务器短暂停机时仍能查看已有条目。

## 管理后台（可选）

Vaultwarden 有一个 `/admin` 管理后台，可以查看用户、删除账号、修改设置。没有设置 `ADMIN_TOKEN` 时它是关闭的，我们建议保持关闭，需要时再开启。

要开启时，不要直接用明文密码。在 vaultwarden 服务的 **命令** 面板运行：

```sh
/vaultwarden hash
```

按提示输入两次密码，它会输出一串以 `$argon2id$` 开头的字符串。把整串作为 `ADMIN_TOKEN` 的值保存，重启后用刚才输入的密码登录 `https://vault.example.com/admin`。

注意：在管理后台保存的设置会写入 `/data/config.json`，并**覆盖**同名的环境变量。之后如果改变量不生效，先检查管理后台里是不是也设过。

## 备份

一个服务端的全部数据都在 `/data` 数据卷里。在 vaultwarden 服务的 **备份与恢复** 中备份这个数据卷：

1. 选一个没人使用的时间，停止项目（数据卷备份要求项目处于停止状态）。
2. 创建备份，完成后启动项目。客户端在这几分钟里仍能读取本地缓存。
3. 下载一份备份自行保存。

备份文件包含加密后的密码库，但也包含附件和登录用的密钥，请像保管密码一样保管它。另外建议每个人定期在网页版用 **工具 → 导出密码库** 导出一份加密的 JSON，作为与服务器无关的第二份副本。

备份只有在恢复并核对过之后才算可靠。可以把备份恢复到一个新项目里，登录确认条目都在。

## 升级

模板使用 `latest` 标签，每次重新部署都可能拿到新版本。长期使用时，在服务 **设置** 的 **来源** 中把镜像改成固定版本，例如 `vaultwarden/server:1.37.5`（以[发行页](https://github.com/dani-garcia/vaultwarden/releases)上的版本为准）。升级前先备份，读完发行说明再换版本。

## 常见问题

**网页打不开，或者提示需要安全连接？**
网页版只能通过 HTTPS 使用。确认域名已经绑定、证书已生效，并且是用 `https://` 访问的。

**我关闭了注册，怎么再加人？**
在组织里邀请对方。配置好 SMTP 后对方会收到邀请邮件；没有 SMTP 时，被邀请的邮箱可以直接在网页版注册。

**忘记主密码怎么办？**
无法找回，服务器上没有能解密的东西。只能删除这个账号重新注册，原来的条目会丢失。这也是为什么要定期导出一份密码库。

**手机上收不到实时同步？**
网页版和桌面版会通过 WebSocket 实时同步。手机 App 的推送通知需要在 [bitwarden.com/host](https://bitwarden.com/host) 申请安装 ID 和密钥，再设置 `PUSH_ENABLED=true`、`PUSH_INSTALLATION_ID` 和 `PUSH_INSTALLATION_KEY`。不配置时，手机 App 会在打开或下拉刷新时同步。

**需要多大的服务器？**
Vaultwarden 本身通常只占几十 MB 内存，和其他应用共用一台小服务器完全没问题。

从 [Vaultwarden 模板](https://zenavo.app/deploy?template=vaultwarden)开始：先绑定域名，再注册账号、关闭注册，最后安排好备份。
