一、Gateway 核心概述

Gateway 是 OpenClaw 的核心调度中枢,统一负责消息路由、会话管理、多渠道对接与接口转发,相当于整个智能体集群的总入口。

它采用单端口复用架构,Web 可视化面板、HTTP 接口、WebSocket 长连接共用同一个端口,默认端口 18789,仅需开放单端口即可满足全部功能需求。

基础启停指令

bash

运行

# 前台启动(调试常用,输出完整日志)
openclaw gateway run

启动后浏览器访问可视化管理面板:

plaintext

http://127.0.0.1:18789/

二、配置文件基础说明

1. 文件路径与格式

主配置文件固定路径:

plaintext

~/.openclaw/openclaw.json

文件采用 JSON5 格式,原生支持代码注释、末尾逗号,编写和修改比标准 JSON 更便捷。无自定义配置时,程序会自动加载内置默认参数运行。

2. 配置文件管理指令

bash

运行

# 查看当前完整运行配置
openclaw config

# 调用默认编辑器打开配置文件
openclaw configure

3. 基础配置模板

json5

{
  // 网关核心配置
  "gateway": {
    "port": 18789,
    "bind": "127.0.0.1"
  },
  // 第三方聊天渠道配置
  "channels": {
    "telegram": {
      "botToken": "你的渠道密钥"
    }
  },
  // 全局默认模型配置
  "models": {
    "default": "openai:gpt-4o"
  }
}

三、核心配置项详解

3.1 端口配置

默认端口 18789,若该端口被其他服务占用,可手动修改:

json5

{
  "gateway": {
    "port": 8080
  }
}

修改端口后必须重启网关,新配置方可生效。

3.2 监听地址(Bind)

用于控制网关监听的网络范围,区分本地访问与外网 / 局域网访问:

表格

配置值作用说明适用场景
127.0.0.1(默认)仅本机设备可访问本地单机使用,安全性最高
0.0.0.0监听全部网卡,局域网 / 公网均可访问多设备联动、远程部署场景

示例(允许全网访问):

json5

{
  "gateway": {
    "bind": "0.0.0.0"
  }
}

⚠️ 安全强制规则:设置为 0.0.0.0 对外暴露时,必须配套开启身份认证,否则网关直接启动失败,提示 refusing to bind without auth

3.3 身份认证配置(外网必开)

对外暴露网关时,提供两种主流认证方式,二选一即可。

方式 1:Token 令牌认证(推荐)

安全性更高,适合接口、多设备接入场景:

json5

{
  "gateway": {
    "bind": "0.0.0.0",
    "auth": {
      "token": "自定义高强度密钥"
    }
  }
}

快速生成随机安全令牌:

bash

运行

openssl rand -hex 32

方式 2:密码认证

适合网页面板登录,操作简单:

json5

{
  "gateway": {
    "bind": "0.0.0.0",
    "auth": {
      "password": "自定义登录密码"
    }
  }
}

3.4 热重载策略配置

控制配置修改后的生效逻辑,无需频繁手动重启服务:

表格

模式规则说明
off关闭自动重载,所有修改均需手动重启
hot安全类配置即时热生效,不中断现有连接
restart任意配置修改,都自动完整重启网关
hybrid(默认)智能区分配置类型,兼顾稳定性与便捷性

标准配置(默认混合模式):

json5

{
  "gateway": {
    "reload": {
      "mode": "hybrid"
    }
  }
}

热重载生效范围

  1. 热更新(无需重启):模型密钥、渠道令牌、智能体人设、工具权限等常规配置;
  2. 强制重启:监听端口、绑定地址、认证信息、插件增删等底层配置。

四、远程访问方案

默认仅本机访问,如需手机、其他电脑、外网服务器连接,推荐以下两种方案。

方案一:Tailscale 虚拟局域网(首选,安全简单)

依托虚拟组网技术实现远程访问,无需修改网关绑定地址、无需开放公网端口,全程加密。

  1. 网关主机、远端设备均安装 Tailscale 并登录同一账号;
  2. 获取网关主机的 Tailscale 虚拟 IP;
  3. 远端浏览器访问:

plaintext

http://100.x.x.x:18789/

方案二:SSH 端口隧道(适合有服务器权限场景)

将远程服务器网关端口映射到本地,本地直接访问。

bash

运行

# 建立端口转发隧道
ssh -N -L 18789:127.0.0.1:18789 用户名@服务器公网IP

参数释义:

  • -N:仅做端口转发,不登录远程终端;
  • -L 本地端口:远程地址:远程端口:端口映射规则。

连接成功后,本地访问 http://127.0.0.1:18789/ 即可。

补充:隧道断开后需重连,可搭配 autossh 实现断线自动重连。

五、可视化仪表板

网关内置 Web 管理面板,集成运维全功能:

访问地址

  • 本地:http://127.0.0.1:18789/
  • 远程:通过 Tailscale / SSH 隧道对应地址访问

核心功能

  1. 渠道监控:查看各聊天通道连接状态、网络延迟;
  2. 会话管理:浏览、操作全部交互会话;
  3. 配置查阅:在线查看网关当前运行参数;
  4. 日志实时查看:快速定位运行异常。

六、网关服务全量管理指令

6.1 状态查看

bash

运行

# 查看基础运行状态
openclaw gateway status

# 深度体检:检测渠道、模型、磁盘、端口等全组件
openclaw gateway status --deep

6.2 启停与重启

bash

运行

# 重启网关
openclaw gateway restart

# 停止网关服务
openclaw gateway stop

6.3 注册系统自启服务

设置开机自动运行、进程崩溃自动重启,适配服务器长期值守:

bash

运行

openclaw gateway install

系统适配规则:Linux 使用 systemd、macOS 使用 launchd、Windows 使用系统计划任务。

6.4 全局环境诊断

故障排查优先执行,自动检测版本、配置、端口、依赖问题并给出修复建议:

bash

运行

openclaw doctor

七、常见故障排查

故障 1:端口占用 EADDRINUSE

报错Error: listen EADDRINUSE: address already in use :::18789

原因:默认端口被其他程序占用。

bash

运行

# macOS / Linux 查找占用进程
lsof -i :18789

# Windows 查找占用进程
netstat -ano | findstr 18789

解决方式:

  1. 终止占用端口的进程;
  2. 或修改网关监听端口。

故障 2:访问鉴权失败 401 Unauthorized

报错authentication failed

原因:Token / 密码与配置文件不一致。

解决方式:

  1. 打开 openclaw.json 核对认证信息;
  2. 重新设置密钥 / 密码,重启网关。

故障 3:禁止外网绑定 refusing to bind without auth

报错:对外绑定 0.0.0.0 未配置认证。

解决方式:

  1. 补充 auth 认证配置(Token / 密码);
  2. 无需外网访问则将 bind 改回 127.0.0.1

故障 4:网关启动失败

按顺序逐级排查:

bash

运行

# 1. 全局环境诊断
openclaw doctor
# 2. 校验配置文件语法
openclaw config
# 3. 前台 verbose 模式启动,查看详细报错日志
openclaw gateway run --verbose
# 4. 核查 Node 版本(要求 22.14+ / 24+)
node --version

故障 5:聊天渠道频繁断开

bash

运行

# 探测所有渠道连通状态
openclaw channels status --probe

# 重新登录异常渠道
openclaw channels login --channel 渠道名

# 问题持续则重启网关
openclaw gateway restart

八、总结

  1. 网关配置文件为 ~/.openclaw/openclaw.json,JSON5 格式支持注释,修改便捷;
  2. 默认端口 18789,单端口承载面板、接口、长连接全部功能;
  3. 对外暴露必须开启认证,遵循安全规范,避免未授权访问;
  4. 远程访问优先使用 Tailscale,其次选择 SSH 隧道;
  5. 日常排障优先执行 openclaw doctor,快速定位绝大多数问题;
  6. 混合热重载模式为默认最优方案,兼顾体验与稳定性。