基礎設施 / 自架 AI 代理
在 Ubuntu 24.04 上嘗試安裝 OpenClaw #
繼 Windows Server 2019 與 Windows 11 之後,我們也在 Ubuntu 24.04 上驗證了 OpenClaw 的安裝。
Linux 原生環境為官方正式支援,相較於 Windows 環境明顯簡單許多。
不過,其中有一個需要透過裝置配對核准才能存取遠端主控台的陷阱。
我們將完整記錄(含相關程序)一併公開。
Ubuntu 24.04
Linux
nginx
HTTPS
GPUStack
本文是延續「Windows Server 2019」與「Windows 11」的 OpenClaw 安裝記錄。
在 Windows 環境中造成困擾的 PATH 問題、npm 錯誤與 NODE_OPTIONS 問題,在 Ubuntu 上完全沒有發生。
環境配置 #
OpenClaw 主機
- Ubuntu 24.04 LTS
- OpenClaw v2026.4.10(npm 安裝)
- Node.js v22.22.2(由安裝程式自動設定)
- nginx 反向代理(443/HTTPS)
- Gateway 連接埠:18789(loopback)
模型與搜尋後端
- GPUStack + vLLM 0.17.1
- Qwen2.5-14B-Instruct
- SearXNG(自建)
- Custom Provider(OpenAI 相容)
在 Ubuntu 上,僅靠官方安裝程式(
install.sh)即可完成從 Node.js 設定到 OpenClaw 安裝與導覽設定的所有步驟。由於系統具備 systemd,Gateway 服務註冊也會自動完成。
安裝步驟 #
更新套件並安裝必要工具 #
sudo apt update && sudo apt upgrade -y sudo apt install -y curl git安裝 OpenClaw #
執行官方安裝程式。Node.js 的設定也會自動完成。
curl -fsSL https://openclaw.ai/install.sh | bash安裝程式會自動執行以下項目:
- 安裝 Node.js v22(透過 NodeSource)
- 安裝建置工具(make / g++ / cmake)
- 安裝 OpenClaw npm 套件
- 啟動導覽精靈
與 Windows 的差異
在 Ubuntu 上,npm 安裝不會出現 MODULE_NOT_FOUND 錯誤。
不需要改用 pnpm,官方安裝程式原樣即可正常運作。導覽設定 #
安裝完成後精靈會自動啟動,設定項目如下:
- 安全性警告:選擇
Yes繼續 - 設定模式:
QuickStart - 模型提供者:Custom Provider
- Base URL:
http://<GPUStack IP>/v1 - API 金鑰提供方式:立即貼上 API 金鑰
- 端點相容性:
OpenAI-compatible - Model ID:在 GPUStack 上執行的模型名稱
- Channel:暫時略過
- 技能相依套件:暫時略過
- 網頁搜尋:SearXNG Search → 輸入 URL
- Hooks:僅啟用
session-memory
導覽設定完成後,系統會自動安裝並啟動 systemd 服務。
- 安全性警告:選擇
修正 context 上限與模型設定(重要) #
若在導覽設定完成後立即開始對話,可能會出現
Context limit exceeded錯誤。
安裝完成後立即進行以下設定即可避免此問題。方法①:從主控台 UI 設定(建議) #
主控台左側選單 「AI and Agents」 →
「Models」分頁 → 開啟該模型的 「Compat」 區段,
設定以下數值後按下 「Save」。方法②:從命令列設定 #
# Increase compaction buffer openclaw config set agents.defaults.compaction.reserveTokensFloor 20000 # Manually fix contextWindow (change provider name to match your environment) python3 - << 'EOF' import json, os path = os.path.expanduser("~/.openclaw/openclaw.json") with open(path) as f: c = json.load(f) for k, v in c["models"]["providers"].items(): for m in v.get("models", []): m["contextWindow"] = 65536 m["maxTokens"] = 4096 with open(path, "w") as f: json.dump(c, f, indent=2, ensure_ascii=False) print("Update complete") EOF openclaw gateway restart從 UI 設定較為可靠
從主控台設定會立即套用變更,可避免設定錯誤。
透過 CLI 設定後,務必執行openclaw gateway restart。確認 Gateway 啟動狀態 #
openclaw gateway status systemctl --user is-enabled openclaw-gateway.service若顯示
enabled,代表 Gateway 會在作業系統開機時自動啟動。
遠端存取設定(nginx +自簽憑證) #
若想從網路上的其他電腦使用主控台,請將 nginx 設定為反向代理。
由於使用了 WebSocket,nginx 設定需要轉送 Upgrade 標頭。
設定 nginx 與自簽憑證 #
sudo apt install -y nginx # Generate self-signed certificate (valid for 10 years) sudo mkdir -p /etc/nginx/ssl sudo openssl req -x509 -nodes -days 3650 -newkey rsa:2048 \ -keyout /etc/nginx/ssl/openclaw.key \ -out /etc/nginx/ssl/openclaw.crt \ -subj "/CN=openclaw.local"建立 nginx 設定檔 #
sudo tee /etc/nginx/sites-available/openclaw << 'EOF' server { listen 443 ssl; server_name _; ssl_certificate /etc/nginx/ssl/openclaw.crt; ssl_certificate_key /etc/nginx/ssl/openclaw.key; location / { proxy_pass http://127.0.0.1:18789; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_read_timeout 86400; } } server { listen 80; return 301 https://$host$request_uri; } EOF sudo ln -sf /etc/nginx/sites-available/openclaw /etc/nginx/sites-enabled/ sudo rm -f /etc/nginx/sites-enabled/default sudo nginx -t && sudo systemctl restart nginx sudo systemctl enable nginx變更 OpenClaw 設定 #
# Allow connections from non-localhost openclaw config set gateway.controlUi.allowInsecureAuth true # Allow origin of access source openclaw config set gateway.controlUi.allowedOrigins '["*"]' openclaw gateway restart開放防火牆 #
sudo ufw allow 443/tcp sudo ufw allow 80/tcp
遠端存取的裝置配對核准 #
從其他電腦存取主控台時,會顯示 pairing required 錯誤。
這是 OpenClaw 的安全功能,需要在首次存取時由管理員核准。
核准後,之後便不再需要此步驟。
用於頻道(Telegram、Discord 等)配對的
openclaw pairing 指令,在此並不適用。主控台的裝置核准需使用
openclaw devices 指令。從瀏覽器存取主控台 #
在瀏覽器中開啟含有 token 的 URL,並於伺服器端進行驗證。
openclaw dashboard # Open the displayed URL (#token=...) in a browser瀏覽器會顯示
pairing required。請在此狀態下繼續進行下一步。檢查待處理清單並核准 #
# List devices waiting for pairing openclaw devices list # Approve all displayed Request IDs openclaw devices approve <Request ID>若有多筆待處理的請求,請全部核准。
從瀏覽器重新連線 #
核准後,於瀏覽器按下「Connect」按鈕即可開啟主控台。
裝置一旦核准後,即使重新啟動 Gateway 也不需要再次核准。
若清除瀏覽器快取或改用其他瀏覽器,則會被視為新裝置,需要重新核准。
GPUStack 設定 #
在 GPUStack 管理畫面中,將以下內容加入模型的後端參數並重新啟動模型。
--max-model-len 32768
--generation-config vllm
--enable-auto-tool-choice
--tool-call-parser hermes與 Windows 環境的比較 #
在 Ubuntu 上變得更簡單的地方
- 僅靠
install.sh即可自動完成從 Node.js 開始的所有設定 - 不會出現 MODULE_NOT_FOUND 錯誤(不需要 pnpm)
- 沒有 PATH 問題或 NODE_OPTIONS 問題
- Gateway 自動註冊為 systemd 服務
- 透過 nginx 輕鬆設定反向代理
在 Ubuntu 上仍需進行的作業
- 手動設定 contextWindow/compaction
- GPUStack 後端參數設定
運作驗證檢查清單 #
- 顯示
openclaw --version systemctl --user is-enabled openclaw-gateway.service顯示enabledopenclaw gateway status顯示RPC probe: ok- 從其他電腦的瀏覽器存取
https://<server IP> - 已透過
openclaw devices approve完成裝置核准 - 在
main工作階段中會回傳聊天回應 - 工作階段畫面的 TOKENS 顯示
xxxxx / 32768 - SearXNG 搜尋功能正常運作
總結 #
在 Ubuntu 24.04 上安裝 OpenClaw,比起 Windows 環境明顯簡單許多。
只要執行安裝程式,即可完成從 Node.js 設定到服務註冊的所有步驟。
唯一的陷阱在於遠端主控台存取所需的裝置配對。
請注意應使用 openclaw devices,而非用於頻道的 openclaw pairing。
此外,安裝完成後立即設定 contextWindow 與 compaction 可避免
在開始對話後立刻發生 context 溢位。
安裝難易度排名為 Ubuntu 24.04 << Windows 11 < Windows Server 2019。
若可以選擇 Linux 環境,強烈建議使用 Ubuntu。

