在小型 Linux 雲 VPS 跑 OpenClaw、Ollama 留在住家或內網,是 2026 常見切法:公網入口在雲上,權重與 GPU 留在合規友善處。故障多半來自網路與環境變數——上游網址、雙重 TLS、HTTP_PROXY 拐走回環,或 SSH 隧道靜默斷線。下文是可復現接線與三層排障。出站與隔離決策可對照 短週期 AI 工具:雲端 Mac 對照輕量 VPS(隔離/出站 FAQ)。
拓撲:每一跳誰負責
通道 → 443 TLS → 反代 → Gateway 本機埠 → Ollama HTTP。後端可能在 127.0.0.1:11434、容器 bridge,或 SSH 轉進的專用埠。先畫清每一跳,勿混用容器與主機的 localhost 卻未對應 publish 埠。
Gateway 上游指向 Ollama
後端收成單一基底網址:同機常用 http://127.0.0.1:11434;SSH 轉發埠例 http://127.0.0.1:18080。避免機內再串 HTTPS。變更後以 systemd 同一使用者對 /api/tags 跑 curl;shell 成功而 Gateway 失敗時查使用者、網路命名空間與 unit override。部署與校驗見 OpenClaw Linux 雲主機:curl/Docker 與校驗 FAQ。
TLS 拆分:公網邊緣與內部明文
TLS 只在反代終止;對內明文打到 Gateway 本機埠(例 127.0.0.1:18789)。勿讓反代再以 https:// 指回環,以免多一套憑證。串流勿整包緩衝;必要時對 Ollama 開 keep-alive。
可復現的 SSH 隧道(住家 Ollama → VPS)
住家常開主機執行 ssh -N -o ServerAliveInterval=30 -o ExitOnForwardFailure=yes -R 127.0.0.1:18080:127.0.0.1:11434 user@vps;VPS 上 Gateway 指 http://127.0.0.1:18080。維持 GatewayPorts no、金鑰登入、住家側 systemd 常駐,並註明埠由誰擁有。
# 轉發埠上的 Ollama curl -sS http://127.0.0.1:18080/api/tags | head # 經反代後的 Gateway 健康檢查(替換網域) curl -sS https://gw.example.com/healthz
NO_PROXY 與常見變體(矩陣)
映像常帶 HTTP_PROXY;Gateway unit 應對齊大小寫或清除,避免回環被拐到代理。
| 流量目標 | 設錯時的徵兆 | 修正方向 |
|---|---|---|
127.0.0.1/localhost |
日誌走代理、秒回 502 | NO_PROXY=127.0.0.1,localhost,::1 |
| Docker bridge | 重啟後 IP 變、間歇逾時 | 服務名+自訂 bridge 寫入 NO_PROXY |
| Unix socket | 檔在卻 ECONNREFUSED |
對齊 UID;勿讓 ProxyCommand 包本機工具 |
read_timeout 並看 GPU 記憶體。瞬間 502 且 body 很短,多為上游無人聽埠。
分層排障:502、卡住與連線重設
層 A 看反代日誌;111: Connection refused 即本機 upstream 無服務。層 B Gateway 出站須與同 unit 的 curl 一致。層 C Ollama 冷啟首 token 可能逾時;長提示詞先查反代 body 上限。回報附:對外標頭、反代一行、Gateway 片段、回環 curl 一行。
在雲端 Mac mini 上,本機 Ollama 與 IDE 同一個房間
迭代提示詞與 Gateway 時,桌面級主機可消 SSH 尾延遲;Apple Silicon 統一記憶體對中型模型較友善,macOS + Homebrew 也少容器回環混淆。
Mac mini M4 待機約 4W、靜音,適合長駐隧道;Gatekeeper、SIP 降低長期無人值守的風險。
想先驗證工作流,VPSSpark 雲端 Mac mini M4 是務實起點——立即了解套餐方案,讓 OpenClaw、Ollama 與工具留在同一環境。