在筆電上,蓋子一合 OpenClaw 就不說話了:WhatsApp 訊息越積越多,定時任務只能等您回來。放到伺服器上,它會一直回覆。問題在於,閘道不是一個聊天小部件。它儲存著您各個渠道的憑據,而且在您開啟沙箱之前,會直接在主機上執行工具。把它搬到一台常開的機器上,只有安全模型一起搬過去才值得。
本指南在一台全新的 Ubuntu 24.04 VPS 上,用大約 20 分鐘完成這件事。
最後核實:2026-10-04,OpenClaw 2026.9.8(npm)、Node 24.21 LTS、Ubuntu 24.04。
您需要什麼
- 一台 Linux VPS。我們用自己的 AI-Agent 方案:4 vCPU、4 GB 記憶體、40 GB 磁碟,每月 10 美元。OpenClaw 文件提到 6 GB 記憶體,但那是從原始碼建置他們的 Docker 映像所需;npm 包不需要建置。
- 模型提供商的 API 金鑰,以及您想接入的聊天帳號。
- 筆電上的 SSH 金鑰。還沒有的話:SSH 金鑰登入。
這裡用 NAT 方案完全沒問題,甚至可以說更合適。閘道從來不需要開放對內埠:WhatsApp、Discord 和 Telegram(預設長輪詢)都是主動向外連線,控制面板透過 SSH 存取。只有當您需要的某個渠道透過 webhook 投遞,或者打算在前面放公用反向代理時,才需要獨立 IPv4。
1. 一個不是 root 的使用者
OpenClaw 以擁有閘道的那個使用者身分執行工具。如果這個使用者是 root,那麼一個糊塗了或被提示注入操縱的模型決定執行的每條指令,也都以 root 身分執行。OpenClaw 文件直接把以 root 執行閘道稱為不安全且不受支援。建立一個沒有 sudo 權限的專用使用者:
# 以 root 執行
apt update && apt -y upgrade
adduser --disabled-password --gecos "" claw
install -d -m 700 -o claw -g claw /home/claw/.ssh
install -m 600 -o claw -g claw ~/.ssh/authorized_keys /home/claw/.ssh/authorized_keys # 下單時新增的金鑰
loginctl enable-linger claw
最後一行比看上去更重要。OpenClaw 安裝的是 systemd 使用者服務,沒有 lingering 的話,您一登出服務就停了。這是伺服器上最常見的「昨天還好好的」。
2. Node 24 與 OpenClaw
OpenClaw 2026.9.8 要求 Node >=24.16.0 <25 或 >=26.1.0。Ubuntu 自備的 nodejs 包版本更舊,所以我們從 NodeSource 安裝 24 LTS:
# 以 root 執行
curl -fsSL https://deb.nodesource.com/setup_24.x | bash -
apt install -y nodejs
node -v # v24.16.0 或更高
npm install -g openclaw@latest
openclaw --version
官方的一行安裝指令(curl -fsSL https://openclaw.ai/install.sh | bash)同樣可用,還會替您裝好 Node。在伺服器上我們更喜歡兩步顯式安裝:您能看清什麼裝到了哪裡,而且可執行檔案位於 /usr/bin,而不是代理可以寫入的家目錄。
3. 以代理使用者完成初始化
以 claw 身分透過 SSH 登入,不要用 su。只有真正的登入才會啟動服務所需的 systemd 使用者管理器:
# 在筆電上(NAT 方案:加上 -p <你的 SSH 埠>)
ssh claw@<server>
openclaw onboard --install-daemon
openclaw gateway status
嚮導會檢查模型存取、寫入 ~/.openclaw/openclaw.json、產生閘道權杖並安裝服務。如果 systemctl --user 報匯流排錯誤,先執行 export XDG_RUNTIME_DIR=/run/user/$(id -u) 再重試。
然後把檔案權限收緊。OpenClaw 官方建議狀態目錄用 700,設定檔案用 600:
chmod 700 ~/.openclaw && chmod 600 ~/.openclaw/openclaw.json
openclaw security audit --deep
openclaw security audit --fix 會應用其中安全的那部分修復:更嚴格的檔案權限,以及用允許列表替換開放的群組策略。它不會改變監聽位址,也不會替您設定防火牆;網路暴露面仍然要您自己管。
4. 讓閘道留在 loopback
閘道在同一個埠 18789 上提供 WebSocket API 和控制面板,預設綁定 127.0.0.1。保持這樣。一個把這點寫明白的最小設定:
// ~/.openclaw/openclaw.json
{
gateway: {
mode: "local",
bind: "loopback",
port: 18789,
auth: { mode: "token", token: "paste-output-of-openssl-rand-hex-32" },
},
}
用 openssl rand -hex 32 或 openclaw doctor --generate-gateway-token 產生權杖。閘道會拒絕空權杖和範例佔位值,審計在權杖短於 24 個字元時會發出警告。
不要這樣做:把 bind 改成 "lan" 再開放埠。文件說得很直白:永遠不要在 0.0.0.0 上無認證地暴露閘道,即使有權杖也不要大範圍轉發埠。誰拿到這個權杖,誰就成了一個能在您伺服器上執行指令的程式的操作員。
防火牆方面,只放行 SSH,別的都不放:
# 以 root 執行
ufw allow OpenSSH
ufw enable
ufw status verbose
在我們的 NAT 方案上,控制台顯示的是外部 SSH 埠,但伺服器內部 sshd 依然監聽 22。放行 OpenSSH(22 埠),而不是外部埠號,否則 ufw enable 會把您鎖在門外。詳見 UFW 指南。
5. 透過 SSH 存取控制面板
在筆電上開啟一個通道並保持執行:
ssh -N -L 18789:127.0.0.1:18789 claw@<server>
# NAT 方案:ssh -N -p <你的 SSH 埠> -L 18789:127.0.0.1:18789 claw@<host>
開啟 http://127.0.0.1:18789/,貼上閘道權杖。Ubuntu 預設的 sshd 允許本機轉發;如果您做過加固,AllowTcpForwarding local 就是允許 -L 同時禁止遠端轉發的那項設定。通道若報 administratively prohibited,就檢查這一行。
tailnet 也可以:Tailscale Serve 讓閘道留在 loopback,並負責存取控制。兩種都行。公用埠不行。
6. 配對、沙箱,以及誰能跟它說話
聊天渠道是另一道門。預設情況下,支援私信的渠道會要求陌生髮送者先配對;由您在伺服器上批准:
openclaw pairing approve <channel> <code>
在群組裡要求 @ 提及,這樣代理不會回覆群裡的每一條訊息。OpenClaw 的加固基線為每個渠道設定 dmPolicy: "pairing" 和 groups: { "*": { requireMention: true } }。
兩點坦白的提醒。第一:配對控制的是誰能觸發一輪對話,而不是什麼內容會進入模型上下文;一條轉發的訊息或一個抓取的網頁,仍可能左右您自己觸發的那一輪。第二:在您開啟沙箱之前,主工作階段的工具都在主機上執行(agents.defaults.sandbox.mode: "non-main" 會把除您自己主工作階段之外的一切放進沙箱)。沙箱預設關閉,預設後端是 Docker,所以開啟前先裝好 Docker:在 VPS 上安裝 Docker。如果您不信任的人和機器人共用同一個渠道,就給他們單獨一個閘道,最好放在另一台伺服器上。
7. 更新與備份
openclaw update
openclaw gateway status
openclaw backup create --output ~/backups/openclaw --verify
~/.openclaw 裡有設定、渠道憑據(包括 WhatsApp 工作階段)、模型認證設定和工作階段記錄。丟了它,就要把所有東西重新配對;洩露了它,別人就能在 WhatsApp 上冒充您。做好備份,並把副本放在伺服器之外:用 scp 下載下來,或者使用帶加密的 restic。
檢查清單
| 檢查項 | 指令 | 期望結果 |
|---|---|---|
| 閘道不以 root 執行 | ps -eo user,args | grep '[o]penclaw' | 第一列是 claw |
| 登出後仍在執行 | loginctl show-user claw -p Linger | Linger=yes |
| 只監聽 loopback | ss -ltnp | grep 18789 | 127.0.0.1:18789 |
| 沒有公用埠 | ufw status | 只有 OpenSSH |
| 設定檔案不可被所有人讀取 | stat -c '%a' ~/.openclaw/openclaw.json | 600 |
| 審計乾淨 | openclaw security audit --deep | 沒有嚴重問題 |
EQVPS 的位置
能跑 Node 程式的服務供應商很多。我們多給的是:免 KYC 的加密貨幣支付、適合只監聽 loopback 的閘道的 NAT 方案,以及一個讓您的代理自己管理伺服器的 MCP 伺服器。如果您把 OpenClaw 接到它上面,請先讀 MCP 安全護欄:一個能下單買伺服器的權杖,值得和閘道權杖同樣謹慎對待。想更全面地瞭解在 VPS 上執行代理,請看 AI 代理指南。
我們的看法:這 20 分鐘,就是一個助手和一個帶聊天介面的敞開 shell 之間的區別。就算跳過其他步驟,也至少做完第 1、4、5 步。
評論
目前還沒有評論。歡迎成為第一位。