跳到主要内容Ubuntu 部署 OpenClaw 完整教程 | 极客日志Shell / BashNode.jsAI
Ubuntu 部署 OpenClaw 完整教程
综述由AI生成Ubuntu 22.04 环境下部署 OpenClaw 的完整流程。包含 Node.js LTS 安装、npm 镜像配置、OpenClaw 脚本安装及 PATH 环境变量修复。通过 SSH 隧道映射本地端口访问 Web 控制界面,完成模型接入与基础测试。解决了命令行找不到命令及远程访问限制问题。
GRACE Grace6 浏览 Ubuntu 上部署 OpenClaw 完整教程
环境信息
- 系统: Ubuntu 22.04 LTS
- 配置: 4 核 8GB 内存,100M 带宽
- 类型: CPU
一、安装依赖
1.1 更新系统包索引
sudo apt update
1.2 安装 curl
sudo apt install -y curl
1.3 通过 NodeSource 安装最新稳定 LTS 版本
curl -fsSL https://deb.nodesource.com/setup_lts.x | sudo -E bash -
sudo apt-get install -y nodejs
node -v
npm -v
实际输出:
v24.14.0
11.9.0
1.4 设置淘宝镜像(最常用)
npm config set registry https://registry.npmmirror.com
npm config get registry
验证输出:
https:
二、安装 OpenClaw
执行安装脚本(注意:安装过程中要勾选 yes):
curl -fsSL https://openclaw.ai/install.sh | bash
完整安装日志:
🦞 OpenClaw Installer
The only crab in your contacts you actually want to hear
[]
[]
[]
from.
🦞
✓
Detected:
linux
Install plan OS:
linux
Install method:
npm
Requested version:
latest
1
/3
Preparing
environment
✓
Node.js
v24.14.0
found
·
Active Node.js:
v24.14.0
(/usr/bin/node)
·
Active npm:
11.9
.0
(/usr/bin/npm)
2
/3
Installing
OpenClaw
✓
Git
already
installed
·
Configuring
npm
for
user-local
installs
✓
npm
configured
for
user
installs
·
Installing
OpenClaw
v2026.2.26
✓
OpenClaw
npm
package
installed
✓
OpenClaw
installed
3
/3
Finalizing
setup
!
PATH missing npm global bin dir:
/home/ubuntu/.npm-global/bin
This
can
make
openclaw
show
as
"command not found"
in
new
terminals.
Fix (zsh:
~/.zshrc,
bash:
~/.bashrc):
export
PATH="/home/ubuntu/.npm-global/bin:$PATH"
🦞
OpenClaw
installed
successfully
(2026.2.26)!
All
done!
I
promise
to
only
judge
your
code
a
little
bit.
··
Starting
setup
🦞
OPENCLAW
🦞
┌
OpenClaw
onboarding
│
◇
Security
─────────────────────────────────────────────────────────────────────────────────╮
│
│
Security
warning
—
please
read.
│
│
│
OpenClaw
is
a
hobby
project
and
still
in
beta.
Expect
sharp
edges.
│
│
│
By
default,
OpenClaw is a personal agent:
one
trusted
operator
boundary.
│
│
│
This
bot
can
read
files
and
run
actions
if
tools
are
enabled.
│
│
│
A
bad
prompt
can
trick
it
into
doing
unsafe
things.
│
│
│
OpenClaw
is
not
a
hostile
multi-tenant
boundary
by
default.
│
│
│
If
multiple
users
can
message
one
tool-enabled
agent,
they
share
that
delegated
tool
│
│
│
authority.
│
│
│
If
you're
not
comfortable
with
security
hardening
and
access
control,
don't
run
│
│
│
OpenClaw.
│
│
│
Ask
someone
experienced
to
help
before
enabling
tools
or
exposing
it
to
the
internet.
│
│
│
Recommended baseline:
│
│
│
-
Pairing/allowlists
+
mention
gating.
│
│
│
-
Multi-user/shared inbox:
split
trust
boundaries
(separate
gateway/credentials,
ideally
│
│
│
separate
OS
users/hosts).
│
│
│
-
Sandbox
+
least-privilege
tools.
│
│
│
-
Shared inboxes:
isolate
DM
sessions
(`session.dmScope:
per-channel-peer`)
and
keep
│
│
│
tool
access
minimal.
│
│
│
-
Keep
secrets
out
of
the
agent's
reachable
filesystem.
│
│
│
-
Use
the
strongest
available
model
for
any
bot
with
tools
or
untrusted
inboxes.
│
│
│
Run regularly:
│
│
│
openclaw
security
audit
--deep
│
│
│
openclaw
security
audit
--fix
│
│
│
Must read:
https://docs.openclaw.ai/gateway/security
│
│
├────────────────────────────────────────────────────────────────────────────────────────────╯
│
◇
I
understand
this
is
personal-by-default
and
shared/multi-user
use
requires
lock-down.
Continue?
│
Yes
│
◇
Onboarding
mode
│
QuickStart
│
◇
QuickStart
─────────────────────────╮
│
│
Gateway port:
18789
│
│
│
Gateway bind:
Loopback
(127.0.0.1)
│
│
│
Gateway auth:
Token
(default)
│
│
│
Tailscale exposure:
Off
│
│
│
Direct
to
chat
channels.
│
│
├──────────────────────────────────────╯
│
◇
Model/auth
provider
│
Z.AI
│
◇
Z.AI
auth
method
│
CN
│
◇
How
do
you
want
to
provide
this
API
key?
│
Paste
API
key
now
│
◇
Enter
Z.AI
API
key
│
xxx.xxxx
│
◇
Model
configured
───────────────╮
│
│
Default
model
set
to
zai/glm-5
│
│
│
│
├──────────────────────────────────╯
│
◇
Default
model
│
zai/glm-4.7
│
◇
Channel
status
────────────────────────────╮
│
│
Telegram:
needs
token
│
│
│
WhatsApp (default):
not
linked
│
│
│
Discord:
needs
token
│
│
│
Slack:
needs
tokens
│
│
│
Signal:
needs
setup
│
│
│
signal-cli:
missing
(signal-cli)
│
│
│
iMessage:
needs
setup
│
│
│
imsg:
missing
(imsg)
│
│
│
IRC:
not
configured
│
│
│
Google Chat:
not
configured
│
│
│
Feishu:
install
plugin
to
enable
│
│
│
Google Chat:
install
plugin
to
enable
│
│
│
Nostr:
install
plugin
to
enable
│
│
│
Microsoft Teams:
install
plugin
to
enable
│
│
│
Mattermost:
install
plugin
to
enable
│
│
│
Nextcloud Talk:
install
plugin
to
enable
│
│
│
Matrix:
install
plugin
to
enable
│
│
│
BlueBubbles:
install
plugin
to
enable
│
│
│
LINE:
install
plugin
to
enable
│
│
│
Zalo:
install
plugin
to
enable
│
│
│
Zalo Personal:
install
plugin
to
enable
│
│
│
Synology Chat:
install
plugin
to
enable
│
│
│
Tlon:
install
plugin
to
enable
│
│
│
│
├─────────────────────────────────────────────╯
│
◇
How
channels
work
───────────────────────────────────────────────────────────────────────╮
│
│
DM security:
default
is
pairing;
unknown
DMs
get
a
pairing
code.
│
│
│
Approve with:
openclaw
pairing
approve
<channel><code>
│
│
│
Public
DMs
require
dmPolicy="open"
+
allowFrom=["*"].
│
│
│
Multi-user DMs: run:
openclaw
config
set
session.dmScope
"per-channel-peer"
(or
│
│
│
"per-account-channel-peer"
for
multi-account
channels)
to
isolate
sessions.
│
│
│
Docs:
channels/pairing
│
│
│
│
│
Telegram:
simplest
way
to
get
started
—
register
a
bot
with
@BotFather
and
get
going.
│
│
│
WhatsApp:
works
with
your
own
number;
recommend
a
separate
phone
+
eSIM.
│
│
│
Discord:
very
well
supported
right
now.
│
│
│
IRC:
classic
IRC
networks
with
DM/channel
routing
and
pairing
controls.
│
│
│
Google Chat:
Google
Workspace
Chat
app
with
HTTP
webhook.
│
│
│
Slack:
supported
(Socket
Mode).
│
│
│
Signal:
signal-cli
linked
device;more
setup (David Reagans:
"Hop on Discord."
).
│
│
│
iMessage:
this
is
still
a
work
in
progress.
│
│
│
Feishu:
飞书/Lark
enterprise
messaging
with
doc/wiki/drive
tools.
│
│
│
Nostr:
Decentralized
protocol;
encrypted
DMs
via
NIP-04.
│
│
│
Microsoft Teams:
Bot
Framework;
enterprise
support.
│
│
│
Mattermost:
self-hosted
Slack-style
chat;install
the
plugin
to
enable.
│
│
│
Nextcloud Talk:
Self-hosted
chat
via
Nextcloud
Talk
webhook
bots.
│
│
│
Matrix:
open
protocol;install
the
plugin
to
enable.
│
│
│
BlueBubbles:
iMessage
via
the
BlueBubbles
mac
app
+
REST
API.
│
│
│
LINE:
LINE
Messaging
API
bot
for
Japan/Taiwan/Thailand
markets.
│
│
│
Zalo:
Vietnam-focused
messaging
platform
with
Bot
API.
│
│
│
Zalo Personal:
Zalo
personal
account
via
QR
code
login.
│
│
│
Synology Chat:
Connect
your
Synology
NAS
Chat
to
OpenClaw
with
full
agent
capabilities.
│
│
│
Tlon:
decentralized
messaging
on
Urbit;install
the
plugin
to
enable.
│
│
│
│
├───────────────────────────────────────────────────────────────────────────────────────────╯
│
◇
Select
channel
(QuickStart)
│
Skip
for
now
Updated
~/.openclaw/openclaw.json
Workspace OK:
~/.openclaw/workspace
Sessions OK:
~/.openclaw/agents/main/sessions
│
◇
Skills
status
─────────────╮
│
│
Eligible:
4
│
│
│
Missing requirements:
40
│
│
│
Unsupported on this OS:
7
│
│
│
Blocked by allowlist:
0
│
│
│
│
├─────────────────────────────╯
│
◇
Configure
skills
now?
(recommended)
│
No
│
◇
Hooks
──────────────────────────────────────────────────────────────────╮
│
│
Hooks
let
you
automate
actions
when
agent
commands
are
issued.
│
│
│
Example:
Save
session
context
to
memory
when
you
issue
/new
or
/reset.
│
│
│
Learn more:
https://docs.openclaw.ai/automation/hooks
│
│
│
│
├──────────────────────────────────────────────────────────────────────────╯
│
◇
Enable
hooks?
│
Skip for now Config overwrite:
/home/ubuntu/.openclaw/openclaw.json
(sha256
f763f7d577aba2ed75a863a91e3e9a116eab6ecc856e7731972988b006426453
->
8eac9ee80087618bf88b5f7a2f1f6bdb4b5abf5dfa646c22bf65f64e92063204,
backup=/home/ubuntu/.openclaw/openclaw.json.bak)
│
◇
Systemd
────────────────────────────────────────────────────────────────────────────────╮
│
│
Linux
installs
use
a
systemd
user
service
by
default.
Without
lingering,
systemd
stops
│
│
│
the
user
session
on
logout/idle
and
kills
the
Gateway.
│
│
│
Enabling
lingering
now
(may
require
sudo;
writes
/var/lib/systemd/linger).
│
│
│
│
├──────────────────────────────────────────────────────────────────────────────────────────╯
│
◇
Systemd
───────────────────────────────────────╮
│
│
Enabled
systemd
lingering
for
ubuntu.
│
│
│
│
├─────────────────────────────────────────────────╯
│
◇
Gateway
service
runtime
────────────────────────────────────────────╮
│
│
QuickStart
uses
Node
for
the
Gateway
service(stable
+
supported).
│
│
│
│
├──────────────────────────────────────────────────────────────────────╯
│
◐
Installing
Gateway
service…
Installed systemd service:
/home/ubuntu/.config/systemd/user/openclaw-gateway.service
◇
Gateway
service
installed.
│
◇
Agents: main (default) Heartbeat interval: 30m (main) Session store (main):
/home/ubuntu/.openclaw/agents/main/sessions/sessions.json
(0
entries)
│
◇
Optional
apps
────────────────────────╮
│
│
Add nodes for extra features:
│
│
│
-
macOS
app
(system
+
notifications)
│
│
│
-
iOS
app
(camera/canvas)
│
│
│
-
Android
app
(camera/canvas)
│
│
│
│
├────────────────────────────────────────╯
│
◇
Control
UI
─────────────────────────────────────────────────────────────────────╮
│
│
Web UI:
http://127.0.0.1:18789/
│
│
│
Web UI (with token):
│
│
│
http://127.0.0.1:18789/#token=2962e8f5116c63d86ea9c8224bc8d6445cce2e806ed1e183
│
│
│
Gateway WS:
ws://127.0.0.1:18789
│
│
│
Gateway:
reachable
│
│
│
Docs:
https://docs.openclaw.ai/web/control-ui
│
│
│
│
├──────────────────────────────────────────────────────────────────────────────────╯
│
◇
Start
TUI
(best
option!)
─────────────────────────────────╮
│
│
This
is
the
defining
action
that
makes
your
agent
you.
│
│
│
Please
take
your
time.
│
│
│
The
more
you
tell
it,
the
better
the
experience
will
be.
│
│
│
We will send:
"Wake up, my friend!"
│
│
│
│
├────────────────────────────────────────────────────────────╯
│
◇
Token
─────────────────────────────────────────────────────────────────────────────────╮
│
│
Gateway token:
shared
auth
for
the
Gateway
+
Control
UI.
│
│
│
Stored in:
~/.openclaw/openclaw.json
(gateway.auth.token)
or
OPENCLAW_GATEWAY_TOKEN.
│
│
│
View token:
openclaw
config
get
gateway.auth.token
│
│
│
Generate token:
openclaw
doctor
--generate-gateway-token
│
│
│
Web
UI
stores
a
copy
in
this
browser's
localStorage
(openclaw.control.settings.v1).
│
│
│
Open the dashboard anytime:
openclaw
dashboard
--no-open
│
│
│
If prompted:
paste
the
token
into
Control
UI
settings
(or
use
the
tokenized
dashboard
│
│
│
URL).
│
│
│
│
├─────────────────────────────────────────────────────────────────────────────────────────╯
│
◇
How
do
you
want
to
hatch
your
bot?
│
Open
the
Web
UI
│
◇
Dashboard
ready
────────────────────────────────────────────────────────────────╮
│
│
Dashboard link(with token):
│
│
│
http://127.0.0.1:18789/#token=2962e8f5116c63d86ea9c8224bc8d6445cce2e806ed1e183
│
│
│
Copy/paste
this
URL
in
a
browser
on
this
machine
to
control
OpenClaw.
│
│
│
No GUI detected. Open from your computer:
│
│
│
ssh
-N
-L
18789
:127.0.0.1:18789
ubuntu@<server_ip>
│
│
│
Then open:
│
│
│
http://localhost:18789/
│
│
│
http://localhost:18789/#token=2962e8f5116c63d86ea9c8224bc8d6445cce2e806ed1e183
│
│
│
Docs:
│
│
│
https://docs.openclaw.ai/gateway/remote
│
│
│
https://docs.openclaw.ai/web/control-ui
│
│
│
│
├──────────────────────────────────────────────────────────────────────────────────╯
│
◇
Workspace
backup
────────────────────────────────────────╮
│
│
Back
up
your
agent
workspace.
│
│
│
Docs:
https://docs.openclaw.ai/concepts/agent-workspace
│
│
│
│
├───────────────────────────────────────────────────────────╯
│
◇
Security
──────────────────────────────────────────────────────╮
│
│
Running
agents
on
your
computer
is
risky
—
harden your setup:
│
│
│
https://docs.openclaw.ai/security
│
│
│
│
├─────────────────────────────────────────────────────────────────╯
│
◇
Shell
completion
────────────────────────────────────────────────────────╮
│
│
Shell completion installed. Restart your shell or run:
source
~/.bashrc
│
│
│
│
├───────────────────────────────────────────────────────────────────────────╯
│
◇
Web
search
(optional)
─────────────────────────────────────────────────────────────────╮
│
│
If
you
want
your
agent
to
be
able
to
search
the
web,
you'll
need
an
API
key.
│
│
│
OpenClaw
uses
Brave
Search
for
the
`web_search`
tool.
Without
a
Brave
Search
API
key,
│
│
│
web
search
won't
work.
│
│
│
Set it up interactively:
│
│
│
-
Run:
openclaw
configure
--section
web
│
│
│
-
Enable
web_search
and
paste
your
Brave
Search
API
key
│
│
│
Alternative:
set
BRAVE_API_KEY
in
the
Gateway
environment
(no
config
changes).
│
│
│
Docs:
https://docs.openclaw.ai/tools/web
│
│
│
│
├─────────────────────────────────────────────────────────────────────────────────────────╯
│
◇
What
now
─────────────────────────────────────────────────────────────╮
│
│
What now:
https://openclaw.ai/showcase
("What
People
Are
Building").
│
│
│
│
├────────────────────────────────────────────────────────────────────────╯
│
└
Onboarding
complete.
Use
the
dashboard
link
above
to
control
OpenClaw.
三、解决 PATH 问题
安装完成后,如果执行 which openclaw 找不到命令,需要手动配置 PATH:
which openclaw
npm prefix -g
echo $SHELL
echo 'export PATH="$(npm prefix -g)/bin:$PATH"' >> ~/.bashrc
source ~/.bashrc
echo $PATH | grep npm
四、访问控制界面
4.1 本地 SSH 连接服务器
在本地电脑执行,按提示输入远程 Linux 云主机密码即可:
ssh -N -L 18789:127.0.0.1:18789 ubuntu@<your_server_ip>
4.2 访问 OpenClaw Web UI
携带部署过程中生成的 Dashboard link 在本地进行访问:
http://localhost:18789/#token=<your_token>
4.3 测试
- 询问背后模型,确认是 glm4.7,与配置的一致。
- 给 AI 助手起名为'大衍 AI',切换界面等待其生效。
五、总结
本文详细记录了在 Ubuntu 22.04 服务器上从零部署 OpenClaw 的完整流程,包括:
- 环境准备:Node.js LTS 安装与 npm 镜像配置
- OpenClaw 安装:通过官方脚本一键安装,处理 PATH 配置问题
- 初始化配置:QuickStart 模式、Z.AI 模型接入
- 远程访问:通过 SSH 隧道访问 Web 控制界面进行问答
相关免费在线工具
- RSA密钥对生成器
生成新的随机RSA私钥和公钥pem证书。 在线工具,RSA密钥对生成器在线工具,online
- Mermaid 预览与可视化编辑
基于 Mermaid.js 实时预览流程图、时序图等图表,支持源码编辑与即时渲染。 在线工具,Mermaid 预览与可视化编辑在线工具,online
- 随机西班牙地址生成器
随机生成西班牙地址(支持马德里、加泰罗尼亚、安达卢西亚、瓦伦西亚筛选),支持数量快捷选择、显示全部与下载。 在线工具,随机西班牙地址生成器在线工具,online
- Base64 字符串编码/解码
将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online
- Base64 文件转换器
将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online
- Markdown转HTML
将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML转Markdown 互为补充。 在线工具,Markdown转HTML在线工具,online