在 Synology NAS 上架設 Vaultwarden:自架 Bitwarden 密碼管理器完整教學
Bitwarden 是公認最好用的開源密碼管理器之一,但它的官方雲端服務每個月仍需要付費才能解鎖進階功能。
Vaultwarden 是社群維護的輕量 Bitwarden 伺服器,完全相容官方的 Bitwarden App 和瀏覽器擴充,但可以部署在你自己的機器上。跑在 Synology NAS 的 Docker 裡,記憶體佔用不到 10MB,幾乎感覺不到它在跑。
密碼放在自己的 NAS 上,不需要信任任何第三方服務。
🎯 這篇適合誰
| 你的情況 | 建議先看哪段 |
|---|---|
| 想先了解 Vaultwarden 是什麼 | 先看「Vaultwarden 是什麼」 |
| 已決定裝,想直接看步驟 | 跳到「安裝步驟」 |
| 裝好了,想連上手機和瀏覽器 | 跳到「連接客戶端」 |
| 想從外部也能用 | 跳到「HTTPS 與對外存取」 |
🔐 Vaultwarden 是什麼
Vaultwarden 是 Bitwarden 伺服器的社群重新實作,用 Rust 寫成,資源消耗極低。它完全相容所有官方 Bitwarden 客戶端:
- Bitwarden 瀏覽器擴充(Chrome、Firefox、Safari)
- Bitwarden iOS / Android App
- Bitwarden 桌面 App
你安裝的客戶端都是官方的,只是後端換成你自己的 Vaultwarden 伺服器。
Vaultwarden vs Bitwarden 雲端
| 項目 | Bitwarden 雲端 | Vaultwarden 自架 |
|---|---|---|
| 費用 | 免費版有限制,進階 USD $10/年 | 完全免費 |
| TOTP(雙因素驗證儲存) | 需付費 | 免費 |
| 緊急存取 | 需付費 | 免費 |
| 資料位置 | 在 Bitwarden 雲端 | 在你的 NAS |
| 對外存取 | 內建 | 需要自己設定 |
| 維護責任 | 對方負責 | 自己負責 |
📋 安裝前準備
- Synology DSM 7.2 以上,已安裝 Container Manager
- HTTPS 強烈建議:Bitwarden 客戶端要求伺服器必須使用 HTTPS 才能正常連線。如果只在家裡區網用,可以先用 HTTP 測試;對外存取必須 HTTPS
設定 HTTPS 和反向代理可以搭配 Nginx Proxy Manager 教學,或使用 Cloudflare Tunnel。
🛠️ 安裝步驟
1. 建立資料夾
在 File Station 建立:
/volume1/docker/vaultwarden/
└── data/
2. 建立 docker-compose.yml
在 /volume1/docker/vaultwarden/ 建立:
version: "3"
services:
vaultwarden:
image: vaultwarden/server:latest
container_name: vaultwarden
volumes:
- /volume1/docker/vaultwarden/data:/data
ports:
- 8888:80
environment:
- WEBSOCKET_ENABLED=true
- SIGNUPS_ALLOWED=true
restart: always
安裝完成並建立帳號後,建議把
SIGNUPS_ALLOWED改為false,防止其他人在你的伺服器上註冊。
3. 啟動容器
Container Manager → 專案 → 建立,路徑選 /volume1/docker/vaultwarden,完成後等待啟動。
或 SSH 執行:
cd /volume1/docker/vaultwarden
docker compose up -d
4. 確認服務運作
瀏覽器開啟:
http://NAS的IP:8888
看到 Vaultwarden 的登入頁面即安裝成功。
🚀 初次設定
建立帳號
點「建立帳號」,填入 Email 和主密碼。
主密碼非常重要: Vaultwarden 沒有「忘記密碼」這回事。如果你忘記主密碼,資料庫裡的密碼全部無法解密。建議用一個你絕對不會忘的長密碼,並另外記錄在安全的地方。
關閉公開註冊
帳號建立完成後,修改 docker-compose.yml,把 SIGNUPS_ALLOWED 改為 false,再重新啟動容器:
environment:
- WEBSOCKET_ENABLED=true
- SIGNUPS_ALLOWED=false # 改這裡
這樣其他人就無法在你的伺服器上建立帳號。
⚠️ 停用 Admin 頁面(重要)
Vaultwarden 有一個管理後台,網址是 http://NAS的IP:8888/admin。預設狀態下它是停用的(因為你的 docker-compose.yml 裡沒有設定 ADMIN_TOKEN),這是正確的。
不要主動開啟 Admin 頁面。 它的風險點在於:
- 一旦設定了
ADMIN_TOKEN,Admin 頁面就會對所有能連到你伺服器的人開放,Token 強度直接決定安全性 - 如果 Vaultwarden 對外開放(透過反向代理或 Cloudflare Tunnel),Admin 頁面同樣對外可達
- Admin 頁面有完整管理權限,包括刪除使用者、強制重設密碼等高危操作
正確做法:
- 不要在
docker-compose.yml裡加ADMIN_TOKEN,讓它保持停用狀態 - 如果你確實需要用 Admin 頁面做某項設定,用完後立刻移除
ADMIN_TOKEN並重新啟動容器 - 想完全不顯示頁面,在反向代理封鎖
/admin路徑(見下方)
絕大多數設定(關閉註冊、Email 設定等)都可以直接改
docker-compose.yml的環境變數完成,不需要開 Admin 頁面。
用 Nginx Proxy Manager 封鎖 /admin
在 NPM 的 Vaultwarden Proxy Host 設定裡,進入 Advanced 分頁,加入:
location /admin {
return 404;
}
儲存後,/admin 路徑會直接回傳 404,頁面完全消失。
用 Cloudflare WAF 封鎖 /admin
如果你的網域走 Cloudflare(包括 Tunnel 流量),可以用 WAF Custom Rules 擋掉:
- Cloudflare Dashboard → 你的網域 → 網路安全 → 安全性規則 → 自訂規則
- 點擊 建立規則,填入規則名稱(例如
Deny Vaultwarden Admin Page) - 填入條件:
- 欄位:
URI 路徑- 運算子:萬用字元- 值:/admin* - 動作:
封鎖 - 儲存並部署

運算式預覽會顯示:(http.request.uri.path wildcard r"/admin*"),確認正確後儲存即可。
免費方案支援最多 5 條自訂規則,請求在 Cloudflare 邊緣就被攔截,流量連 NAS 都到不了。
📱 連接客戶端
瀏覽器擴充
- 安裝 Bitwarden 瀏覽器擴充
- 點擊擴充圖示 → 登入頁面左上角齒輪
- 伺服器 URL 填入:
http://NAS的IP:8888(或你的 HTTPS 網址) - 用你建立的帳號登入
手機 App
- 從 App Store / Google Play 安裝 Bitwarden
- 登入頁面點「自架伺服器」
- 伺服器 URL 填入你的 Vaultwarden 位址
- 登入
🌐 HTTPS 與對外存取
Bitwarden 客戶端在非 localhost 情況下要求 HTTPS。如果你想從家外面也能存取密碼,有兩個推薦做法:
方式 A:Cloudflare Tunnel(推薦,需驗證信用卡)
透過 Cloudflare 的加密通道對外暴露 Vaultwarden,自動獲得 HTTPS,不需要開放任何連接埠。詳細設定見這篇。
方式 B:Nginx Proxy Manager + Let's Encrypt
透過反向代理自動申請 SSL 憑證,設定方式見 Nginx Proxy Manager 教學。
方式 C:Tailscale(不需信用卡,僅限授權裝置存取)
只在你的裝置上安裝 Tailscale,就能透過加密的 mesh 網路連到 NAS,Vaultwarden 不需要對外開放,安全性更高。設定方式見 Tailscale 完整教學,設好後伺服器 URL 填入 NAS 的 Tailscale IP 即可。
💾 備份
Vaultwarden 的所有資料存在 /volume1/docker/vaultwarden/data/ 目錄。
用 Hyper Backup 把這個資料夾加入備份排程即可。密碼管理器的資料務必定期備份——一旦 NAS 硬碟故障又沒有備份,所有密碼就找不回來了。
Hyper Backup 設定方式可參考這篇。
❓ 常見問題
Q1:Vaultwarden 安全嗎?
Vaultwarden 本身使用和 Bitwarden 相同的加密標準,密碼在客戶端加密後才傳到伺服器,伺服器本身看不到你的密碼明文。安全性的關鍵在於:你的 NAS 要有適當的存取控制,以及 HTTPS 加密傳輸。
Q2:可以多人共用嗎?
可以。Vaultwarden 支援「組織」功能,可以建立共用密碼庫,讓家人或團隊成員共享特定密碼。每個人各自有帳號,共用的部分只開放給組織成員。
Q3:Vaultwarden 壞了,裡面的密碼還能用嗎?
只要你有備份 /data 資料夾,還原後就能繼續使用。建議同時在 Bitwarden App 開啟「離線存取」,這樣即使伺服器暫時無法連線,仍可讀取已快取的密碼。
Q4:忘記主密碼怎麼辦?
目前沒有辦法。Vaultwarden 的加密設計讓伺服器無法代你解密。這是自架的代價——要自己妥善保管主密碼。
Q5:Admin 頁面 /admin 要開著嗎?
不需要,而且建議關閉。 預設安裝不設定 ADMIN_TOKEN 的話,Admin 頁面會自動停用。偶爾需要用到時再臨時啟用,用完立刻移除 Token 並重啟容器。詳細說明見上方「停用 Admin 頁面」。
✨ 總結
Vaultwarden 是資源佔用最低、功能最完整的自架密碼管理方案之一。設定好之後,它在背景安靜地跑,幾乎不需要維護。
搭配 Cloudflare Tunnel 或 Nginx Proxy Manager 設好 HTTPS,你就有一個完全在自己掌控下的密碼管理器,功能不輸付費版的 Bitwarden 雲端。