1、安装nodejs

yum install -y wget gcc-c++ make cmake python3
wget https://nodejs.org/dist/v20.11.1/node-v20.11.1-linux-x64.tar.xz -O /tmp/node.tar.xz
mkdir -p /usr/local/node
tar -xf /tmp/node.tar.xz -C /usr/local/node --strip-components=1
echo 'export PATH=/usr/local/node/bin:$PATH' >> /etc/profile
source /etc/profile
[root@node0 local]# node -v
v20.11.1
[root@node0 local]# npm -v
10.2.4
 

2、安装openclaw脚本或者git clone仓库

[root@node0 local]# curl -fsSL https://openclaw.ai/install.sh | bash

git clone https://github.com/openclaw-ai/openclaw.git /opt/openclaw
cd /opt/openclaw

检查是否都安装

[root@node0 openclaw-2026.3.2]# node -v
v20.11.1
[root@node0 openclaw-2026.3.2]# pnpm -v
10.23.0
[root@node0 openclaw-2026.3.2]# docker -v
Docker version 26.1.3, build b72abbb

cd到源码目录,npm安装,如果出现error可能是网络问题

若网络有问题执行下面,否则跳过这步,直接pnpm install

[root@node0 openclaw-2026.3.2]# pnpm config set registry https://registry.npmmirror.com
[root@node0 openclaw-2026.3.2]# pnpm config get registry
https://registry.npmmirror.com
[root@node0 openclaw-2026.3.2]# pnpm install

3、完整安装

. prepare$ command -v git >/dev/null 2>&1 && git rev-parse --is-inside-work-tree >/dev/null 2>&1 && git config core.hooksPath git-hooks || exit 0
└─ Done in 16ms
 WARN  Issues with peer dependencies found
extensions/googlechat
└─┬ openclaw 2026.3.2
  └─┬ @buape/carbon 0.0.0-beta-20260216184201
    └─┬ @discordjs/voice 0.19.0
      └─┬ prism-media 1.3.5
        └── ✕ unmet peer opusscript@^0.0.8: found 0.1.1

extensions/matrix
└─┬ @vector-im/matrix-bot-sdk 0.8.0-element.3
  └─┬ @cypress/request-promise 5.0.0
    └─┬ request-promise-core 1.1.3
      └── ✕ unmet peer request@^2.34: found 3.0.10

dependencies:
+ @agentclientprotocol/sdk 0.14.1
+ @aws-sdk/client-bedrock 3.1002.0
+ @buape/carbon 0.0.0-beta-20260216184201 (0.14.0 is available)
+ @clack/prompts 1.1.0
+ @discordjs/voice 0.19.0
+ @grammyjs/runner 2.0.3
+ @grammyjs/transformer-throttler 1.2.1
+ @homebridge/ciao 1.3.5
+ @larksuiteoapi/node-sdk 1.59.0
+ @line/bot-sdk 10.6.0
+ @lydell/node-pty 1.2.0-beta.3
+ @mariozechner/pi-agent-core 0.55.3 (0.56.0 is available)
+ @mariozechner/pi-ai 0.55.3 (0.56.0 is available)
+ @mariozechner/pi-coding-agent 0.55.3 (0.56.0 is available)
+ @mariozechner/pi-tui 0.55.3 (0.56.0 is available)
+ @mozilla/readability 0.6.0
+ @napi-rs/canvas 0.1.95
+ @sinclair/typebox 0.34.48
+ @slack/bolt 4.6.0
+ @slack/web-api 7.14.1
+ @snazzah/davey 0.1.10
+ @whiskeysockets/baileys 7.0.0-rc.9
+ ajv 8.18.0
+ chalk 5.6.2
+ chokidar 5.0.0
+ cli-highlight 2.1.11
+ commander 14.0.3
+ croner 10.0.1
+ discord-api-types 0.38.40
+ dotenv 17.3.1
+ express 5.2.1
+ file-type 21.3.0
+ gaxios 7.1.3 (7.1.4 is available)
+ google-auth-library 10.6.1
+ grammy 1.41.1
+ https-proxy-agent 7.0.6
+ ipaddr.js 2.3.0
+ jiti 2.6.1
+ json5 2.2.3
+ jszip 3.10.1
+ linkedom 0.18.12
+ long 5.3.2
+ markdown-it 14.1.1
+ node-domexception <- @nolyfill/domexception 1.0.28
+ node-edge-tts 1.2.10
+ node-llama-cpp 3.16.2 (3.17.1 is available)
+ opusscript 0.1.1
+ osc-progress 0.3.0
+ pdfjs-dist 5.5.207
+ playwright-core 1.58.2
+ qrcode-terminal 0.12.0
+ sharp 0.34.5
+ sqlite-vec 0.1.7-alpha.2
+ strip-ansi 7.2.0
+ tar 7.5.9 (7.5.10 is available)
+ tslog 4.10.2
+ undici 7.22.0
+ ws 8.19.0
+ yaml 2.8.2
+ zod 4.3.6

optionalDependencies:
+ @discordjs/opus 0.10.0

devDependencies:
+ @grammyjs/types 3.25.0
+ @lit-labs/signals 0.2.0
+ @lit/context 1.1.6
+ @types/express 5.0.6
+ @types/markdown-it 14.1.2
+ @types/node 25.3.3
+ @types/qrcode-terminal 0.12.2
+ @types/ws 8.18.1
+ @typescript/native-preview 7.0.0-dev.20260301.1 (7.0.0-dev.20260304.1 is available)
+ @vitest/coverage-v8 4.0.18
+ lit 3.3.2
+ oxfmt 0.35.0 (0.36.0 is available)
+ oxlint 1.51.0
+ oxlint-tsgolint 0.15.0 (0.16.0 is available)
+ signal-utils 0.21.1
+ tsdown 0.21.0-beta.2
+ tsx 4.21.0
+ typescript 5.9.3
+ vitest 4.0.18

╭ Warning ───────────────────────────────────────────────────────────────────────────────────╮
│                                                                                            │
│   Ignored build scripts: @discordjs/opus, @tloncorp/tlon-skill, core-js.                   │
│   Run "pnpm approve-builds" to pick which dependencies should be allowed to run scripts.   │
│                                                                                            │
╰────────────────────────────────────────────────────────────────────────────────────────────╯

Done in 14m 1.7s using pnpm v10.23.0
[root@node0 openclaw-2026.3.2]#
 

[root@node0 openclaw-2026.3.2]# pnpm approve-builds
? Choose which packages to build (Press <space> to select, <a> to toggle all, <i> to invert selection) …
❯ ● @discordjs/opus
  ● @tloncorp/tlon-skill
  ● core-js
 

[root@node0 openclaw-2026.3.2]# pnpm approve-builds
✔ Choose which packages to build (Press <space> to select, <a> to toggle all, <i> to invert selection) · @discordjs/opus, @tloncorp/tlon-skill, core-js
✔ The next packages will now be built: @discordjs/opus, @tloncorp/tlon-skill, core-js.
Do you approve? (y/N) · true
[root@node0 openclaw-2026.3.2]# pnpm install
Scope: all 37 workspace projects
Lockfile is up to date, resolution step is skipped
Already up to date

╭ Warning ───────────────────────────────────────────────────────────────────────────────────╮
│                                                                                            │
│   Ignored build scripts: @discordjs/opus, @tloncorp/tlon-skill, core-js.                   │
│   Run "pnpm approve-builds" to pick which dependencies should be allowed to run scripts.   │
│                                                                                            │
╰────────────────────────────────────────────────────────────────────────────────────────────╯

. prepare$ command -v git >/dev/null 2>&1 && git rev-parse --is-inside-work-tree >/dev/null 2>&1 && git config core.hooksPath git-hooks || exit 0
└─ Done in 9ms
Done in 2s using pnpm v10.23.0
[root@node0 openclaw-2026.3.2]#
 

[root@node0 openclaw-2026.3.2]# pnpm rebuild
node_modules/.pnpm/esbuild@0.27.3/node_modules/esbuild: Running postinstall script, done in 48ms
node_modules/.pnpm/protobufjs@7.5.4/node_modules/protobufjs: Running postinstall script, done in 46ms
node_modules/.pnpm/protobufjs@6.8.8/node_modules/protobufjs: Running postinstall script, done in 49ms
node_modules/.pnpm/sharp@0.34.5/node_modules/sharp: Running install script, done in 65ms
node_modules/.pnpm/@whiskeysockets+baileys@7.0.0-rc.9_sharp@0.34.5/node_modules/@whiskeysockets/baileys: Running preinstall script, done in 26ms
node_modules/.pnpm/@discordjs+opus@0.10.0/node_modules/@discordjs/opus: Running install script, failed in 11.2s (skipped as optional)
node_modules/.pnpm/node-llama-cpp@3.16.2_typescript@5.9.3/node_modules/node-llama-cpp: Running postinstall script, done in 432ms
. prepare$ command -v git >/dev/null 2>&1 && git rev-parse --is-inside-work-tree >/dev/null 2>&1 && git config core.hooksPath git-hooks || exit 0
└─ Done in 9ms
[root@node0 openclaw-2026.3.2]# pnpm install
Scope: all 37 workspace projects
Lockfile is up to date, resolution step is skipped
Already up to date

╭ Warning ───────────────────────────────────────────────────────────────────────────────────╮
│                                                                                            │
│   Ignored build scripts: koffi.                                                            │
│   Run "pnpm approve-builds" to pick which dependencies should be allowed to run scripts.   │
│                                                                                            │
╰────────────────────────────────────────────────────────────────────────────────────────────╯

. prepare$ command -v git >/dev/null 2>&1 && git rev-parse --is-inside-work-tree >/dev/null 2>&1 && git config core.hooksPath git-hooks || exit 0
└─ Done in 8ms
Done in 1.6s using pnpm v10.23.0
[root@node0 openclaw-2026.3.2]#
 

✅ 所有依赖已安装
✅ workspace 构建完成
✅ native 模块已编译
✅ lockfile 正常
✅ 项目可启动

4、启动

pnpm start(生产环境)或者pnpm openclaw(官方别名)或者pnpm dev(开发模式)

启动gatway:pnpm openclaw --dev gateway

[root@node0 openclaw-2026.3.2]# pnpm openclaw --dev gateway

> openclaw@2026.3.2 openclaw /opt/openclaw/openclaw-2026.3.2
> node scripts/run-node.mjs --dev gateway


🦞 OpenClaw 2026.3.2 (unknown) — One CLI to rule them all, and one more restart because you changed the port.

09:36:01 Dev config ready: ~/.openclaw-dev/openclaw.json
09:36:01 Dev workspace ready: ~/.openclaw/workspace-dev
09:36:01 Config overwrite: /root/.openclaw-dev/openclaw.json (sha256 42adc18ddbde128a72da5774468a2d72b926a555e7ae3494194a849fdbb7c6c0 -> bfa9dd308f85dec9d7c32d376bee10879b5a2f208eafb8592d02e90f33b907c3, backup=/root/.openclaw-dev/openclaw.json.bak)
01:36:01 [gateway] auth token was missing. Generated a new token and saved it to config (gateway.auth.token).
01:36:03 [gateway] Control UI assets missing; building (ui:build, auto-installs UI deps)…
01:36:05 [canvas] host mounted at http://127.0.0.1:19001/__openclaw__/canvas/ (root /root/.openclaw-dev/canvas)
01:36:05 [heartbeat] started
01:36:05 [health-monitor] started (interval: 300s, startup-grace: 60s, channel-connect-grace: 120s)
01:36:05 [gateway] agent model: anthropic/claude-opus-4-6
01:36:05 [gateway] listening on ws://127.0.0.1:19001, ws://[::1]:19001 (PID 56598)
01:36:05 [gateway] log file: /tmp/openclaw/openclaw-2026-03-05.log
01:36:05 [browser/server] Browser control listening on http://127.0.0.1:19003/ (auth=token)

端口:

[root@node0 local]# ss -anplt | grep openclaw
LISTEN 0      511        127.0.0.1:19001      0.0.0.0:*    users:(("openclaw-gatewa",pid=56598,fd=18))
LISTEN 0      511        127.0.0.1:19003      0.0.0.0:*    users:(("openclaw-gatewa",pid=56598,fd=21))
LISTEN 0      511        127.0.0.1:19004      0.0.0.0:*    users:(("openclaw-gatewa",pid=56598,fd=27))
LISTEN 0      511            [::1]:19001         [::]:*    users:(("openclaw-gatewa",pid=56598,fd=19))
 

5、打开dashboard

新建一个窗口,不要关闭gateway,pnpm openclaw dashboard

[root@node0 openclaw-2026.3.2]# pnpm openclaw dashboard

> openclaw@2026.3.2 openclaw /opt/openclaw/openclaw-2026.3.2
> node scripts/run-node.mjs dashboard


🦞 OpenClaw 2026.3.2 (unknown) — Your second brain, except this one actually remembers where you left things.

Dashboard URL: http://127.0.0.1:18789/
Copy to clipboard unavailable.
No GUI detected. Open from your computer:
ssh -N -L 18789:127.0.0.1:18789 root@192.168.137.134
Then open:
http://localhost:18789/
Docs:
https://docs.openclaw.ai/gateway/remote
https://docs.openclaw.ai/web/control-ui
[root@node0 openclaw-2026.3.2]#
 

因为我linux没有gui,所以提示用ssh隧道

若没有windows上ssh,管理员运行powershell执行如下安装openssh,并导入环境变量

PS C:\WINDOWS\system32> Add-WindowsCapability -Online -Name OpenSSH.Client~~~~0.0.1.0

PS C:\WINDOWS\system32> Test-Path "C:\Windows\System32\OpenSSH\ssh.exe"
True
PS C:\WINDOWS\system32> $newPath = [System.Environment]::GetEnvironmentVariable("PATH", "Machine") + ";C:\Windows\System32\OpenSSH\"
PS C:\WINDOWS\system32> [System.Environment]::SetEnvironmentVariable("PATH", $newPath, "Machine")
PS C:\WINDOWS\system32> $env:PATH = [System.Environment]::GetEnvironmentVariable("PATH", "Machine")
PS C:\WINDOWS\system32>

PS C:\WINDOWS\system32> ssh -V
OpenSSH_for_Windows_9.5p2, LibreSSL 3.8.2

继续执行ssh命令,上面提示的输出命令,用powershell或者cmd打开,注意端口号,--dev 模式会改端口。所以不是命令里面的18789,而且19001

PS C:\WINDOWS\system32> ssh -N -L 19001:127.0.0.1:19001 root@192.168.137.134
root@192.168.137.134's password:

本地电脑:19001  →  服务器127.0.0.1:19001

等于把服务器网页“搬”到你电脑。

执行后:

  • 会要求输入服务器密码

  • 窗口会卡住(正常,不要关)

去服务器拿token

[root@node0 local]# cat ~/.openclaw-dev/openclaw.json | grep token
      "mode": "token",
      "token": "xxx"

把这里的token复制到web上

然后连接,然后在设置或者json里配置你的api即可

Logo

小龙虾开发者社区是 CSDN 旗下专注 OpenClaw 生态的官方阵地,聚焦技能开发、插件实践与部署教程,为开发者提供可直接落地的方案、工具与交流平台,助力高效构建与落地 AI 应用

更多推荐