专题归档 · 2026 年 6 月(编辑分组,非实际写作日期)
Vaultwarden 能打开网页,但客户端 prelogin 404:我会从版本与 API 对齐查起
Vaultwarden 网页可以访问,客户端却在 prelogin 返回 404:版本与反向代理排查。
自己运行 Vaultwarden 这类服务时,最容易被误导的是“网页能打开,说明服务完全正常”。旧排障笔记保存了另一种现象:Bitwarden 的浏览器扩展或手机 App 无法登录,服务端出现 prelogin 请求对应的 404。
我当时整理的主要嫌疑是客户端与自托管服务的 API/版本不匹配。但仅凭 404 本身,还不能排除反向代理路径、Host/DOMAIN 配置或客户端请求地址错误。
为什么重新启动容器可能没有作用
Docker 容器重启只是重新执行本地已有镜像,不会自然把旧镜像升级成最新版本。如果问题确实是服务端版本缺少客户端需要的接口,单靠 docker compose restart 可能看到“进程恢复运行”,却没有解决 API 兼容性。
正确的调查次序应该是先记录当前镜像与容器版本,确认自己当前使用的版本对客户端的 API 支持范围,再决定是否拉取兼容的新镜像并安全重建。生产数据应有有效的持久卷和可恢复备份,升级不能以丢失账号库为代价。
另一条容易遗漏的线索:反向代理
服务端 DOMAIN 与公开访问 URL 不一致,或者反向代理没有把 API 路径完整转发,也会呈现类似的“页面能打开、某条 API 却 404”。因此我不会把“升级 Vaultwarden”写成所有 prelogin 404 的通用答案。
复测也应从客户端的实际登录请求出发:检查最终请求路径、响应状态、服务器日志,以及升级后是否能完成完整登录,而不是只看服务的健康状态。
面对这种 404,我会先记录容器镜像版本和客户端实际访问的 API 路径,再核对反向代理与服务器日志,最后从客户端完整登录流程复测。只看网页能不能打开还远远不够。