在 AlmaLinux 9 上部署 OpenClaw:从踩坑到跑通的完整记录

本文记录了我在一台 RackNerd VPS(AlmaLinux 9,3.6GB RAM)上部署 OpenClaw AI Agent 的全过程,包括遇到的所有错误和最终的解决方案。希望能帮到和我一样折腾的人。


背景

OpenClaw 是 2026 年增长最快的开源 AI Agent 项目,GitHub 上超过 22 万 Star。它可以连接大语言模型(如 DeepSeek、Claude),通过浏览器自动化、消息通道、定时任务等方式帮你处理各种工作。

我的目标是在自己的服务器上部署 OpenClaw,接入 DeepSeek 作为 AI 引擎,并启用浏览器自动化功能,为后续的闲鱼自动化运营打基础。

我的服务器配置:

  • VPS 厂商:RackNerd
  • 系统:AlmaLinux 9(RHEL 系)
  • 内存:3.6GB RAM + 2GB Swap
  • IP:198.46.237.215
  • 初始 Node.js 版本:v16.20.2

第一步:升级 Node.js(第一个坑)

OpenClaw 需要 Node.js 22+,而我的服务器上是远古的 v16。

[root@racknerd-e9f21c8 ~]# node --version
v16.20.2

AlmaLinux 不是 Ubuntu,不能用 apt,得用 yum/dnf。一开始按照网上的 Ubuntu 教程走了弯路,后来确认系统版本后才找到正确的方法:

cat /etc/os-release
# NAME="AlmaLinux"
# VERSION="9.5 (Teal Serval)"

正确的升级步骤:

# 卸载旧版本
yum remove -y nodejs

# 添加 NodeSource 22.x 仓库
curl -fsSL https://rpm.nodesource.com/setup_22.x | bash -

# 安装 Node.js 22
yum install -y nodejs

# 验证
node --version   # v22.22.0
npm --version    # 10.x.x

这一步比较顺利,升级完成后 Node.js 22 正常运行。


第二步:安装 OpenClaw

通过 npm 全局安装:

npm install -g openclaw

踩坑:cmake 依赖报错

安装过程中遇到了一些 native 依赖编译报错,提示缺少 cmake。解决方法:

dnf install -y cmake gcc-c++ make

装完依赖后重新 npm install -g openclaw,顺利完成。

验证安装:

openclaw --version
# OpenClaw 2026.2.24 (df9a474)

第三步:运行 Onboarding Wizard

OpenClaw 提供了一个交互式向导来完成初始配置:

openclaw onboard

向导会一步步引导你配置以下内容:

3.1 配置 AI Provider(接入 DeepSeek)

这里选择 OpenAI-compatible 模式,因为 DeepSeek 的 API 兼容 OpenAI 格式。

  • Base URL: https://api.deepseek.com/v1
  • API Key: 填入 DeepSeek 的 API Key
  • Model ID: deepseek-chat
  • Endpoint ID: 保持默认,直接回车
  • Model alias: 跳过,直接回车

向导会自动验证连接,看到 Verification successful 说明配置成功。

3.2 消息渠道

我主要用浏览器自动化功能,消息渠道暂时不需要,选择了 Skip for now

3.3 Skills 依赖

向导列出了一大堆可选的第三方 CLI 工具(1password、blogwatcher、github 等等),这些不是浏览器自动化必须的。

注意: 界面提示"请至少选择一个",直接选 Skip for now 然后按空格选中,再回车即可。

3.4 一路跳过的配置

后续还会问你要不要配置 Google Places API Key、Gemini API Key、Notion API Key 等等,全部选 No

3.5 Gateway 配置

向导会自动设置 Gateway,端口默认 18789,绑定模式选择 loopback(只允许本地访问,安全)。

Onboarding 完成后,配置文件保存在 ~/.openclaw/openclaw.json


第四步:启动 Gateway

openclaw gateway --port 18789 --verbose

Gateway 启动后运行在 18789 端口。因为绑定了 loopback,需要通过 SSH 隧道从本地电脑访问。

设置 systemd 开机自启

向导会自动创建 systemd 服务。确认服务状态:

systemctl list-units --type=service | grep -i claw
# 找到 openclaw-gateway.service

第五步:访问 Dashboard

在本地电脑建立 SSH 隧道:

ssh -L 18789:127.0.0.1:18789 root@198.46.237.215

然后浏览器打开 http://127.0.0.1:18789/

踩坑:打开后显示"未授权:缺少网关令牌"

第一次打开 Dashboard 时看到的是一个红色提示,说缺少 token。解决方法是在 URL 后面带上 token 参数:

http://127.0.0.1:18789/?token=你的token值

Token 在配置文件里可以找到:

cat ~/.openclaw/openclaw.json | grep token
# "token": "ea3be774bd8bba748ee667e44e43859b..."

带上 token 后 Dashboard 成功加载。


第六步:模型上下文窗口太小(关键Bug)

在 Dashboard 里发消息测试,结果 Agent 报错:

模型上下文窗口太小(4096个令牌),最低费用是16000

原因是 DeepSeek 在 onboarding 时默认把 contextWindow 设成了 4096,而 OpenClaw 要求至少 16000。实际上 DeepSeek 支持 65536 的上下文窗口。

修复方法:

python3 -c "
import json
with open('/root/.openclaw/openclaw.json') as f:
    config = json.load(f)
model = config['models']['providers']['custom-api-deepseek-com']['models'][0]
model['contextWindow'] = 65536
model['maxTokens'] = 8192
with open('/root/.openclaw/openclaw.json', 'w') as f:
    json.dump(config, f, indent=2)
print('Done')
"

然后重启 Gateway:

openclaw gateway restart

重启后在 Dashboard 里发送"你好",Agent 成功回复。DeepSeek 模型工作正常了。


第七步:浏览器自动化(最折腾的部分)

7.1 安装 Chromium

dnf install -y chromium
chromium-browser --version
# Chromium 145.0.7632.109

7.2 第一次尝试配置浏览器(踩坑)

按照网上教程设置:

openclaw config set tools.browser.enabled true
# Error: Config validation failed: tools: Unrecognized key: "browser"

报错了! 浏览器配置不在 tools 路径下。继续摸索:

openclaw config get browser
# Config path not found: browser

原来浏览器是通过独立的 openclaw browser 子命令管理的,不在主配置文件中。

7.3 查看浏览器状态

openclaw browser status

输出显示 OpenClaw 已经自动检测到了 Chromium:

profile: chrome
enabled: true
running: false
cdpPort: 18792
detectedBrowser: chromium
detectedPath: /usr/bin/chromium-browser

7.4 启动浏览器(又踩坑)

openclaw browser start
# Error: Chrome extension relay is running, but no tab is connected.
# Click the OpenClaw Chrome extension icon on a tab to attach it

默认用的是 chrome profile,需要浏览器扩展——这在无头服务器上不可能。需要切换到 openclaw managed profile(无头模式):

openclaw browser --browser-profile openclaw start
# Error: gateway timeout after 15000ms

又超时了! Gateway 能连上,但浏览器启动卡住。

7.5 排查与解决

先确认 Chromium 本身能不能无头运行:

chromium-browser --headless --no-sandbox --disable-gpu --dump-dom https://example.com

输出了 example.com 的完整 HTML——Chromium 本身没问题,问题出在 OpenClaw 的 CDP 连接上。

最终解决方案:手动启动 Chromium 无头进程,让 OpenClaw 通过 CDP 连接:

# 手动启动 Chromium 并监听 CDP 端口
nohup chromium-browser --headless --no-sandbox --disable-gpu \
  --disable-dev-shm-usage --remote-debugging-port=18800 > /dev/null 2>&1 &

然后在 OpenClaw 配置中指定 CDP 连接地址(编辑 ~/.openclaw/openclaw.json),Gateway 就能通过 CDP 协议控制浏览器了。

验证:

openclaw browser --browser-profile openclaw status
# running: true
# cdpPort: 18800

在 Dashboard 里测试:

打开 https://example.com 并告诉我页面上写了什么

Agent 成功打开了页面并返回了页面内容。浏览器自动化终于跑通了!

7.6 设置 Chromium 开机自启

cat > /etc/systemd/system/chromium-headless.service << 'EOF'
[Unit]
Description=Headless Chromium for OpenClaw
After=network.target

[Service]
Type=simple
ExecStart=/usr/bin/chromium-browser --headless --no-sandbox --disable-gpu --disable-dev-shm-usage --remote-debugging-port=18800
Restart=always
RestartSec=5

[Install]
WantedBy=multi-user.target
EOF

systemctl daemon-reload
systemctl enable chromium-headless
systemctl start chromium-headless

踩坑总结

问题 原因 解决方案
npm install 报 cmake 错误 AlmaLinux 缺少编译工具 dnf install cmake gcc-c++ make
tools.browser 配置报错 浏览器不在 tools 配置路径下 openclaw browser 子命令管理
Chrome extension relay 错误 默认 chrome profile 需要浏览器扩展 切换到 --browser-profile openclaw
gateway timeout after 15000ms CDP 启动失败/超时 手动启动 Chromium 指定 --remote-debugging-port
contextWindow 4096 报错 Onboarding 默认上下文窗口太小 手动修改 JSON 改为 65536
Dashboard 显示"未授权" 缺少 Gateway Token URL 带上 ?token=xxx 参数

最终架构

┌─────────────────────────────────────────┐
│         AlmaLinux 9 VPS (3.6GB)         │
│                                         │
│  OpenClaw Gateway      → 端口 18789     │
│  Chromium Headless     → 端口 18800     │
│  AI Provider: DeepSeek (API 调用)       │
│                                         │
│  访问方式:SSH 隧道 → 本地浏览器        │
│  ssh -L 18789:127.0.0.1:18789 root@IP  │
└─────────────────────────────────────────┘

写在最后

OpenClaw 的安装文档主要面向 Ubuntu 用户,在 AlmaLinux/RHEL 系上需要自己摸索不少东西。最大的坑是浏览器自动化部分——默认的 browser profile 设计是给桌面用户用的(需要 Chrome 扩展),在无头服务器上需要手动切换 managed profile 并处理 CDP 连接。

好消息是一旦跑通了,整个系统非常稳定。DeepSeek 作为 AI 后端响应很快,浏览器自动化也能正常工作。后续我还基于这套系统接入了闲鱼自动回复系统(xianyu-auto-reply),实现了 AI 自动客服 + 虚拟商品自动发货的完整链路。

如果你也在非 Ubuntu 系统上折腾 OpenClaw,希望这篇文章能帮你少走一些弯路。


作者:万先生 | 2026年2月26日

Logo

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

更多推荐