OpenClaw部署踩坑实录-AlmaLinux9
问题原因解决方案报 cmake 错误AlmaLinux 缺少编译工具配置报错浏览器不在 tools 配置路径下用子命令管理错误默认 chrome profile 需要浏览器扩展切换到CDP 启动失败/超时手动启动 Chromium 指定报错Onboarding 默认上下文窗口太小手动修改 JSON 改为 65536Dashboard 显示"未授权"缺少 Gateway TokenURL 带上?to
在 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日
更多推荐




所有评论(0)