OpenClaw 更新后的启动和配置指南

OpenClaw 更新后的启动和配置指南本文档是 小型服务器更新 OpenClaw 完整指南 的补充 记录更新完成后启动服务时遇到的问题和解决方案 前置条件 问题一 内存溢出导致无法启动 问题二 Gateway 服务配置过期 问题三 systemd 服务管理 问题四 远程访问配置 问题五 API 密钥配置 完整的启动流程 在开始之前 确保你已经 完成了 OpenClaw 的更新 参考 小型服务器更新 OpenClaw

大家好,我是讯享网,很高兴认识大家。这里提供最前沿的Ai技术和互联网信息。



本文档是《小型服务器更新 OpenClaw 完整指南》的补充,记录更新完成后启动服务时遇到的问题和解决方案。
  • 前置条件
  • 问题一:内存溢出导致无法启动
  • 问题二:Gateway 服务配置过期
  • 问题三:systemd 服务管理
  • 问题四:远程访问配置
  • 问题五:API 密钥配置
  • 完整的启动流程

在开始之前,确保你已经:

  1. ✅ 完成了 OpenClaw 的更新(参考《小型服务器更新 OpenClaw 完整指南》)
  2. ✅ OpenClaw 已安装在 /opt/openclaw/node_modules/openclaw/
  3. ✅ 创建了启动脚本 /usr/local/bin/openclaw
  4. ✅ 可以执行 openclaw –version 并看到版本号

直接运行 openclaw 命令时出现以下错误:

[root@server ~]# openclaw

<— Last few GCs —>

[63589:0x6c4c000] 53443 ms: Mark-Compact 508.2 (514.4) -> 506.7 (514.9) MB [63589:0x6c4c000] 54812 ms: Mark-Compact 508.8 (514.9) -> 508.0 (519.7) MB

FATAL ERROR: Ineffective mark-compacts near heap limit Allocation failed - JavaScript heap out of memory

Node.js 默认的内存限制(通常 512MB-1GB)不足以支撑 OpenClaw 的运行。OpenClaw 在启动时需要:

  • 加载大量的依赖模块
  • 初始化 node-llama-cpp 的 C++ 绑定
  • 加载配置和插件系统

在 2GB 内存的小型服务器上,默认限制会导致内存溢出。

GPT plus 代充 只需 145NODE_OPTIONS=“–max-old-space-size=1536” openclaw

这个命令只对当前执行有效,关闭终端后失效。

创建一个包装脚本来自动设置内存限制:

# 1. 删除旧的软链接 rm /usr/local/bin/openclaw

2. 创建包装脚本

cat > /usr/local/bin/openclaw <<‘EOF’ #!/bin/bash export NODE_OPTIONS=“–max-old-space-size=1536” exec node /opt/openclaw/node_modules/openclaw/openclaw.mjs “$@” EOF

3. 赋予执行权限

chmod +x /usr/local/bin/openclaw

4. 验证

openclaw –version

脚本说明

  • NODE_OPTIONS=“–max-old-space-size=1536”:设置 Node.js 堆内存上限为 1.5GB
  • exec node …:执行 OpenClaw 主程序
  • “$@”:传递所有命令行参数(如 openclaw gateway run

内存分配建议

服务器内存 推荐设置 说明
2GB 1536MB 为系统保留约 300MB
4GB 3072MB 为系统保留约 1GB
8GB+ 6144MB 可以更高,但通常不需要
GPT plus 代充 只需 145[root@server ~]# openclaw –version 2026.1.30

如果能正常显示版本号,说明内存问题已解决。


运行 openclaw gateway run 时出现错误:

[root@server ~]# openclaw gateway run

03:36:01 Gateway failed to start: gateway already running (pid 66708); lock timeout after 5000ms If the gateway is supervised, stop it with: openclaw gateway stop 03:36:01 Port 18789 is already in use. 03:36:01 Gateway service appears enabled. Stop it first. 03:36:01 Tip: openclaw gateway stop 03:36:01 Or: systemctl –user stop openclaw-gateway.service

当你手动更新 OpenClaw 时(通过打包传输方式),systemd 服务配置文件仍然指向旧版本的路径和配置:

  1. 路径错误:服务配置指向 /usr/lib/node_modules/openclaw,但实际安装在 /opt/openclaw
  2. 版本不匹配:服务配置中的版本号还是旧版本(如 1.29)
  3. 缺少内存限制:旧配置没有设置 NODE_OPTIONS
GPT plus 代充 只需 145# 尝试正常停止 openclaw gateway stop

如果无法停止,查找进程并强制终止

ps aux | grep openclaw kill <进程ID>

# 卸载旧服务配置 openclaw gateway uninstall

重新安装(会自动生成新的 systemd 配置)

openclaw gateway install

openclaw gateway install 做了什么

  1. ~/.config/systemd/user/ 创建 openclaw-gateway.service 文件
  2. 自动检测当前 OpenClaw 的安装路径
  3. 配置服务的启动命令、环境变量、重启策略
  4. 启用开机自启动

安装后的服务配置默认不包含内存限制,需要手动添加:

GPT plus 代充 只需 145# 编辑服务配置文件 nano ~/.config/systemd/user/openclaw-gateway.service

[Service] 段中,找到 Environment=OPENCLAW_GATEWAY_PORT=18789 这一行,在它之前添加:

Environment=“NODE_OPTIONS=–max-old-space-size=1536”

完整的 [Service] 段应该类似:

GPT plus 代充 只需 145[Service] ExecStart=/usr/bin/node /opt/openclaw/node_modules/openclaw/dist/index.js gateway –port 18789 Restart=always RestartSec=5 KillMode=process Environment=HOME=/root Environment=“PATH=/root/.local/share/pnpm:/root/.local/bin:/usr/local/bin:/usr/bin:/bin” Environment=“NODE_OPTIONS=–max-old-space-size=1536” Environment=OPENCLAW_GATEWAY_PORT=18789 Environment=OPENCLAW_GATEWAY_TOKEN=你的token Environment=“OPENCLAW_SYSTEMD_UNIT=openclaw-gateway.service” Environment=OPENCLAW_SERVICE_MARKER=openclaw Environment=OPENCLAW_SERVICE_KIND=gateway Environment=OPENCLAW_SERVICE_VERSION=2026.1.30

或者使用 sed 命令快速添加

sed -i ‘/Environment=OPENCLAW_GATEWAY_PORT/i Environment=“NODE_OPTIONS=–max-old-space-size=1536”’ 
~/.config/systemd/user/openclaw-gateway.service

GPT plus 代充 只需 145# 重载 systemd 配置 systemctl –user daemon-reload

启动 Gateway 服务

openclaw gateway start

检查服务状态

openclaw gateway status

成功启动后应该看到:

[root@server ~]# openclaw gateway status

🦞 OpenClaw 2026.1.30 (76b5208)

Gateway service: running (PID 70485) Port: 18789 Uptime: 2m 15s


OpenClaw Gateway 使用 systemd 作为服务管理器,提供以下功能:

GPT plus 代充 只需 145[Service] Restart=always RestartSec=5

说明

  • Restart=always:无论什么原因退出(崩溃、被杀、正常退出)都会自动重启
  • RestartSec=5:崩溃后等待 5 秒再重启,防止疯狂重启消耗资源

测试自动恢复

# 查看当前进程 ID openclaw gateway status

强制杀死进程

kill -9 <PID>

等待 5 秒后再次检查

sleep 6 openclaw gateway status

应该看到新的 PID,说明服务已自动恢复

WantedBy=default.target

检查是否启用

systemctl –user is-enabled openclaw-gateway.service

输出:enabled

手动启用/禁用

GPT plus 代充 只需 145# 启用开机自启

systemctl –user enable openclaw-gateway.service

禁用开机自启

systemctl –user disable openclaw-gateway.service

# 启动服务 openclaw gateway start

systemctl –user start openclaw-gateway.service

停止服务

openclaw gateway stop

systemctl –user stop openclaw-gateway.service

重启服务

openclaw gateway restart

systemctl –user restart openclaw-gateway.service

查看状态

openclaw gateway status

systemctl –user status openclaw-gateway.service

查看日志

journalctl –user -u openclaw-gateway.service -f

GPT plus 代充 只需 145~/.config/systemd/user/openclaw-gateway.service

查看完整配置

cat ~/.config/systemd/user/openclaw-gateway.service
GPT plus 代充 只需 145# 查看详细错误日志 journalctl –user -u openclaw-gateway.service -n 50
# 修改配置文件后必须重载 systemctl –user daemon-reload

然后重启服务

openclaw gateway restart

GPT plus 代充 只需 145# 查看失败原因 systemctl –user status openclaw-gateway.service

重置失败状态

systemctl –user reset-failed openclaw-gateway.service

重新启动

openclaw gateway start


在浏览器中访问 http://服务器IP:18789 时出现:

ERR_CONNECTION_REFUSED 或 ERR_CONNECTION_RESET

OpenClaw Gateway 默认绑定在 127.0.0.1(本地回环地址),只允许本机访问。这是出于安全考虑的设计。

验证绑定地址

GPT plus 代充 只需 145ss -tlnp | grep 18789

输出:LISTEN 0 511 127.0.0.1:18789 0.0.0.0:*

如果看到 127.0.0.1:18789,说明只绑定了本地地址。

有两种方式访问远程服务器上的 Gateway:

在本地电脑上执行以下命令:

ssh -N -L 18789:127.0.0.1:18789 root@<服务器公网IP>

命令说明

  • -N:不执行远程命令,只建立隧道
  • -L 18789:127.0.0.1:18789:将本地 18789 端口转发到服务器的 127.0.0.1:18789
  • root@<服务器公网IP>:SSH 连接信息

使用步骤

  1. 在本地终端执行上述命令(保持终端打开)
  2. 在本地浏览器打开: http://localhost:18789/?token=你的token

优点

  • ✅ 安全:流量通过 SSH 加密
  • ✅ 无需修改防火墙
  • ✅ 无需暴露端口到公网

缺点

  • ❌ 需要保持 SSH 连接
  • ❌ 每次访问前需要建立隧道

警告:此方法会将 Gateway 暴露到公网,存在安全风险。建议配合防火墙和强密码使用。

步骤 1:修改配置文件

GPT plus 代充 只需 145nano ~/.openclaw/openclaw.json

找到 gateway 配置段,修改 bind 字段:

{

“gateway”: {

GPT plus 代充 只需 145"port": 18789, "bind": "0.0.0.0", // 改为 0.0.0.0 "token": "你的token" 

} }

步骤 2:配置防火墙

# 如果使用 firewalld firewall-cmd –permanent –add-port=18789/tcp firewall-cmd –reload

如果使用 iptables

iptables -A INPUT -p tcp –dport 18789 -j ACCEPT service iptables save

阿里云/腾讯云:还需要在控制台的安全组中开放 18789 端口

步骤 3:重启 Gateway

GPT plus 代充 只需 145openclaw gateway restart

步骤 4:验证绑定

ss -tlnp | grep 18789

输出:LISTEN 0 511 0.0.0.0:18789 0.0.0.0:*

现在可以通过公网 IP 访问:

GPT plus 代充 只需 145http://<服务器公网IP>:18789/?token=你的token

安全建议

  • 使用强随机 token(OpenClaw 默认生成的 token 已经足够强)
  • 定期更换 token
  • 配置防火墙只允许特定 IP 访问
  • 考虑使用 Nginx 反向代理 + HTTPS

Gateway 启动后,日志中出现以下错误:

03:27:04 [diagnostic] lane task error: lane=main durationMs=34

error=“FailoverError: No API key found for provider ”anthropic“. Auth store: /root/.openclaw/agents/main/agent/auth-profiles.json”

03:27:04 [llm-slug-generator] Failed to generate slug: FailoverError: No API key found for provider “anthropic”

OpenClaw 的某些内部功能(如 session-memory hook 的 slug 生成器)默认使用 Anthropic 的 claude-opus-4-5 模型。如果你没有配置 Anthropic API 密钥,这些功能会失败。

好消息:这个错误不会阻止 Gateway 运行。系统会使用回退方案(如时间戳 slug)。

如果你有 Anthropic API 密钥:

GPT plus 代充 只需 145openclaw auth add anthropic

按提示输入 API 密钥。

验证配置

cat ~/.openclaw/agents/main/agent/auth-profiles.json

应该看到 anthropic 配置:

GPT plus 代充 只需 145{ “anthropic”: {

"apiKey": "sk-ant-..." 

} }

如果你暂时不需要 slug 生成功能,可以忽略这个错误。系统会自动使用时间戳作为 slug:

GPT plus 代充 只需 14503:27:04 [session-memory] Generated slug: null 03:27:04 [session-memory] Using fallback timestamp slug: 0327 03:27:04 [session-memory] Generated filename: 2026-02-01-0327.md

查看已配置的提供商

cat ~/.openclaw/agents/main/agent/auth-profiles.json | jq ‘keys’

删除 API 密钥

GPT plus 代充 只需 145openclaw auth remove anthropic

更新 API 密钥

openclaw auth add anthropic # 会覆盖旧密钥

GPT plus 代充 只需 145# 1. 验证安装 openclaw –version

2. 初始化配置(如果是首次使用)

openclaw onboard

3. 卸载旧的 Gateway 服务配置

openclaw gateway uninstall

4. 重新安装 Gateway 服务

openclaw gateway install

5. 添加内存限制到服务配置

6. 重载 systemd 配置

systemctl –user daemon-reload

7. 启动 Gateway

openclaw gateway start

8. 检查状态

openclaw gateway status

9. 查看日志(可选)

journalctl –user -u openclaw-gateway.service -f

# 启动 Gateway openclaw gateway start

停止 Gateway

openclaw gateway stop

重启 Gateway

openclaw gateway restart

查看状态

openclaw gateway status

在本地电脑上

GPT plus 代充 只需 145# 建立 SSH 隧道 ssh -N -L 18789:127.0.0.1:18789 root@<服务器IP>

在本地浏览器中打开:

http://localhost:18789/?token=你的token

检查清单

  • [ ] openclaw –version 显示正确版本
  • [ ] openclaw gateway status 显示 “running”
  • [ ] 端口 18789 正在监听:ss -tlnp | grep 18789
  • [ ] 服务已启用开机自启:systemctl –user is-enabled openclaw-gateway.service 输出 “enabled”
  • [ ] 可以通过浏览器访问 Control UI
  • [ ] 日志中没有严重错误:journalctl –user -u openclaw-gateway.service -n 50

症状openclaw gateway start 后立即退出

排查步骤

GPT plus 代充 只需 145# 1. 查看详细日志 journalctl –user -u openclaw-gateway.service -n 100

2. 检查端口是否被占用

ss -tlnp | grep 18789

3. 手动运行 Gateway(查看实时输出)

openclaw gateway run

4. 检查配置文件

cat ~/.openclaw/openclaw.json cat ~/.config/systemd/user/openclaw-gateway.service

症状:日志中出现 “JavaScript heap out of memory”

解决

# 检查是否设置了内存限制 grep “NODE_OPTIONS” ~/.config/systemd/user/openclaw-gateway.service

如果没有,添加内存限制

重载并重启

systemctl –user daemon-reload openclaw gateway restart

症状:浏览器显示 “无法连接” 或 “连接被拒绝”

排查步骤

GPT plus 代充 只需 145# 1. 确认 Gateway 正在运行 openclaw gateway status

2. 确认端口正在监听

ss -tlnp | grep 18789

3. 检查绑定地址

如果输出是 127.0.0.1:18789,需要使用 SSH 隧道

如果输出是 0.0.0.0:18789,可以直接访问

4. 检查防火墙(如果绑定到 0.0.0.0)

firewall-cmd –list-ports

iptables -L -n | grep 18789

5. 检查阿里云/腾讯云安全组

需要在控制台开放 18789 端口

症状openclaw gateway status 显示 uptime 很短,不断重启

排查步骤

# 查看重启原因

journalctl –user -u openclaw-gateway.service -n 200 | grep -E “error|Error|ERROR|failed|Failed”

常见原因:

1. 内存不足 → 增加内存限制

2. 配置错误 → 检查 ~/.openclaw/openclaw.json

3. API 密钥无效 → 重新配置 API 密钥

4. 端口冲突 → 更换端口或停止冲突进程
  1. 内存限制是必须的:小型服务器必须设置 NODE_OPTIONS=“–max-old-space-size=1536”
  2. 更新后重新安装服务:手动更新后必须运行 openclaw gateway install 更新 systemd 配置
  3. 使用 systemd 管理服务:不要手动运行 openclaw gateway run,使用 openclaw gateway start
  4. SSH 隧道是最安全的访问方式:避免将 Gateway 直接暴露到公网
  5. API 密钥错误可以忽略:如果不影响核心功能,可以暂时忽略 slug 生成器的错误
  • 小型服务器更新 OpenClaw 完整指南 - 如何编译和部署
  • OpenClaw 官方文档 - 官方使用指南
  • systemd 用户服务 - systemd 用户服务详解

文档版本:1.0 最后更新:2026-02-01 适用版本:OpenClaw 2026.1.30+ 测试环境:Alibaba Cloud Linux 3 + 2GB 内存


祝你使用愉快!如有问题,请参考故障排查章节或查阅官方文档。

小讯
上一篇 2026-03-12 11:19
下一篇 2026-03-12 11:21

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/214132.html