把 OpenClaw 從「家用 Mac/舊租屋節點」搬到「加拿大遠端 M4」最常踩雷的不是安裝,而是閘道連線割接、Workspace 狀態一致性,以及launchd 在登出後是否仍能拉起 127.0.0.1:18789。這篇用繁體中文整理一套可演練的割接順序:先用並行驗證降低跨洋延遲與防火牆變數,再把資料面與控制面拆開打包;最後用 SSH/VNC 兩條路徑做驗收矩陣,並給出「何時該毫不猶豫回滾」的扳機。若你已在加拿大機房長租節點,亦可交叉閱讀:2026 OpenClaw 在加拿大遠端 Mac M4 上的可控升級與穩定運行手冊:相依凍結、gateway 健康探測與滾動重啟、磁碟日誌水位、遠端鏈路抖動排障對照及中高配資源落地案例(HowTo+FAQ);若要決定「SSH 隧道對本機閘道」邊界,請搭配:2026 OpenClaw 在加拿大遠端 Mac M4 上選 SSH 隧道還是直連閘道?gateway.remote.token、18789 連接埠與 PATH/launchd 分步教學與排障對照。
遷移成功的定義與前置假設
所謂「穩」,建議同時滿足四件事:(1)加拿大節點上的 Gateway 在無人圖形登入或僅背景 Agent條件下,仍能於 127.0.0.1:18789 提供一致 API;(2)Workspace 內容(設定檔、模型快取目錄、工具授權檔)在新機上的 checksum 或抽樣檔案對得上;(3)整合測試通道(Chat/Automation/插件)在新閘道上走完最小閉環;(4)你能在一個固定時間窗內回到舊節點而不丟失資料尾端。
前置假設:你已取得加拿大 M4 的管理員權限,能用 SSH 金鑰登入,並保留一次完整的冷備份 tarball與舊節點快照說明(Node 小版本、OpenClaw CLI/App 渠道、plist Label)。若是租賃雲端 Mac,請先確認供應商允許長駐 launchd 與本機埠轉發策略。
Gateway 18789:並行雙活與割接順序
直接「關舊開新」在跨洋鏈路上風險最高:客戶端 DNS/快取/Bearer Token 旋轉任一環節打嗝,就會被誤判成「加拿大機房壞了」。推薦流程是:新節點先在本機證明閘道健康,再用低流量影子請求或僅內部工具的試跑 Profile驗證,最後才切正式入口。
實務上把變更拆成「監聽位址」「Token」「客戶端 base URL」三個旋鈕:加拿大節點維持 127.0.0.1:18789,對外一律走 SSH -L/反向代理/Tailnet,不要把裸 Token 暴露在公寓路由或機房共享區網。割接窗口內保留舊閘道唯讀 15–30 分鐘,可吸收漏網的長連線與快取請求。
| 割接階段 | 舊節點(來源) | 加拿大 M4(目標) | 完成判準 |
|---|---|---|---|
| T0 凍結 | 記錄 openclaw doctor、plist Label、PID/連接埠占用 |
安裝對齊的 Node LTS、CLI/App 渠道 | 兩邊 semver 與設定 schema 一致 |
| T1 並行 | 維持 production Profile,允許唯讀探測 | 啟動閘道於本機 18789,使用測試 Token |
本機 curl/整合腳本打穿最小 API |
| T2 流量切換 | 降級為 standby(保留 launchd,必要時瞬時回切) | 換成 production Token 與正式 workspace path | 業務側監控無連續 401/EADDRINUSE |
| T3 收尾 | 關閉舊閘道監聽或改為備援節點 | 固化 plist、logrotate/日誌路徑 | 冷重開機後自動復原閘道 |
0.0.0.0,請立刻改回 127.0.0.1 並複查防火牆規則。
Workspace 打包:目錄邊界、增量同步與校驗
Workspace 不只是專案資料夾,通常還混著快取、插件狀態與工具鍊鎖檔。建議先畫「紅線清單」:哪些目錄一定要搬(例如包含 secrets 的設定樹)、哪些應該在新機重建(巨大且可再生的 node_modules、容器層、瀏覽器 Profile),哪些應該用 tarball 冷備份但不直接 rsync(容易引發 inode 風暴的百萬小檔索引)。
跨洋頻寬昂貴時,採「首次 tarball+後續增量 rsync」通常比單次巨型 scp 更穩:可以在離峰時段跑,失敗也能續傳。 tarball 命名請帶時間戳與 Node/OpenClaw 版本後綴,避免半年後看不懂來源。
# 來源機:冷備份(排除可再生目錄) tar -czf openclaw-ws-20260511-node22.tgz \ --exclude='node_modules' \ --exclude='.git' \ ~/OpenClaw/workspace # 目標機:接收後解壓到暫存路徑再原子切換 mkdir -p ~/OpenClaw/workspace.next && tar -xzf openclaw-ws-20260511-node22.tgz -C ~/OpenClaw/workspace.next # 增量同步(可重跑) rsync -avz --delete --partial \ user@OLD_HOST:~/OpenClaw/workspace/ \ ~/OpenClaw/workspace.next/
LaunchDaemon/LaunchAgent 重建與圖形權限
遷移後 launchd 失敗的三大原因:PATH 不包含全域 openclaw、plist 仍指向舊使用者主目錄、以及TCC(輔助使用/螢幕錄製)未在圖形工作階段完成。加拿大節點若是「永遠開著但不一定有人登入桌面」,請優先採官方建議的 LaunchAgent 模板,並在 plist 內顯式設定 PATH 與 WorkingDirectory。
重建流程建議:launchctl bootout 卸載舊 Label → 校驗 plist → bootstrap 載入 → 用 log stream 或檔案日誌確認閘道 stdout。若與前景 CLI 搶同一連接埠,請先確保互斥:要嘛完全改走 daemon,要嘛僅在維護窗手動啟前景。
launchctl bootout gui/$(id -u) ~/Library/LaunchAgents/ai.openclaw.gateway.plist 2>/dev/null || true cp ./ai.openclaw.gateway.plist ~/Library/LaunchAgents/ launchctl bootstrap gui/$(id -u) ~/Library/LaunchAgents/ai.openclaw.gateway.plist launchctl kickstart -k gui/$(id -u)/ai.openclaw.gateway
跨洋 SSH/VNC 驗收矩陣與觀測點
跨洋鏈路的問題常呈現為「偶發」而非「全紅」:RTT 抖動、MTU/PMTU 黑洞、供應商中途設備的 idle timeout。驗收時請同時開兩條路:SSH 跑自動化探針(curl、整合腳本、mock chat),VNC 處理一次性圖形授權與可視化確認。不要只用 ping:TCP 應用層成功才算數。
建議把探針寫成「15 分鐘連續採樣」:記錄每次 round-trip、p95 錯誤碼、閘道 RSS。若跨晚高峰出現間歇 ECONNRESET,優先檢查中介機(跳板、公司 VPN)是否對長連線設了 aggressive NAT timeout。
| 驗收項 | SSH 自動化怎麼做 | VNC/桌面何時必須介入 | 紅線(立刻停下來查) |
|---|---|---|---|
| 閘道存活 | curl 本機 127.0.0.1:18789 健康端點;grep 日誌無連續 crash loop |
確認選單列 App 與 CLI 版本一致 | 三分鐘內三次 OOM/連接埠占用無法釋放 |
| 權限鏈 | 檢查 plist 使用者與檔案屬主 | Accessibility/Screen Recording 授權逐項核對 | 自動化流程靜默失敗且無日誌 |
| Workspace 完整性 | 抽樣檔案 checksum;試跑最小 agent job | 圖形工具若需首次登入/OAuth 瀏覽器視窗 | 設定檔指向舊路徑或舊 hostname |
| 通道可靠性 | mtr/連續 HTTPS;SSH -o ServerAliveInterval |
VNC 檢查解析度與 GPU 加速是否影響自動化 | 錯誤率在工作窗明顯高於離峰對照組 |
回滾扳機、操作順序與 FAQ
回滾不是失敗,而是風險預算的一部分。建議在割接前就寫好「黃/紅」扳機:黃燈可以先停新增流量、保留並行;紅燈應在固定分鐘數內切回舊閘道並啟動事故紀錄。
建議回滾扳機(紅燈)
- 連續多個五分鐘窗口出現不可恢復的
401/Token 輪換失敗,且無法在 10 分鐘內定位。 - Workspace 校驗發現 secrets 或指向舊主機的 URL 大規模錯置,且業務側已有資料寫入新機。
- launchd 進入 crash loop,冷重啟後仍無法穩定監聽
18789。 - 跨洋鏈路錯誤率在業務高峰顯著高於並行期對照,且短期無網路側解法。
FAQ
Q1:能不能先把 Gateway 監聽改成 0.0.0.0 方便遠端調試?
A:僅限單租戶且具備嚴格防火牆與臨時 Token 的維護窗。預設仍應維持 127.0.0.1,對外使用 SSH 隧道或 mTLS 反向代理;除錯結束立刻改回並輪換金鑰。
Q2:並行期間兩邊都用同一組 Token 可以嗎?
A:不建議。請為「影子/測試」與「正式」準備不同 Subject,並在切換時做一次性輪換;並行共用 Token 會讓稽核與吊銷路徑糊成一團。
Q3:Workspace 很大,tarball 中途失敗怎麼辦?
A:改用分卷壓縮或只做「清單目錄」冷備份,資料面改走 rsync --partial --append-verify;並在離峰時段重試。務必記錄每一次成功的 checksum 清單。
Q4:加拿大機房時區與排程任務會不會打斷割接?
A:會。請把 cron/launchd 定時任務、備份腳本與 CI 觸發器列出來,割接窗凍結會修改 workspace 的批次;時區差異也要同步到日誌對時(UTC vs 本地)。
Q5:VNC 延遲很高還要做圖形驗收嗎?
A:要做,但可以縮小範圍:只保留「必須首次授權」與「OAuth 瀏覽器視窗」兩類人工步驟,其餘一律 SSH 腳本化。延遲高時記得調低色彩深度與關閉不必要動畫。
Q6:舊節點什麼時候可以關機回收?
A:至少經過一次工作日+一次離峰晚間雙週期觀察;確認備援 tarball、舊機快照與 DNS/客戶端快取都已清理,再執行下架。若仍有長尾整合只認舊 IP,請保留唯讀轉發一周。
Q7:割接後要不要立刻升級 OpenClaw?
A:先把「遷移」與「升級」拆開。節點穩定跑滿最小觀察窗後,再用受控升級流程處理 semver;同日疊加大版本與機房遷移,排障難度會指數上升。
簡體版對照與同一題目的其他語言入口,可從本站英文/日文/韓文姊妹篇的 hreflang 導覽前往;若你只關心加拿大機房的長期維運節奏,也可延伸閱讀前文連結中的升級與 SSH/閘道抉擇兩篇,把它們當成「遷移完成後的標準作業延續」。