問題描述
我在 Zeabur 上部署了 OpenClaw 服務,但訪問域名時持續收到 502 Bad Gateway 錯誤。經過診斷,發現 OpenClaw 應用監聽的是本地端口 18789,而不是 Zeabur 期望的外部可訪問端口。
服務信息
項目詳情服務名稱OpenClaw-lita服務 ID6991785367b6b3d51214d369環境 ID69916c830568457b6d447e9d項目 ID69916c83578031156931a76d域名https://openclawskynet.zeabur.app/服務狀態RUNNING服務類型PREBUILT_V2 (Docker 鏡像)Docker 鏡像ghcr.io/openclaw/openclaw:2026.2.14
問題詳情
症狀
- 訪問 https://openclawskynet.zeabur.app/ 返回 502 Bad Gateway
- 服務狀態顯示為 RUNNING,但無法響應外部請求
根本原因分析
1. 網關監聽配置問題
根據運行日誌,OpenClaw 應用監聽的是:
listening on ws://127.0.0.1:18789 (PID 14) listening on ws://[::1]:18789
而不是 Zeabur 期望的外部可訪問端口(如 8080)。
2. 配置文件優先級問題
OpenClaw 的 openclaw.json 配置文件中設置了:
json
"gateway": { "port": 18789, "mode": "local", "bind": "loopback", // ← 只監聽本地回環地址 ... }
嘗試通過環境變數覆蓋這些設置(OPENCLAW_GATEWAY_BIND=0.0.0.0 和 OPENCLAW_GATEWAY_PORT=8080)無效,表示環境變數無法覆蓋配置文件中的設置。
嘗試過的解決方案
- ✅ 添加 MiniMax API Key 環境變數
- ✅ 修改
OPENCLAW_GATEWAY_BIND為0.0.0.0 - ✅ 修改
OPENCLAW_GATEWAY_PORT為8080 - ✅ 重啟服務多次
- ❌ 刪除
openclaw.json強制重新初始化(導致服務崩潰)
環境變數配置
OPENCLAW_GATEWAY_BIND=0.0.0.0 OPENCLAW_GATEWAY_PORT=8080 OPENCLAW_STATE_DIR=/home/node/.openclaw OPENCLAW_WORKSPACE_DIR=/home/node/.openclaw/workspace OPENCLAW_GATEWAY_TOKEN=16d258be1d4c6e82f69980d91e37a4bfc9714dc961f288dc OPENCLAW_DISABLE_BONJOUR=1 NODE_ENV=production NODE_OPTIONS=--max-old-space-size=1024 MINIMAX_API_KEY=sk-api-***
運行日誌摘要
最新日誌(12:34:59 UTC):
2026-02-22T12:34:59.614Z [gateway] listening on ws://127.0.0.1:18789 (PID 14) 2026-02-22T12:34:59.615Z [gateway] listening on ws://[::1]:18789 2026-02-22T12:34:59.613Z [gateway] agent model: anthropic/claude-opus-4-6
配置變更日誌:
2026-02-22T12:34:00.454Z [reload] config change detected; evaluating reload 2026-02-22T12:34:00.452Z [reload] config change requires gateway restart
問題
- OpenClaw 應用如何在 Zeabur 容器中正確配置網關監聽地址?
- 環境變數是否應該被
openclaw.json覆蓋? - 是否需要特定的啟動參數或配置方式?
- Zeabur 對 PREBUILT_V2 服務的端口暴露要求是什麼?
- 應用需要監聽
0.0.0.0:8080嗎? - 還是有其他的配置方式?
- 是否有 OpenClaw 在 Zeabur 上的官方部署指南?
請求
希望 Zeabur 團隊能提供:
- OpenClaw 在 Zeabur 上的正確部署配置
- 如何正確設置網關監聽地址
- 或者是否需要自定義 Dockerfile 來解決此問題