2026年 OpenClaw 於雲端 Docker 與 Tailscale 零公網暴露部署示意

雲上跑 OpenClaw Gateway,常要 MCP/HTTP 僅 tailnet、安全組無公網埠ComposeTailscale 側車up 與狀態卷,Gateway 綁 tailscale0127.0.0.1;映像/埠依釘版。以下收斂網路+鑑權步驟;逾時見 MCP stdio/HTTP 教學

一、Compose 側車:別讓 ports: 0.0.0.0 偷開公網面

側車與 Gateway 同一 Docker network,狀態卷分開,勿共用 /var/lib/tailscale。別寫 ports: "443:443" 或綁 0.0.0.0——安全組再嚴也會在資料面多公網路徑。Gateway 只聽 bridge 內或 127.0.0.1,TLS 終止用僅 tailnet 可達的反代,勿對公網 publish

口訣:docker ps 先確認無公網映射,再調 ACL/憑證。

二、Gateway 綁 tailnet:HTTPS 與 Token 兩層都要

uptailscale cert 或內網 Caddy 拿tailnet 鏈Token 用環境變數/secret,勿進映像;反代與 Gateway 各驗 Bearer。輪替後滾動重啟;auth key/ACL 與 API Key 同表。

三、Serve 與 Funnel:合規邊界別混用

Serve 限 tailnet;Funnel 上公網,合規要零公網就預設關並稽核。公網回呼另開變更單,見 Webhook 教學。對齊主機名/前綴/base path,免 404/重導迴圈。

四、連線失敗:依固定順序縮小變因

1)側車內 tailscale status,無 NeedsLogin2)他機 pingcurl -vk https://主機名 分 ACL。3)直連 Gateway 帶 Authorization 分 TLS/401。4)僅 HTTP 壞、stdio 好→查逾時。收緊 ACL 做演練並記回滾。

  • 狀態卷是否在重啟後遺失而需重新登入?
  • 宿主 tailscaled 與容器側車是否路由重疊?

尾段:閘道在 Linux,重活仍可落在 Mac mini

Linux 跑 Gateway 省成本,iOS 建置/簽章仍靠 macOS。重活丟獨佔 Mac miniApple Silicon 頻寬;約 4W 待機、靜音Gatekeeper/SIP/FileVault 顧無人機。接雲上 MacMac mini M4 作 2026 起點——開 Macstripe 首頁 挑區域,與 Compose 同 tailnet。