OpenClaw控制机器人配置总结

2026-05-03阅读 0热度 0
人工智能 OpenClaw

架构说明

整个部署架构其实很清晰,主要就两个核心角色:

  • OpenClaw Gateway机器:作为控制中心,IP地址是 192.168.1.5。
  • OpenClaw Node 机器人:通常部署在树莓派这类设备上,它才是真正干活儿的执行端,负责提供摄像头、麦克风、扬声器等硬件能力。

它们之间的连接方式也很直接:通过 WebSocket 协议进行内网直连。这里有个关键点,为了在内网环境下简化配置,我们通过设置环境变量,允许使用明文的 ws:// 连接。当然,如果涉及到跨公网,那就必须切换为加密的 wss:// 或者使用 SSH 隧道了。

Gateway 配置关键点

要让 Gateway 准备好接收 Node 的连接,配置上需要关注几个核心参数。下面这段配置示例可以说把要点都涵盖了:

{
    "port": 18789,
    "mode": "local",
    "bind": "lan", // 监听所有网络接口
    "auth": {
        "mode": "token", // 使用 token 认证
        "token": "xxx" // 节点连接时需提供此 token
    }
}

简单来说,就是让 Gateway 在本地模式运行,监听所有局域网接口,并启用 Token 认证机制来确保只有合法的 Node 才能接入。

Node 配置步骤

Node 端的配置,核心思路是将其包装成一个系统服务,确保它能随系统启动、异常退出后能自动恢复。下面我们一步步拆解。

1. 创建服务文件

首先,我们需要创建一个 systemd 服务文件,这是实现后台稳定运行的关键。文件内容大致如下:

[Unit]
Description=OpenClaw Node Service
After=network.target
Wants=network.target

[Service]
Type=simple
User=jack
Group=jack
WorkingDirectory=/home/jack
EnvironmentFile=/home/jack/.openclaw/openclaw-node.env
ExecStart=/usr/bin/openclaw node run --host $OPENCLAW_GATEWAY_HOST --port $OPENCLAW_GATEWAY_PORT --display-name "RaspPi-node"
Restart=always
RestartSec=10
StandardOutput=journal
StandardError=journal

[Install]
WantedBy=multi-user.target

这个服务文件有几个配置项值得特别说明:

配置项 作用 备注
OPENCLAW_ALLOW_INSECURE_PRIVATE_WS=1 允许明文 ws:// 连接 仅用于可信内网,跨网需用 wss:// 或 SSH 隧道
EnvironmentFile 分离敏感配置 便于管理和权限控制
Restart=always 自动重连 网络断开或进程崩溃时自动恢复

这里有个小提示:如果 Gateway 的配置中 bind 参数设置的是 loopback(这是本地模式的默认值),那么远程的 Node 是无法直接连接它的。这时候,SSH 隧道就成了一个优雅的解决方案。

# 终端A:在Gateway机器上,将本地端口转发出去
ssh -N -L 18790:127.0.0.1:18789 user@gateway-host

# 终端B:Node通过本地隧道端口连接
export OPENCLAW_GATEWAY_TOKEN=""
openclaw node run --host 127.0.0.1 --port 18790 --display-name "Build Node"

2. 创建环境文件

敏感信息和连接参数最好独立出来,放在环境变量文件里。我们通常将其放在 /home/jack/.openclaw/openclaw-node.env

OPENCLAW_GATEWAY_HOST=192.168.1.5 # Gateway IP
OPENCLAW_GATEWAY_PORT=18789 # Gateway 端口
OPENCLAW_ALLOW_INSECURE_PRIVATE_WS=1 # 允许内网明文连接
OPENCLAW_GATEWAY_TOKEN=f3b04ac3b2aa... # Gateway token

3. 创建 systemd 符号链接

为了让系统识别我们的服务,需要创建一个符号链接到 systemd 的系统目录。

sudo ln -s /home/jack/.openclaw/openclaw-node.service /etc/systemd/system/openclaw-node.service

4. 设置权限(安全)

由于环境文件包含了 Token 等敏感信息,务必限制其访问权限。

chmod 600 /home/jack/.openclaw/openclaw-node.env

5. 启动并启用服务

最后,重载 systemd 配置,启动服务并设置开机自启。

sudo systemctl daemon-reload
sudo systemctl start openclaw-node.service
sudo systemctl enable openclaw-node.service

6. Node权限配置

配置到这一步,Node 已经能连上 Gateway 了。但每次在 Gateway 上通过命令行向 Node 发送指令时,可能还会弹出一个授权确认框。为了提高自动化程度,我们可以预先配置好命令执行的白名单。

# 首先,查看一下当前针对 “RaspPi-node” 的审批配置
openclaw approvals get --node "RaspPi-node"

# 然后,为这个节点添加允许列表。有两种思路:
# 方法1:添加通配符,允许执行任何命令(适合完全受控的测试环境)
openclaw approvals allowlist add --node "RaspPi-node" "*"

# 方法2:精细化控制,只添加常用目录的允许列表(更安全)
openclaw approvals allowlist add --node "RaspPi-node" "/usr/bin/*"
openclaw approvals allowlist add --node "RaspPi-node" "/bin/*"
openclaw approvals allowlist add --node "RaspPi-node" "/usr/local/bin/*"
openclaw approvals allowlist add --node "RaspPi-node" "/home/jack/*"

# 如果追求便利性,通常推荐直接使用通配符 “*”

总结:OpenClaw添加新Node的步骤

好了,我们把整个流程串起来看,添加一个新 Node 其实就是以下几个标准动作:

  1. 在新机器上安装 OpenClaw:这是前提。

  2. 复制并修改模板文件

    mkdir -p ~/.openclaw
    # 复制服务文件模板,记得修改里面的 display-name
    # 复制环境文件模板,修改必要的连接配置
  3. 修改环境文件:这是连接的关键,确保以下变量正确:

    • OPENCLAW_GATEWAY_HOST: 填写 Gateway 的 IP 地址。
    • OPENCLAW_GATEWAY_TOKEN: 填写从 Gateway 获取的 Token。
    • 保持 OPENCLAW_ALLOW_INSECURE_PRIVATE_WS=1(仅限内网环境)。
  4. 创建符号链接并启动服务:即执行前面第3到第5步的操作。

  5. 在 Gateway 上批准配对:Node 启动后会向 Gateway 发起连接请求,需要在 Gateway 端手动批准。

    # 在Gateway上列出待批准的设备
    openclaw devices list
    # 批准特定的连接请求
    openclaw devices approve 
    # 当然,更直观的方式是直接登录 OpenClaw Gateway 的 Web 管理界面进行操作。
  6. 验证与测试:部署完成后,别忘了做一次健康检查。

    # 查看服务运行状态
    sudo systemctl status openclaw-node.service
    # 查看实时日志,排查问题
    sudo journalctl -u openclaw-node.service -f
    # 在 Gateway 上确认节点状态
    openclaw nodes status
    # 测试节点功能是否正常,例如列出摄像头
    openclaw nodes camera list --node "节点名"

常见问题速查

最后,附上一个常见问题排查表,遇到问题时可以快速对照:

问题 解决方案
Failed to load environment files 检查环境文件路径是否正确,以及文件是否存在。
SECURITY ERROR 确认环境变量中已设置 OPENCLAW_ALLOW_INSECURE_PRIVATE_WS=1
配对失败 在 Gateway 上执行 openclaw devices list 查看是否有待处理的连接请求。
连接不稳定 检查 Node 与 Gateway 之间的网络连通性,以及防火墙是否放行了相关端口。
免责声明

本网站新闻资讯均来自公开渠道,力求准确但不保证绝对无误,内容观点仅代表作者本人,与本站无关。若涉及侵权,请联系我们处理。本站保留对声明的修改权,最终解释权归本站所有。

相关阅读

更多
欢迎回来 登录或注册后,可保存提示词和历史记录
登录后可同步收藏、历史记录和常用模板
注册即表示同意服务条款与隐私政策