延伸:loopback SSH、MagicDNS;首頁、價格、說明與支援。章節:拓撲、stream、憑證權杖、探針合併、步驟、FAQ。
痛點:1 Traefik 兼當萬用 TCP 前置致除錯混線。2 frp 適穿透但與「每區公網憑證」敘事易混。3 status/doctor 分圖難對齊跨區時間線。
| 邊界元件 | 典型強項 | 與本文 stream 閘道分工 |
|---|---|---|
| Traefik(L7) | Ingress、Let us Encrypt、HTTP 中間件 | 保留給儀表與公開網域路由;OpenClaw 前置 TLS 若需純四層 SNI,改用 stream 較直觀 |
| frp STCP | 訪客、無公網埠、反向串聯 | 與本架構可並存於不同 PoP;勿把 STCP 敘事混寫進同埠多 SNI 的 nginx map |
| nginx stream | ssl_preread、同 IP 多 SNI、低狀態轉發 |
本文主線:公網監聽 → map → 127.0.0.1 閘道埠 |
多區域拓撲與 TLS 終止邊界
三層敘事:邊緣為各節點 nginx stream 公網監聽;閘道為 OpenClaw,僅綁 127.0.0.1;後段為建置機或 SSH 鏈。私鑰與閘道權杖分桶;stream 只做位元組與 SNI,七層政策留在 Traefik/應用。各區埠語意一致(如本機一八八一/一八八二)便於儀表,僅改 map 標的、少動閘道旗標。
stream 模組與 SNI 分流(配置片段)
ssl_preread 讀 SNI 後 proxy_pass 至本機;替換主機名與埠,nginx -t 再 reload。http 與 stream 埠勿重疊。
# /etc/nginx/nginx.conf (stream 區;示意)
stream {
map $ssl_preread_server_name $oc_backend {
default 127.0.0.1:18881;
claw.example.com 127.0.0.1:18881;
claw-d.example.com 127.0.0.1:18882;
}
server {
listen 443 reuseport;
ssl_preread on;
proxy_pass $oc_backend;
proxy_connect_timeout 5s;
proxy_timeout 3600s;
}
}
驗證:openssl s_client -servername claw.example.com -connect 公網:443;錯誤 SNI 應走 default 或拒連。
憑證與閘道權杖(令牌)
憑證私鑰建議0640、群組 nginx;輪替先複製再 rename。v2026.5.x 權杖用 systemd drop-in 或祕鑰管理注入環境變數,勿進版控。多區採同名異值利於稽核外洩區。
健康探針與 status/doctor 合併摘要
腳本週期抓取 status 與 doctor,合併單一 JSON(例:region、ts、status_ok、doctor_checks)。跨區以五分鐘窗聚成摘要列附最後成功時間,減告警風暴;資料來自 loopback 直抓,與 frp Visitor 路徑分題。
| 訊號來源 | 建議欄位 | 合併後用途 |
|---|---|---|
| status | 就緒、版本、工作階段數 | 健康分數與 SLA 看板 |
| doctor | 相依、磁碟、DNS、埠占用 | 排障排序與開票標籤 |
| 跨區窗 | 區碼、失敗次數、最後成功時間 | 單一告警列連回 raw |
最小可複現落地步驟(建議依序)
- 1 畫拓撲:標公網 stream、loopback 閘道埠、後段 SSH 或 API,並與 Traefik/frp 邊界寫清「不重疊責任」。
- 2 啟 stream:建立
map $ssl_preread_server_name,預設路徑指向安全sink或維護頁上游。 - 3 綁定閘道:OpenClaw 設定為僅
127.0.0.1,確認無其他介面監聽同一服務埠。 - 4 憑證與權杖:套用檔案權限與 systemd 環境檔;輪替演練寫入 Runbook。
- 5 合併探針:部署合併腳本、五分鐘窗聚合、連回各區 raw。
- 6 驗收:
s_client驗 SNI、合成 JSON 對照手動 curl、回滾為還原舊 map 並 reload。
常見問題(FAQ)
問:stream 是否終止 TLS? 答:常見為直通(閘道自解);nginx 僅 preread SNI。
問:與 frp 並存? 答:可;埠與 Runbook 敘事分開,避免 STCP 逾時誤判為 SNI map。
問:v2026.5.x 變更? 答:以發行說明為準;欄位改名時合併腳本做相容映射。
三句可貼進 Runbook
- 拓撲 公網 stream、loopback 閘道、後段建置鏈三點一線,缺一段即停止變更。
- 分流 以 SNI map 表達意圖,不以「再多一層七層路由」掩蓋四層問題。
- 觀測 status 與 doctor 先合併再跨區窗聚合,告警才有唯一時間線。
ssl_preread 請換套件或自建編譯。
stream 定四層、loopback 縮面、合併探針收斂告警,即多區 OpenClaw 在 vpshalo 的最小套路。
需要節點或文件導覽?
先查 說明與支援 與 首頁;同系列可讀 frp STCP 閘道、JumpHost 與代理、loopback SSH。下單請至 購買。