通过会话管理CLI(ali-instance-cli)的端口转发和会话连接功能,无需公网 IP 和安全组入方向规则,即可安全访问 ECS 实例内的 OpenClaw 服务。
背景信息
访问 ECS 实例内的 OpenClaw Web 界面或 TUI 界面,通常需要公网 IP 并在安全组中开放服务端口(如 18789)。ali-instance-cli 基于会话管理通道建立加密连接,所有流量经阿里云内部网络传输,无需开放任何端口。
支持以下两种连接方式:
连接方式 | 说明 | 适用场景 |
将实例内 OpenClaw Dashboard 端口转发到本地,通过浏览器访问。 | 日常使用 OpenClaw,需要图形化操作界面。 | |
通过会话管理登录实例终端,在命令行中使用 OpenClaw TUI(文本交互界面)。 | 偏好命令行操作,或需要在终端中直接交互。 |
前提条件
已完成准备工作,包括:
开启会话管理功能。
确认实例的云助手 Agent 已安装且处于正常状态。
已在本地计算机上安装并配置会话管理CLI。
ECS 实例中已部署 OpenClaw 服务,且 OpenClaw Gateway 处于运行状态。
如果未开启会话管理功能,执行 ali-instance-cli 命令时会报错 session manager is disabled。
免公网打开 Web 界面
通过端口转发将实例内 OpenClaw Dashboard 端口映射到本地,在浏览器中访问 Web 控制界面。
步骤一:确认 OpenClaw Gateway 运行状态
在实例中执行以下命令查看 OpenClaw Gateway 的运行状态:
openclaw gateway status输出示例:
Gateway: bind=lan (0.0.0.0), port=18789 (env/config)
...
RPC probe: ok
Listening: *:18789如果输出中 RPC probe 显示 ok 且 Listening 显示端口号,表示 OpenClaw Gateway 运行正常。
步骤二:获取 Dashboard 访问地址
在实例中执行以下命令获取 OpenClaw Dashboard 的 URL:
openclaw dashboard输出示例:
Dashboard URL: http://127.0.0.1:18789/#token=<TOKEN>记录端口号(默认 18789)和 Token 值,后续步骤需要使用。
步骤三:在本地执行端口转发
在本地执行以下命令,将实例内 OpenClaw 端口转发到本地(以 Linux 为例,macOS 和 Windows 用法一致):
./ali-instance-cli portforward --instance <INSTANCE_ID> --local-port 18789 --remote-port 18789参数说明:
--instance:ECS 实例 ID,例如i-bp1xxxxxxxxxxxxx。--local-port:本地监听端口。可以与远程端口不同,例如设置为18789。--remote-port:实例内 OpenClaw 服务的监听端口,默认为18789。
终端输出类似以下信息:
Port forwarding for SessionId: s-hz0xxxxx, local port 18789, remote port :18789
Waiting for connections...保持终端窗口运行,关闭会断开连接。
步骤四:在浏览器中访问 OpenClaw
在浏览器中打开以下 URL:
http://localhost:18789/#token=<TOKEN>将 <TOKEN> 替换为步骤二获取的 Token 值。如果 --local-port 设为其他端口(如 18789),相应修改 URL 中的端口号。
免公网登录 TUI 界面
通过会话连接功能登录 ECS 实例终端,直接启动 OpenClaw TUI(文本交互界面)。
步骤一:确认版本要求
确认本地 ali-instance-cli 版本满足以下最低要求:
操作系统 | 最低版本要求 |
Linux | 1.2.0.82 |
Windows | 1.1.0.82 |
macOS | 1.3.0.82 |
执行以下命令查看当前版本:
./ali-instance-cli version步骤二:确认 OpenClaw Gateway 运行状态
在实例中执行以下命令查看 OpenClaw Gateway 的运行状态:
openclaw gateway status步骤三:获取 OpenClaw Gateway 的鉴权 Token
从 openclaw.json 配置文件获取 OpenClaw Gateway 鉴权 Token。
Linux:
~/.openclaw/openclaw.jsonWindows:
C:\Users\<用户名>\.openclaw\openclaw.json
鉴权 Token 位于 gateway.auth.token 字段:
{
"gateway": {
"auth": {
"mode": "token",
"token": "<YOUR_TOKEN>"
}
}
}以下命令中 <TOKEN> 即为该值。
步骤四:登录实例并启动 TUI
目标实例为 Linux 系统:
执行以下命令,指定实例 ID、系统用户名和 Gateway 的鉴权 Token:
./ali-instance-cli session --instance <INSTANCE_ID> --user-name <USER_NAME> --commandLine "openclaw tui --token <TOKEN>"目标实例为 Windows 系统:
执行以下命令,指定实例 ID、系统用户名、用户密码和 Gateway 的鉴权 Token:
./ali-instance-cli session --instance <INSTANCE_ID> --user-name <USER_NAME> --password <PASSWD> --commandLine "powershell -command openclaw tui --token <TOKEN>"以上为基础命令示例,可根据需求为 openclaw tui 添加其他参数。
常见问题
OpenClaw 部署在 Docker 容器中,端口转发建立后,浏览器无法访问 OpenClaw Web 界面?
OpenClaw Gateway 未绑定到 Docker 可转发的网络接口。Gateway 默认绑定回环(loopback) 地址,Docker 端口映射无法正常转发流量。
解决方法:在实例中执行以下命令将 Gateway 绑定模式改为 LAN,然后重启容器:
将 <CONTAINER_NAME> 替换为容器名称。
docker exec <CONTAINER_NAME> openclaw config set gateway.bind lan
docker restart <CONTAINER_NAME>会话连接后执行 Docker 命令提示权限不足?
ali-instance-cli 会话默认以 ecs-assist-user 用户登录,执行 Docker 命令需添加 sudo,例如 sudo docker exec openclaw openclaw dashboard。