一些网站密码泄露后,我检查了浏览器里保存的 700 多条密码,发现不少密码存在重复使用。于是我把密码迁移到了 Vaultwarden,服务端运行在 Google Cloud,通过 Cloudflare Tunnel 对外访问。

这套部署以我 2025 年 7 月使用的免费额度和控制台界面为准。云服务的免费范围可能变化,创建实例前需要重新核对 Google Cloud 的当前说明。

部署结构

  1. Google Cloud (GCP) - 你的免费服务器

    • 作用:提供一台位于美国,24 小时运行的微型虚拟服务器 (e2-micro)。
    • 免费点:GCP 提供“始终免费”层级,其中就包含了这台服务器、30GB 的硬盘和每月 1GB 的对外流量。这对密码库来说绰绰有余。
  2. Cloudflare Tunnel - 访问通道

    • 作用:连接 GCP 上的服务与 Cloudflare 网络。
    • 安全点:Vaultwarden 不需要直接开放 HTTP 或 HTTPS 入站端口,外部访问经过 Cloudflare Tunnel。
    • 免费点:我部署时使用的是 Cloudflare 的免费方案。
  3. Vaultwarden - 你的轻量级密码管家

    • 作用:提供兼容 Bitwarden 客户端的开源服务端,对服务器资源要求较低,适合运行在微型实例上。

准备工作

  1. 一个 Google Cloud 账号:点击注册。需要绑定一张信用卡用于身份验证,但只要你不超出免费额度,就不会被收费。
  2. 一个 Cloudflare 账号:点击注册。免费套餐即可。
  3. 一个你自己的域名:这是你访问密码库的地址。可以在Namecheap、GoDaddy等平台购买,一年费用通常几十元人民币。购买后,需要按照 Cloudflare 的提示,将域名的 DNS 服务器修改为 Cloudflare 的服务器。

创建 Google Cloud 服务器

  1. 登录 Google Cloud Console。
  2. 导航到 “计算引擎(Compute Engine)” > “VM 实例”,然后点击 “创建实例”。
  3. 按照以下关键配置进行设置,确保免费:
    • 名称:随意,例如 bitwarden-server。
    • 区域(Region):务必选择以下三个之一(us-west1离中国最近):
      • us-west1(俄勒冈)
      • us-central1(爱荷华)
      • us-east1(南卡罗来纳)
    • 机器类型(Machine type):选择 e2-micro。
    • 启动磁盘(Boot disk):点击“更改”,将**“启动磁盘类型”**修改为 “标准永久性磁盘”,大小设置为30 GB 或更小。
    • 防火墙(Firewall):不要勾选 “允许 HTTP 流量” 或 “允许 HTTPS 流量”。

控制台右侧可能显示标准估算价格。是否能被免费额度抵扣,以创建实例时 Google Cloud 的规则和最终账单为准。

  1. 点击 “创建”,等待几分钟,你的免费服务器就准备好了。

安装 Vaultwarden

  1. 在 VM 实例列表中,找到你刚创建的服务器,点击最右侧的 “SSH” 按钮,浏览器会弹出一个终端窗口。
  2. 在终端里,依次输入以下命令来安装 Docker(一个容器化工具):
    BASH
    sudo apt-get update
    sudo apt-get install -y docker.io
  3. 运行下面这行命令,一键启动你的 Vaultwarden 密码库服务:
    BASH
    sudo docker run -d --name vaultwarden -v /vw-data/:/data/ -p 8080:80 --restart unless-stopped vaultwarden/server:latest

创建 Cloudflare Tunnel

  1. 登录 Cloudflare 仪表板,选择你的域名。
  2. 在左侧菜单中,找到并点击 “Zero Trust”。
  3. 进入 Zero Trust 仪表板后,在左侧导航到 “Networks” > “Tunnels”。
  4. 点击 “Create a tunnel”,给隧道起个名字(如bitwarden-gcp),保存。
  5. 在“Choose your environment”页面,选择 “Debian”,然后复制下面框里的那段以curl开头的命令。
  6. 回到你 GCP 的SSH 终端窗口,粘贴并运行刚刚复制的命令。这会自动安装并配置好通道。
  7. 稍等片刻,Cloudflare 页面会显示你的连接器已激活。点击 “Next”。
  8. 现在配置公共访问地址:
    • 子域名 (Subdomain):输入你想要的地址前缀,例如 bw。
    • 域名 (Domain):选择你的域名。
    • 服务 (Service):
      • Type: 选择 HTTP。
      • URL: 输入 localhost:8080。

解惑: 这里使用 HTTP 是安全的,因为这是cloudflared在服务器内部与 Vaultwarden 通信,流量并未离开服务器,不产生任何费用。你从外部访问https://bw.yourdomain.com的全程都是被 Cloudflare 加密的。

  1. 点击 “Save hostname”。

等待一两分钟后访问 https://bw.yourdomain.com,确认 Bitwarden 登录页面可以打开。

安全配置与数据迁移

禁止新用户注册

在你注册完自己的账号后,为了安全,必须禁止其他人注册。

  1. 回到 GCP 的 SSH 终端。
  2. 依次执行以下三条命令,用新的配置重建容器(数据不会丢失):
    BASH
    # 停止当前容器
    sudo docker stop vaultwarden
    # 移除旧容器
    sudo docker rm vaultwarden
    # 使用禁止注册的配置重新启动
    sudo docker run -d --name vaultwarden -e SIGNUPS_ALLOWED=false -v /vw-data/:/data/ -p 8080:80 --restart unless-stopped vaultwarden/server:latest
  3. 刷新你的登录页面,会发现“创建账户”的按钮已经消失了。

从 Chrome 浏览器导入密码

  1. 导出:在 Chrome 地址栏输入 chrome://settings/passwords,在右侧菜单中选择“导出密码”。
  2. 导入:登录你的 Vaultwarden 网页版,进入 “工具” > “导入数据”,格式选择“Chrome (csv)”,然后上传文件即可。
  3. 清理:导出的.csv文件是明文,导入后请立即彻底删除它。

配置浏览器插件

  1. 从Chrome 应用商店安装官方Bitwarden插件。
  2. 点击插件图标,点击左上角的齿轮设置。
  3. 在**“服务器 URL”**中,填入你的完整域名 https://bw.yourdomain.com,保存。
  4. 用你的主密码登录插件。
  5. 回到chrome://settings/passwords,关闭“要约保存密码”和“自动登录”。

配置完成后,Bitwarden 插件会负责密码的自动填充和保存。

忘记主密码时怎么办

问:如果我忘记了 Vaultwarden 的主密码怎么办?

服务端管理员无法查看或重置 Vaultwarden 的主密码。

  • 唯一的机会:注册时设置的“密码提示”。
  • 最后的手段:管理员可以删除这个账户,让用户用原邮箱重新注册一个空密码库,但原有数据无法恢复。

相关内容

一台 2C4G VPS 上用 1Panel(LEMP + Docker)跑多个 WordPress,优化后后台变慢并出现 EdgeOne 524。本文按时间线复盘:如何从“缓存/超时”误区切换到“容器环回 + Docker 出网被 iptables FORWARD 掐死”的根因定位,最终用 host-gateway + iptables 持久化完成修复,并给出可复制的检查清单。

WordPress运维1Panel

搜索

开始搜索
↑↓
↵
ESC
Ctrl K快捷键