密码仍然是黑客和您账户之间的主要防线,但 81% of data breaches 源自弱密码或被盗凭证。只有三分之一的美国人使用密码管理器,导致数百万人面临凭证盗窃和账户接管风险。真正的问题是,您是否可以信任他人来管理您的密钥库。
本指南展示如何在您自己的服务器上自托管Bitwarden密码管理器,实现完全控制。您将学到Windows Server 2025和Ubuntu 24.04 LTS的分步安装方法,以及安全加固措施以确保只有您能访问您的密钥库。
您将构建什么(以及为什么选择服务器)?
当你自行托管 Bitwarden 密码管理器时,你在自己的服务器上创建了一个私有的密码管理基础设施。这种设置让你完全控制凭证的存储位置、备份方式以及访问权限。
为什么为 Bitwarden 选择 VPS?
虚拟私有服务器为密码管理提供了控制力、性能和成本效益的理想平衡。

完整的数据主权
你的密码库永远不会离开你控制的基础设施。与云托管服务不同,你的加密数据驻留在你选择的服务器上,位于你指定的位置。
Always-On Accessibility
VPS 全天运行,让你的密码库随时随地可用。你不需要让个人计算机始终开启。
Dedicated Resources
VPS 计划提供有保证的 CPU、RAM 和存储资源,这些资源不与其他用户的工作负载共享。无论其他客户在做什么,性能都保持一致。
Scalability
随着密码管理需求从个人使用扩展到团队或业务部署,VPS 计划可以随之扩展。从小规模开始,按需升级。
Cost-Effective
VPS 托管成本远低于维护专用物理硬件。你获得类似的隔离和控制优势,而无需前期投资。
Professional Security
信誉良好的 VPS 提供商提供 DDoS 保护、定期备份和企业级网络安全。独立实现这些会很昂贵且耗时。
自托管需要什么?
你需要了解硬件规格来自托管 Bitwarden 密码管理器。这有助于你选择合适的 VPS 计划,防止日后出现性能问题。

Windows 服务器硬件要求
要成功在 Windows Server 2025 上部署,你需要以下最低规格。
Processor: x64、1.4GHz CPU 最低配置;x64、2GHz 双核推荐
RAM: 6GB minimum; 8GB or more recommended for production use.
Storage: 76GB minimum; 90GB recommended for production deployments.
Docker: Docker Desktop with Engine 26.0+ (推荐 27.x) 和 Compose;Hyper-V 支持(不支持 WSL2)
Windows Server 2025 需要嵌套虚拟化支持。Azure 用户应使用 Standard D2s v3 虚拟机,安全类型设置为 Standard,而非 Trusted launch。
Linux 硬件要求
Linux 发行版需要的资源更少。要在 Ubuntu 24.04 LTS、Debian 12 或 Rocky Linux 9 上自托管 Bitwarden 密码管理器,你需要以下配置。
Processor: x64、1.4GHz CPU 最低配置;x64、2GHz 双核推荐
RAM: 2GB minimum; 4GB or more recommended for multiple users
Storage: 12GB minimum; 25GB recommended for production
Docker: Docker Engine 26.0+ (推荐 27.x) 和 Docker Compose
Linux 是更高效的选择。它使用的 RAM 约为 Windows Server 部署的三分之一,同时提供完全相同的功能。
Performance Comparison:
| Metric | Linux (Ubuntu 24.04) | Windows Server 2025 |
| Minimum RAM | 2GB | 6GB |
| Minimum Storage | 12GB | 76GB |
| Docker Overhead | Lower | Higher (Hyper-V) |
| Update Complexity | Simple | Moderate |
| Community Resources | Extensive | Moderate |
| 初始设置时间 | 15-30 minutes | 30-60 minutes |
选择你的 VPS 提供商
自建 Bitwarden,你需要一台 VPS(具有完整 root 访问权限)、Docker 支持和一个稳定的公网 IP。同时需要高网络吞吐量和可靠的正常运行时间,以确保密码库在所有设备之间即时同步。
Cloudzy 提供这种工作负载所需的高性能基础设施。我们的 Docker VPS 托管 方案采用 AMD Ryzen 9 处理器(最高 5.7 GHz)和 NVMe 存储。这提供了加密数据库操作所需的单线程性能。
我们提供高达 40 Gbps 的网络连接和 99.95% 的正常运行时间 SLA 保证,确保你的密码库随时可访问。此外,我们在全球 12 个城市提供服务器位置,让你可以在任意位置托管数据。
Recommended Configurations:
- 个人使用(10 个用户以下): 2 个 CPU 核心、4GB RAM、25GB NVMe 存储。
- 团队使用(10 到 50 个用户): 4 个 CPU 核心、8GB RAM、50GB NVMe 存储。
安装前需要准备什么?
开始安装之前,先准备好这些内容会让流程更顺利。

1. 域名和 DNS 记录
配置一个域名(例如 vault.yourdomain.com),用 DNS A 记录指向你的 VPS IP 地址。Bitwarden 使用域名效果最佳。仅用 IP 地址会限制 SSL 选项,也会让证书管理变得困难。
2. Bitwarden 安装 ID 和密钥
Visit the Bitwarden 托管门户 并提供一个有效的电子邮件地址。你会通过邮件收到安装 ID 和安装密钥。安全保存这两个值,因为设置时需要用到。
3. VPS 访问凭证
确认你已准备好以下内容:
- Linux 服务器的 SSH 访问凭证
- Windows 服务器的远程桌面(RDP)访问
- 管理员或 root 级权限
4. SSL 证书方案
决定如何处理 SSL/TLS 加密:
- Let's Encrypt 在安装期间自动生成证书
- 从证书颁发机构获得的 SSL 证书
- 仅用于测试环境的自签名证书
5. SMTP 服务器详情
要邀请用户和验证电子邮件,你需要 SMTP 服务器凭据:
- SMTP 主机名和端口
- 身份验证用户名和密码
- 发件人电子邮件地址
未设置 SMTP 时,你无法邀请用户或验证电子邮件地址。但初始管理员账户可以正常使用系统。
如何在 Linux(Ubuntu/Debian/Rocky)上安装?
本指南使用 Ubuntu 24.04 LTS。步骤在 Debian 12 和 Rocky Linux 9 上完全相同,只需根据包管理器进行调整。按照这些步骤,你可以在任何这些 Linux 发行版上自主部署 Bitwarden 密码管理器。

步骤 1:初始服务器配置
通过 SSH 连接到你的 Linux VPS 并更新系统:
sudo apt update && sudo apt upgrade -y
验证防火墙中端口 80(HTTP)和 443(HTTPS)已开放。在 Ubuntu 上使用 UFW:
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw reload
步骤 2:安装 Docker 引擎
Bitwarden 在 Docker 容器内运行。Docker 引擎是安装的基础。安装 Docker 引擎 26.0+ 和 Docker Compose V2 插件:
sudo apt install docker.io docker-compose-plugin -y
sudo systemctl enable --now docker
sudo systemctl status docker
The enable –now 命令立即启动 Docker 并确保服务器重启后自动启动。
验证安装成功:
docker --version
docker compose version
Both commands should return version numbers. Docker Engine should be 26.0 or higher, Docker Compose should be 2.0 or higher.
步骤 3:创建 Bitwarden 用户和目录
以独立的非 root 用户身份运行 Bitwarden 是安全最佳实践。这会限制应用被破坏时的潜在危害。创建此专用用户账户:
sudo adduser bitwarden
出现提示时设置强密码。如果需要直接以 Bitwarden 用户身份登录,此密码保护 SSH 访问。
创建 Docker 组(若不存在的话;大多数系统已有此组):
sudo groupadd docker
将 Bitwarden 用户添加到 Docker 组。这授予在无需 sudo 的情况下运行 Docker 命令的权限:
sudo usermod -aG docker bitwarden
创建权限受限的 Bitwarden 安装目录:
sudo mkdir /opt/bitwarden
sudo chmod -R 700 /opt/bitwarden
sudo chown -R bitwarden:bitwarden /opt/bitwarden
The 700 权限意味着仅 Bitwarden 用户可以读取、写入或执行此目录中的文件。这保护你的密码数据库免受其他系统用户访问。
切换到 Bitwarden 用户,继续执行后续安装步骤:
sudo su - bitwarden
cd /opt/bitwarden
第 4 步:下载并运行安装脚本
下载 Bitwarden 安装脚本:

curl -Lso bitwarden.sh "https://func.bitwarden.com/api/dl/?app=self-host&platform=linux" && chmod 700 bitwarden.sh
开始安装:
./bitwarden.sh install
第 5 步:配置安装提示
安装程序会要求你输入几个值:
Domain Name: 输入你配置的 DNS 记录(vault.yourdomain.com)
SSL Certificate: Type Y 如果你想让 Let's Encrypt 生成证书,或者 N 如果你已经有了
Installation ID: 输入来自 https://bitwarden.com/host/ 的 ID
Installation Key: 输入来自 https://bitwarden.com/host/ 的密钥
根据你选择的 SSL 证书,按照剩余的提示步骤操作。安装过程会下载 Docker 镜像并配置环境。
第 6 步:配置电子邮件设置
编辑环境配置文件:
nano ./bwdata/env/global.override.env
设置您的 SMTP 凭证:
globalSettings__mail__smtp__host=smtp.yourprovider.com
globalSettings__mail__smtp__port=587
globalSettings__mail__smtp__ssl=false
globalSettings__mail__smtp__startTls=true
[email protected]
globalSettings__mail__smtp__password=yourpassword
保存文件(Ctrl+X,然后 Y,然后 Enter)。
第 7 步:启动 Bitwarden
启动你的 Bitwarden 实例:
./bitwarden.sh start
首次启动时,会从 GitHub Container Registry 下载所有 Docker 镜像。这可能需要几分钟。验证所有容器是否正在运行:
docker ps
You should see multiple Bitwarden containers listed as “Up”.
在网络浏览器中访问你配置的域名(https://vault.yourdomain.com)。你应该会看到 Bitwarden 网页保管库的登录页面。创建主账户后即可开始使用密码管理器。
如何在 Windows 服务器上安装(PowerShell)?
本部分介绍如何在 Windows Server 2025 上使用 PowerShell 安装。此过程与 Linux 安装类似,但使用 Windows 特定命令在您的 Windows VPS 上自托管 Bitwarden 密码管理器。

第一步:初始化 Windows 配置
使用远程桌面协议 (RDP) 连接到你的 Windows VPS。RDP 提供完整的图形界面体验,满足 Docker 桌面配置的需求。
确认 Windows 防火墙允许端口 80 和 443 的流量。以管理员身份打开 PowerShell 并运行:
New-NetFirewallRule -DisplayName "Allow HTTP" -Direction Inbound -Protocol TCP -LocalPort 80 -Action Allow
New-NetFirewallRule -DisplayName "Allow HTTPS" -Direction Inbound -Protocol TCP -LocalPort 443 -Action Allow
第二步:安装 Docker Desktop
Docker Desktop 不正式支持 Windows Server。您可能会遇到稳定性问题。我们建议使用 Linux 以获得更稳定的体验。
从以下位置下载并安装 Docker Desktop for Windows https://www.docker.com/products/docker-desktop/. During installation, uncheck “Use WSL2 instead of Hyper-V”. Bitwarden needs Hyper-V mode to run.
安装后,打开 Docker Desktop,进入设置 → 资源。将 RAM 分配设置为至少 4GB。这样可以让 Docker 从 Windows 获得 RAM。
步骤 3:创建 Bitwarden 用户和目录
以管理员身份打开 PowerShell,然后创建 Bitwarden 用户:
$Password = Read-Host -AsSecureString
出现提示时输入安全密码,然后创建用户账户:
New-LocalUser "Bitwarden" -Password $Password -Description "Bitwarden Local Admin"
将 Bitwarden 用户添加到 docker-users 组:
Add-LocalGroupMember -Group "docker-users" -Member "Bitwarden"
创建 Bitwarden 安装目录:
mkdir C:\Bitwarden
在 Docker Desktop 中,依次进入设置 → 资源 → 文件共享。添加 C:\Bitwarden 到资源列表。点击应用并重启。
第 4 步:下载 Bitwarden 安装脚本
进入 Bitwarden 目录:
cd C:\Bitwarden
下载安装脚本:
Invoke-RestMethod -OutFile bitwarden.ps1 -Uri "https://func.bitwarden.com/api/dl/?app=self-host&platform=windows"
运行安装程序:
.\bitwarden.ps1 -install
第 5 步:配置安装提示
安装程序的提示与 Linux 安装相同:
Domain Name: 输入您的 DNS 配置域名
SSL Certificate: Enter Y 用于 Let's Encrypt 证书或 N 如果你自己提供
Installation ID: 来自 https://bitwarden.com/host/
Installation Key: 来自 https://bitwarden.com/host/
根据你选择的 SSL 配置完成剩余的设置。
步骤 6:配置邮件并开始
Edit C:\Bitwarden\bwdata\env\global.override.env 使用你的 SMTP 设置,然后重启 Bitwarden:
.\bitwarden.ps1 -restart
访问您配置的域名,进入 Bitwarden 保险库来创建主账户。
最快的验证和加固方式是什么?
自托管 Bitwarden 密码管理器后,在添加用户或导入密码之前,先验证你的实例是否正常运行。

Verification Steps
SSL 证书检查: Open your Bitwarden domain in a web browser (https://vault.yourdomain.com). You should see the Bitwarden web vault login screen, a padlock icon in the address bar, and no “Not Secure” warnings.
如果您看到证书警告,请查看 SSL 设置部分。
管理员账户创建: Click “Create Account” on the login screen. Use a strong master password with at least 12 characters mixing uppercase, lowercase, numbers, and symbols. Write this password down and store it securely offline.
Bitwarden 无法恢复丢失的主密码。
客户端应用测试: Install the Bitwarden browser extension or mobile app. Before logging in, tap the settings/gear icon, change “Server URL” to your self-hosted domain, save, and return to login.
输入你的凭证,验证你可以添加新的密码条目,在网页保险库中查看同步效果,以及从浏览器扩展中检索该密码。
Docker Container Health: 验证所有容器都在运行中。
Linux:
cd /opt/bitwarden
docker ps
Windows:
cd C:\Bitwarden
docker ps
Expected output: 5-7 containers listed, all showing “Up” in the STATUS column. Container names include: bitwarden-web, bitwarden-api, bitwarden-identity, bitwarden-attachments, bitwarden-icons, bitwarden-mssql, bitwarden-nginx.
如果任何容器显示「Exited」或缺失,请检查日志: docker compose logs [container-name]
安全加固清单
启用双因素认证: 立即为管理员账户配置 2FA。Bitwarden 支持身份验证器应用、邮箱和硬件密钥进行二次验证。
配置防火墙规则: 限制 SSH(Linux 上的端口 22)或 RDP(Windows 上的端口 3389)只允许特定 IP 地址访问。考虑在 Linux 上使用 fail2ban 来阻止暴力破解尝试。
设置定期备份: Back up /opt/bitwarden/bwdata (Linux) or C:\Bitwarden\bwdata (Windows) 按计划执行。此目录包含你的数据库和设置。将备份存储在服务器外以实现真正的灾难恢复。
更新证书续期: 如果使用 Let's Encrypt,请确保已配置自动续期。用以下命令测试续期: ./bitwarden.sh renewcert on Linux.
禁用用户注册: 创建所需账户后,禁用新用户注册功能以防止未授权的注册。编辑 global.override.env and add: globalSettings__disableUserRegistration=true 然后重启 Bitwarden。
配置管理员门户访问权限: 授权特定电子邮件地址访问系统管理员门户。添加 [email protected] 到您的设置文件。
查看访问日志: Monitor /opt/bitwarden/bwdata/logs (Linux) or C:\Bitwarden\bwdata\logs (Windows) 每周检查可疑活动模式。
如何安全地维护和升级 Bitwarden?
定期维护确保你的实例安全高效运行。遵循最佳实践,你可以放心地自托管 Bitwarden 密码管理器,用上多年而无后顾之忧。

Update Procedure
Bitwarden 定期发布包含安全补丁和新功能的更新。请在每月更新一次,或在官方渠道宣布安全更新时立即更新实例。
Linux 更新流程:
cd /opt/bitwarden
./bitwarden.sh updateself
./bitwarden.sh update
./bitwarden.sh start
The updateself 命令会更新安装脚本本身,而 update 拉取新的 Docker 镜像。
Windows 更新流程:
cd C:\Bitwarden
.\bitwarden.ps1 -updateself
.\bitwarden.ps1 -update
.\bitwarden.ps1 -start
Backup Strategy
Your bwdata 目录包含了所有内容:数据库、配置文件、SSL 证书和日志。自建 Bitwarden 密码管理器时,自动备份是必要的安全措施。
What to backup:
Database: Linux uses bwdata/mssql/data (SQL Server),Windows 使用 bwdata/mssql/data.
Configuration: The bwdata/env 目录包含环境变量、SMTP 设置和域配置详情。
SSL Certificates: Located in bwdata/ssl 如果使用自定义证书而不是 Let's Encrypt。
自动备份脚本 (Linux):
#!/bin/bash
# Save as /home/bitwarden/backup-bitwarden.sh
BACKUP_DIR="/home/bitwarden/backups"
DATE=$(date +%Y%m%d-%H%M%S)
# Create backup directory if it doesn't exist
mkdir -p $BACKUP_DIR
# Create compressed backup
cd /opt/bitwarden
tar -czf $BACKUP_DIR/bitwarden-backup-$DATE.tar.gz bwdata/
# Keep only last 30 days of backups
find $BACKUP_DIR -name "bitwarden-backup-*.tar.gz" -mtime +30 -delete
# Optional: Copy to remote storage
# rsync -az $BACKUP_DIR/ user@remoteserver:/backups/bitwarden/
使脚本可执行并添加到 crontab:
chmod +x /home/bitwarden/backup-bitwarden.sh
# Run daily at 2 AM
crontab -e
# Add this line:
0 2 * * * /home/bitwarden/backup-bitwarden.sh
Windows 备份 (PowerShell):
# Run as scheduled task
$Date = Get-Date -Format "yyyyMMdd-HHmmss"
$BackupPath = "C:\Backups\Bitwarden"
New-Item -ItemType Directory -Force -Path $BackupPath
Compress-Archive -Path "C:\Bitwarden\bwdata" -DestinationPath "$BackupPath\bitwarden-backup-$Date.zip"
# Clean old backups (older than 30 days)
Get-ChildItem -Path $BackupPath -Filter "*.zip" |
Where-Object {$_.LastWriteTime -lt (Get-Date).AddDays(-30)} |
Remove-Item
使用 rsync、加密云存储或独立备份 VPS 将备份存储在服务器外。服务器本地备份无法防护硬件故障。为了 安全文件传输 备份到远程位置,考虑使用 SFTP 或 FTPS 等加密协议。
Monitoring
设置基本监控,在问题影响用户前及时发现:
Container Status: 确保所有 Docker 容器全天保持运行。
Disk Space: 监控 bwdata 目录的可用存储空间,防止磁盘满导致的数据库损坏。
SSL 证书过期: 验证证书按时续期且未出现意外过期。
Log Review: 每周检查错误日志,查找异常活动或身份验证失败。
Recovery Testing
每季度测试一次备份恢复流程,确保能从数据丢失中恢复:
- Stop Bitwarden
- 重命名当前 bwdata 目录
- 从备份恢复
- 启动 Bitwarden 并验证功能
- 如果成功,删除旧目录
Linux 对比 Windows:应该选择哪个?
两个平台都能成功自建 Bitwarden 密码管理器。各有各的优势和权衡,值得深入考虑。

Linux Advantages
Resource Efficiency: Linux 最低需要约 2GB RAM,而 Windows 最低需要 4GB。这意味着每月托管成本更低。
运维成本更低: Linux 将更多资源分配给 Bitwarden,而不是操作系统本身。
Simpler Updates: 软件包管理器让系统更新更加流畅。Docker 集成原生支持,无需额外配置。
Community Support: 自托管社区主要使用 Linux。你可以在网上找到更多社区指南和故障排除资源。
Cost: 大多数 Linux 发行版都是免费的,无需支付操作系统许可费用。
Windows 服务器优势
Familiarity: 熟悉 Windows Server 的系统管理员可以立即应用现有知识。
Integration: 与现有 Windows 基础设施和 Active Directory 环境的集成更加顺畅。
Management Tools: 在大量使用 Windows 的组织环境中,Windows 服务器管理工具可能是首选。
Support: Microsoft 提供的商业支持选项,用于故障排除和技术协助。
Performance Comparison
| Metric | Linux (Ubuntu 24.04) | Windows Server 2025 |
| Minimum RAM | 2GB | 6GB |
| Minimum Storage | 12GB | 76GB |
| Docker Overhead | Lower | Higher (Hyper-V) |
| Update Complexity | Simple | Moderate |
| Community Resources | Extensive | Moderate |
| 初始设置时间 | 15-30 minutes | 30-60 minutes |
Recommendation
除非你有特定的 Windows 服务器需求,否则选择 Linux。Ubuntu 24.04 LTS 在稳定性、资源效率和社区支持之间提供了最好的平衡。五年的支持期与典型的 VPS 部署生命周期相符。
故障排查(快速解答)
Bitwarden 无法启动: 如果容器失败或保管库无法访问,请先检查 Docker 服务状态。在 Linux 上运行 sudo systemctl status docker。在 Windows 上,验证 Docker Desktop 处于活跃状态。使用以下命令检查错误日志 docker compose logs 发现端口冲突或文件权限问题导致启动失败。
Domain Unreachable: 如果看到连接超时错误,请验证 DNS A 记录指向 VPS IP。确保防火墙允许端口 80 和 443。运行 docker ps to confirm all containers show “Up”. If any are “Exited,” check that specific container’s logs.
Email Failures: 如果用户没有收到邀请,请检查 SMTP 设置 bwdata/env/global.override.env。大多数服务商需要使用端口 587 和 StartTLS。独立测试 SMTP 以排除凭证问题,或检查 identity.txt 服务器端拒绝错误的日志。
SSL 证书错误: 浏览器警告通常表示 Let's Encrypt 验证失败。请确认端口 80 对公网开放。要修复过期的证书,使用以下命令强制更新 ./bitwarden.sh renewcert (Linux) or .\bitwarden.ps1 -renewcert (Windows).
内存占用过高: 如果 VPS 变慢,请使用 docker stats 来识别资源占用高的容器。重启 Bitwarden 可以暂时清除内存泄漏。但持续出现的问题通常需要升级到 4GB+ RAM 的计划。
更新导致安装失败: 更新前始终备份你的 bwdata 目录。如果更新失败,恢复该目录并回退到之前的版本。更新前检查官方发布说明,了解是否有破坏性变更。
在以下地址查看发布说明 https://github.com/bitwarden/server/releases 了解更新前的破坏性变更。
替代方案: Vaultwarden 用于轻量级部署
如果你需要更节省资源的方案,Vaultwarden 是个不错的选择。Vaultwarden 是一个非官方的 Bitwarden 兼容服务器,用 Rust 编写,资源占用更少。

Vaultwarden Advantages
最低资源要求: Vaultwarden 在仅 512MB RAM 的配置下也能流畅运行。这使它适合 Raspberry Pi 等低功耗设备。
兼容 Bitwarden 客户端: 你可以使用相同的官方 Bitwarden 应用、浏览器扩展和移动客户端。只需将它们指向你的 Vaultwarden 服务器 URL 即可。
包含高级功能: Vaultwarden 提供 TOTP 生成和文件附件等高级功能,无需购买 Bitwarden 付费许可证。
Faster Deployment: 在 Linux 系统上通常 10 分钟内完成安装,无需复杂的设置步骤。
何时选择 Vaultwarden
Vaultwarden 最适合:
- 个人使用或小型团队(少于 10 个用户)
- 资源有限的 VPS 计划,RAM 受限
- 用户习惯使用社区支持的软件
- 优先考虑资源效率而非商业支持的环境
何时选择官方 Bitwarden
以下情况下坚持使用官方 Bitwarden:
- 需要商业支持合同的企业级部署
- 需要官方安全审计和认证的组织
- 超过50个用户且并发使用量大的部署
- 需要第三方集成支持保障的环境
两种方案都提供可靠的密码管理。选择取决于你的具体资源限制、支持需求和规模。
Conclusion
自建Bitwarden在一小时内交付企业级安全和数据主权。根据2025年数据泄露 成本平均高达444万美元,自行管理凭证可以降低风险,同时保留现代密码管理器的便利性。
要保护你的实例,立即启用双因素认证并配置自动离线备份。记住你的主密码按设计是不可恢复的,所以要将它存储在物理离线位置,而不是数字设备上。
最后,通过 订阅安全更新 并每季度测试备份恢复来确保长期稳定性。这些简单的维护习惯能让你的保险库保持可访问状态并防止数据丢失。