- 使用 Rust 語言編寫的輕量級版本,完全相容於官方 Bitwarden 用戶端。
- 使用 Docker 容器簡化部署,實現完全隱私控制。
- 適用於小型伺服器或樹莓派的理想最低硬體需求。
Vaultwarden 可讓您在自己的伺服器上託管與 Bitwarden 用戶端相容的密碼管理器。這樣,您可以決定資訊的儲存位置、服務的存取權限以及備份方式。
從一開始就明確這一點很重要: Vaultwarden 不是 Bitwarden 的官方伺服器這是一個用 Rust 編寫的獨立社群驅動型實現,它復刻了 Bitwarden 的大部分 API。因此,它可以與 Bitwarden 的官方行動應用程式、桌面程式和擴充功能一起使用。
自託管服務可以提供更多控制權,但是 它並不能自動保證更高的安全性。從那一刻起,您將負責安裝更新、確保存取安全性、審查日誌、維護 HTTPS 以及確保備份可以復原。
使用 Docker 安裝 Vaultwarden 需要哪些工具?

在開始之前,您需要一個與 Docker 相容的系統,並且在您需要同步密碼時系統必須保持開機狀態。這可以是 Linux 伺服器、NAS、迷你電腦或架構與鏡像支援的 Raspberry Pi。
您還需要:
- Docker 引擎 已安裝並運作正常。
- 目前附加元件 Docker Compose.
- 用於永久儲存資料的資料夾。
- 擁有管理 Docker 的終端存取權限。
- 如果您要從其他裝置使用該服務,請採用安全的存取方式。
並非所有安裝都要求統一的記憶體或儲存空間。實際佔用空間取決於使用者數量、附件數量、儲存空間大小以及同一台電腦上執行的其他服務。對於家庭用戶而言,它通常是一個輕量級應用程序,但您仍應預留足夠的空間。 資料及其備份.
使用以下命令檢查安裝情況:
docker --version
docker compose version
如果兩個命令都顯示版本訊息,則可以繼續。
如何使用 Docker Compose 安裝 Vaultwarden
建立一個專用資料夾並將其放入:
mkdir vaultwarden
cd vaultwarden
在資料夾內,建立一個名為“ compose.yml 初始配置如下:
services:
vaultwarden:
image: vaultwarden/server:latest
container_name: vaultwarden
restart: unless-stopped
environment:
SIGNUPS_ALLOWED: "true"
volumes:
- ./vw-data:/data
ports:
- "127.0.0.1:8080:80"
集會 ./vw-data:/data 這至關重要。資料夾 /data 它包含伺服器使用的資料庫、附件、配置和金鑰。如果您在未保留此資料夾的情況下刪除容器,則會遺失儲存的資訊。
地址 127.0.0.1 此初始安裝僅在伺服器端回應。這適合在不將連接埠暴露到網路的情況下測試 Vaultwarden。
啟動容器:
docker compose up -d
查看其狀態:
docker compose ps
docker compose logs --tail=100 vaultwarden
您可以在同一裝置上開啟:
http://localhost:8080
透過以下方式存取 localhost 這用於完成初始設定。若要從另一台電腦、行動應用程式或分機連接,您需要使用 HTTPS 設定安全位址。
如何建立您的第一個帳戶並關閉註冊
打開網頁介面,建立你的第一個帳戶,並驗證你是否可以登入。使用 長、獨一無二且易於記憶的主密碼因為它能保護整個倉庫的存取權限。
建立必要的帳戶後,進行編輯 compose.yml 以及變化:
SIGNUPS_ALLOWED: "true"
經過:
SIGNUPS_ALLOWED: "false"
透過重新建立容器來套用變更:
docker compose up -d
Vaultwarden 預設允許匿名使用者建立帳戶。不必要地開放註冊功能會使第三方更容易佔用空間或未經許可使用您的伺服器。
如果您之後啟用管理面板,即使停用公開註冊,您仍然可以傳送邀請。
為什麼 Vaultwarden 需要 HTTPS
該網上商店使用瀏覽器的 Web Crypto API。這些加密功能通常僅在以下情況下可用: 安全性上下文,例如 HTTPS 或 localhost.
因此,打開 http://192.168.1.50:8080 從另一台電腦存取時,即使容器正在運行,也可能顯示錯誤。在網路上發布連接埠並不能取代 HTTPS 配置。
使用 Vaultwarden 的常見方法有三種:
- 僅限伺服器端: 透過以下方式存取
localhost可用於測試。 - 在專用網路或 VPN 上: 訪問受限,但需保持有效的HTTPS證書。
- 來自互聯網: 網域名稱、反向代理、有效證書和配置正確的防火牆。
您無需公開 Vaultwarden 即可在家外使用它。 VPN 可以限制對您授權裝置的訪問,但用戶端使用的位址仍然必須具有它們認可的憑證。
如何使用 Caddy 配置 HTTPS
Caddy 是最簡單的選擇之一,因為它可以透過 ACME 自動申請和續約證書。要使用公鑰證書,網域必須解析到您的伺服器,並且必要的連接埠必須可存取。
Vaultwarden 和 Caddy 的聯合配置可以使用此檔案。 compose.yml:
services:
vaultwarden:
image: vaultwarden/server:latest
container_name: vaultwarden
restart: unless-stopped
environment:
DOMAIN: "https://vault.example.com"
SIGNUPS_ALLOWED: "false"
volumes:
- ./vw-data:/data
caddy:
image: caddy:2
container_name: vaultwarden-caddy
restart: unless-stopped
depends_on:
- vaultwarden
ports:
- "80:80"
- "443:443"
- "443:443/udp"
volumes:
- ./Caddyfile:/etc/caddy/Caddyfile:ro
- ./caddy-data:/data
- ./caddy-config:/config
替換 vault.example.com 針對您的實際網域名稱。然後建立一個名為 Caddyfile:
vault.example.com {
reverse_proxy vaultwarden:80 {
header_up X-Real-IP {remote_host}
}
}
啟動服務:
docker compose up -d
Caddy 會透過 Compose 建立的內部網路向容器發送請求。目前配置也可以透過相同目標處理 WebSocket 通知,因此無需發布另一個 Vaultwarden 連接埠。
變數 DOMAIN 必須包含完整的外部 URL,包括 https://錯誤的地址可能會導致附件、連結、身份驗證或用戶端出現問題。
如何連接官方 Bitwarden 應用
在擴充功能的登入介面、行動應用程式或桌面程式中,開啟伺服器選擇器並選擇該選項。 自託管.
請輸入完整地址:
https://vault.example.com
登入前請儲存設定。每個客戶端必須連接到同一台伺服器,變更才能正確同步。
如果您使用私人機構頒發的證書,則需要在所有裝置上正確安裝並信任該機構。為避免相容性問題,最好使用有效的公用憑證或您可以妥善控制其信任鏈的私有憑證解決方案。
客戶端連線成功後,您可以 將 Chrome 密碼導入 Vaultwarden 並檢查它們是否出現在您的所有裝置上。
如何保護管理面板
Vaultwarden 提供了一個可選面板 /admin在這裡,您可以查看使用者、組織、診斷資訊和某些伺服器選項。
如果你不需要面板,最安全的做法是… 保持禁用狀態要啟用它,您必須進行配置。 ADMIN_TOKEN它不會以明文形式儲存密碼,而是產生一個 Argon2id 雜湊值:
docker run --rm -it vaultwarden/server /vaultwarden hash
該命令會提示輸入密碼兩次,並返回一個以“ $argon2id$.
避免美元符號問題的便捷方法是將其儲存到檔案中。 .env 位於旁邊 compose.yml:
VAULTWARDEN_ADMIN_TOKEN='$argon2id$v=19$m=...'
然後將其添加到服務中:
environment:
ADMIN_TOKEN: "${VAULTWARDEN_ADMIN_TOKEN}"
如果你直接把哈希值寫進去 compose.yml你必須將每個美元符號乘以 2。 $$ 防止 Docker Compose 將其解釋為變數。
使用以下命令檢查已處理的設定:
docker compose config
此面板只能透過HTTPS存取。如果可能,請將其存取路徑限制在本機網路、VPN或特定IP位址。
請注意,儲存選項後… /admin秘藏守衛者創建 config.json它的值優先於等效的環境變數。這種優先順序解釋了為什麼在編輯 Compose 檔案時,在許多情況下看起來沒有任何變化。
保護秘藏守衛的必要措施
安全措施並非僅僅啟用 HTTPS 就結束了。至少應採取以下措施:
- 使用以下方法停用開啟註冊表:
SIGNUPS_ALLOWED=false. - 使用獨一無二且強度高的主密碼。
- 積極的 雙重身分驗證 所有帳戶。
- 將身份驗證復原代碼保存在其他安全位置。
- 定期更新鏡像和主機系統。
- 請勿在容器內掛載不必要的資料夾或 Docker 套接字。
- 使用防火牆限制真正必要的連接埠。
- 請勿公開資料庫或資料夾
vw-data.
Fail2ban 可以封鎖累積登入失敗次數的位址,但當有反向代理時,必須謹慎配置。 Caddy 或 Nginx 必須傳輸真實的 IP 位址;否則,Fail2ban 可能會封鎖代理本身的位址。
您也可以停用密碼提示的顯示。當伺服器公開可存取時,這些提示可能會助長密碼猜測攻擊。
要了解更多關於這些做法的信息,您可以諮詢如何 安全地使用密碼管理器.
如何設定電子郵件通知
SMTP 設定可讓您傳送邀請、驗證和通知。您需要指定伺服器、寄件者、連接埠、安全方法以及電子郵件服務提供者提供的憑證。
不要將 SMTP 郵件與保險庫備份混淆,也不要將其作為帳戶恢復的唯一途徑。如果您忘記了主密碼且沒有設定其他復原方法,則可能會遺失對加密資料的存取權。
儲存設定後,發送測試郵件,如果郵件未送達,請檢查日誌。同時,請檢查您的垃圾郵件資料夾和 SMTP 服務提供者的限制。
如何對 Vaultwarden 進行完整備份
SQLite資料庫儲存使用者、物品、裝置和組織,但是 它不包含所有文件附件和某些提交內容儲存在單獨的目錄中。
完整副本應包含:
db.sqlite3或資料庫的一致副本。- 資料夾
attachments. - 資料夾
sends如果你想保留這些文件的話。 - 文件
config.json如果你使用面板的話。 - 文件
rsa_key*. - Compose 檔案、Caddy 及其變數。
為了進行簡單且一致的備份,您可以暫時停止 Vaultwarden 並歸檔資料夾:
docker compose stop vaultwarden
tar -czf vaultwarden-backup-$(date +%F).tar.gz vw-data compose.yml Caddyfile .env
docker compose start vaultwarden
該檔案可能包含管理令牌和 SMTP 憑證。 複製前請先加密。 傳輸到另一台電腦或遠端儲存設備。
如果您不想停止該服務,Vaultwarden 提供了一個使用 SQLite 複製機制的命令:
docker exec vaultwarden /vaultwarden backup
此命令可保護資料庫,但您仍應備份附件、設定檔和金鑰。請設定備份自動化,至少保留一份異地備份,並定期測試復原功能。
如何使用 Docker 更新 Vaultwarden
更新前請先建立已驗證的副本。然後運行:
docker compose pull
docker compose up -d
查看狀態和最新消息:
docker compose ps
docker compose logs --tail=100 vaultwarden
Docker 將下載映像並重新建立容器,同時保留映像。 vw-data請勿在未先檢查將要刪除哪些容器、鏡像和網路之前使用全域清理命令。
在穩定性至關重要的安裝環境中,您可以固定使用特定版本的鏡像,而不是始終使用預設版本。 latest這樣您就可以查看版本說明,並決定何時套用每個更新。
使用 Docker 安裝 Vaultwarden 時常見的錯誤
此介面在本機上可以正常運作,但在其他電腦上則無法正常運作。
該連接埠受限於 127.0.0.1 或者,瀏覽器在透過 HTTP 存取時會拒絕加密功能。請在其他裝置上使用該服務之前設定 HTTPS 位址。
官方客戶端無法連接到伺服器
選擇環境 自託管 並輸入確切地址 https://檢查證書、DNS、代理和變量 DOMAIN.
容器啟動後,資料在重新建立時消失了。
音量控制未正確安裝。請檢查一下。 ./vw-data:/data 設定中會顯示「您正在從預期資料夾執行 Compose」。
我無法建立另一個帳戶
Si SIGNUPS_ALLOWED 是 false此行為正確。請從控制台發送邀請,或僅在建立帳戶期間臨時啟用註冊功能。
ADMIN_TOKEN 哈希值無效
檢查符號的內插情況 $使用文件 .env 如果直接在 Compose 中插入字串,請使用單引號或雙引號。
環境因素似乎被忽略了。
檢查它是否存在 vw-data/config.json從面板儲存的選項可能會覆蓋在面板中定義的變數。 compose.yml.
這些憑證在瀏覽器中可以使用,但在行動裝置上無法使用。
該設備可能不信任整個證書鏈。請使用受認可的憑證授權機構,或正確安裝您自己的憑證授權單位及其憑證。
附件失效
檢查一下 DOMAIN 匹配外部地址並確保代理允許所需的請求大小。同時檢查可用空間和權限。 vw-data.
Vaultwarden 無法寫入 vw-data 內部。
主機資料夾權限不相容。請根據日誌中顯示的錯誤檢查擁有者和權限。請勿使用 chmod 777 作為永久解決方案。
Fail2ban 封鎖了錯誤的地址
代理伺服器未傳輸真實 IP 位址,或 Fail2ban 讀取了錯誤的欄位。請正確配置。 X-Real-IP 或與您的代理商對應的標頭。
恢復後的副本不包含附件。
僅備份了 SQLite 資料庫。請同時恢復資料夾。 attachments y sends除了 RSA 配置和金鑰之外。
Vaultwarden 允許您使用組織和收藏集來 共享家庭密碼 使用相容的客戶端。在新增更多使用者之前,請先驗證 HTTPS、兩步驟驗證和備份功能是否正常運作。
最終可以得到一個快速、私密且靈活的密碼管理器,但其安全性取決於維護。只有配合更新、限制存取權和成熟的復原策略,對伺服器的控制才能真正發揮作用。
我是一名技術愛好者,已將自己的“極客”興趣變成了職業。出於純粹的好奇心,我花了 10 多年的時間使用尖端技術並修改各種程序。現在我專攻電腦技術和電玩遊戲。這是因為五年多來,我一直在為各種技術和視頻遊戲網站撰寫文章,力求以每個人都能理解的語言為您提供所需的資訊。
如果您有任何疑問,我的知識範圍涵蓋與 Windows 作業系統以及手機 Android 相關的所有內容。我對您的承諾是,我總是願意花幾分鐘幫助您解決在這個網路世界中可能遇到的任何問題。


