−25%

Windows 年繳方案適用,至 10 月 31 日。 檢視方案

EQVPS
開始使用

在 VPS 上 24/7 執行 OpenClaw:安全部署

把 OpenClaw 閘道放在一台永不休眠的伺服器上,同時不把一個能執行指令的代理暴露在公用。獨立使用者、閘道只監聽 loopback 埠 18789、SSH 通道、配對與備份。

在筆電上,蓋子一合 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 LingerLinger=yes
只監聽 loopbackss -ltnp | grep 18789127.0.0.1:18789
沒有公用埠ufw status只有 OpenSSH
設定檔案不可被所有人讀取stat -c '%a' ~/.openclaw/openclaw.json600
審計乾淨openclaw security audit --deep沒有嚴重問題

EQVPS 的位置

能跑 Node 程式的服務供應商很多。我們多給的是:免 KYC 的加密貨幣支付、適合只監聽 loopback 的閘道的 NAT 方案,以及一個讓您的代理自己管理伺服器的 MCP 伺服器。如果您把 OpenClaw 接到它上面,請先讀 MCP 安全護欄:一個能下單買伺服器的權杖,值得和閘道權杖同樣謹慎對待。想更全面地瞭解在 VPS 上執行代理,請看 AI 代理指南。

我們的看法:這 20 分鐘,就是一個助手和一個帶聊天介面的敞開 shell 之間的區別。就算跳過其他步驟,也至少做完第 1、4、5 步。

準備好部署了嗎?以加密貨幣付款,免 KYC——大約一分鐘上線。

立即部署 →

常見問題

OpenClaw 需要哪個版本的 Node.js?

24 系列的 Node 24.16 或更高,或者 26.1 及以上。npm 包(撰寫本文時為 openclaw 2026.9.8)會拒絕其他版本,所以 Node 22 不夠。在 Ubuntu 上,NodeSource 的 24.x 儲存庫提供目前的 24 LTS。

需要把 18789 埠開放到公用嗎?

不需要。閘道預設監聽 loopback(127.0.0.1:18789),就應該留在那裡。透過 SSH 通道存取控制面板。綁定到 LAN 或 0.0.0.0,意味著陌生人和一個能在伺服器上執行指令的程式之間,只隔著一個可能洩露的權杖。

沒有獨立 IPv4 的 NAT VPS 能跑 OpenClaw 嗎?

能,大多數場景都可以。WhatsApp、Discord 和 Telegram(預設長輪詢)都是主動向外連線,控制面板則透過您轉發的 SSH 埠上的 SSH 通道存取。只有透過 webhook 投遞訊息的渠道,或者您要在前面放公用反向代理時,才需要獨立 IPv4。

OpenClaw 在 VPS 上需要多少記憶體?

閘道本身很輕。OpenClaw 文件裡的 6 GB 是從原始碼建置 Docker 映像時的要求。用 npm 包則無需編譯;我們在 AI-Agent 方案(4 vCPU、4 GB 記憶體、40 GB 磁碟)上執行它,給瀏覽器工具和沙箱都留有餘量。

我退出 SSH 之後 OpenClaw 還會繼續執行嗎?

只有為擁有該服務的使用者開啟 lingering 才會:sudo loginctl enable-linger <user>。OpenClaw 安裝的是 systemd 使用者單元,沒有 lingering 的話,使用者管理器會在您最後一個工作階段結束時停止。

評論

目前還沒有評論。歡迎成為第一位。

發表評論

評論在顯示前會經過審核。