VibeCoding - OpenClaw 公网访问配置指南 (自动化)

欢迎关注我的CSDN:https://spike.blog.csdn.net/

本文地址:https://spike.blog.csdn.net/article/details/160054603

免责声明:本文来源于个人知识与公开资料,仅用于学术交流,欢迎讨论,不支持转载。


详细教程:将 OpenClaw Gateway 配置为公网 IP + 端口访问模式

📋 目录

  1. 背景介绍
  2. 适用场景
  3. 前置条件
  4. 配置步骤
  5. 完整配置示例
  6. 访问验证
  7. 常见问题
  8. 安全建议

背景介绍

OpenClaw 默认将 Gateway 绑定在本地回环地址 127.0.0.1loopback 模式),这意味着只能通过本机浏览器访问 Control UI。

本教程将指导你如何将 Gateway 配置为监听所有网络接口(0.0.0.0),从而允许通过服务器的公网 IP 地址远程访问 OpenClaw 的 Web 界面。


适用场景

  • ✅ 远程服务器上部署 OpenClaw,需要在本地浏览器管理
  • ✅ 内网穿透或 VPN 环境下访问 OpenClaw
  • ✅ 将 OpenClaw 作为服务提供给局域网内其他用户使用
  • ✅ 测试环境快速搭建

前置条件

在开始配置前,请确保:

  1. OpenClaw 已安装并运行

    bash 复制代码
    openclaw --version
  2. 确认 Gateway 当前状态

    bash 复制代码
    openclaw gateway status
  3. 获取服务器 IP 地址

    bash 复制代码
    hostname -I
    # 或
    ip addr show
  4. 确保防火墙放行目标端口(默认 18789)

    bash 复制代码
    # 检查端口是否开放
    sudo ufw status
    # 或
    sudo iptables -L | grep 18789

配置步骤

步骤 1:备份当前配置

重要! 修改前先备份:

bash 复制代码
# 创建备份
mkdir -p ~/.openclaw/backups
cp ~/.openclaw/openclaw.json ~/.openclaw/backups/openclaw.json.$(date +%Y%m%d_%H%M%S)

# 确认备份成功
ls -la ~/.openclaw/backups/

步骤 2:编辑配置文件

bash 复制代码
# 使用你喜欢的编辑器打开配置文件
nano ~/.openclaw/openclaw.json
# 或
vim ~/.openclaw/openclaw.json

步骤 3:修改 Gateway 绑定地址

找到 gateway 配置块,进行以下修改:

修改前(仅本地访问):

json 复制代码
"gateway": {
  "port": 18789,
  "mode": "local",
  "bind": "loopback"
}

修改后(允许公网访问):

json 复制代码
"gateway": {
  "port": 18789,
  "mode": "local",
  "bind": "0.0.0.0",
  "controlUi": {
    "allowInsecureAuth": true,
    "allowedOrigins": ["*"],
    "dangerouslyDisableDeviceAuth": true
  }
}
配置项说明
配置项 说明 注意事项
bind 监听地址 0.0.0.0 监听所有网络接口
allowInsecureAuth 允许不安全认证 true HTTP 模式下必须开启
allowedOrigins 允许的来源 ["*"] * 表示允许任意来源
dangerouslyDisableDeviceAuth 禁用设备身份验证 true 解决 HTTP 限制问题

步骤 4:保存并重启 Gateway

保存配置文件后,重启 Gateway 使配置生效:

bash 复制代码
# 重启 Gateway
openclaw gateway restart

# 等待几秒后检查状态
sleep 3
openclaw gateway status

重启后,你应该能看到类似输出:

复制代码
Gateway: bind=lan (0.0.0.0), port=18789
Dashboard: http://<你的IP>:18789/
Probe note: bind=lan listens on 0.0.0.0 (all interfaces)

步骤 5:配置防火墙(如需要)

如果无法从外部访问,检查防火墙设置:

bash 复制代码
# Ubuntu/Debian (UFW)
sudo ufw allow 18789/tcp
sudo ufw reload

# CentOS/RHEL (Firewalld)
sudo firewall-cmd --permanent --add-port=18789/tcp
sudo firewall-cmd --reload

# 使用 iptables
sudo iptables -A INPUT -p tcp --dport 18789 -j ACCEPT
sudo iptables-save

# 检查云服务器安全组(AWS/阿里云/腾讯云等)
# 需要在控制台添加 18789 端口的入站规则

完整配置示例

以下是完整的 ~/.openclaw/openclaw.json 配置示例:

json 复制代码
{
  "agents": {
    "defaults": {
      "model": {
        "primary": "volcengine-plan/kimi-k2.5"
      },
      "models": {
        "volcengine-plan/ark-code-latest": {},
        "volcengine-plan/kimi-k2.5": {}
      },
      "workspace": "/root/.openclaw/workspace"
    }
  },
  "gateway": {
    "port": 18789,
    "mode": "local",
    "bind": "0.0.0.0",
    "auth": {
      "mode": "token",
      "token": "your-secure-token-here"
    },
    "controlUi": {
      "allowInsecureAuth": true,
      "allowedOrigins": ["*"],
      "dangerouslyDisableDeviceAuth": true
    }
  },
  "tools": {
    "profile": "coding",
    "web": {
      "search": {
        "enabled": true,
        "provider": "duckduckgo"
      }
    }
  }
}

访问验证

本地测试

bash 复制代码
# 测试本地访问
curl http://127.0.0.1:18789

# 查看完整 Gateway 状态
openclaw gateway status

远程访问

在浏览器中打开:

复制代码
http://<你的服务器IP>:18789

例如:

复制代码
http://172.31.0.2:18789

验证步骤

  1. 页面应正常加载,显示登录界面
  2. 输入 token 后应成功进入 Control UI
  3. 检查浏览器控制台,确认没有跨域错误

常见问题

Q1: "origin not allowed" 错误

现象: 登录时提示 origin not allowed

原因: Control UI 的跨域来源限制

解决:gateway.controlUi 中添加 allowedOrigins: ["*"]

json 复制代码
"controlUi": {
  "allowedOrigins": ["*"]
}

Q2: "control ui requires device identity" 错误

现象: 登录时提示 control ui requires device identity

原因: HTTP 模式下浏览器禁用了 Web Crypto API,无法进行设备身份验证

解决:gateway.controlUi 中添加 dangerouslyDisableDeviceAuth: true

json 复制代码
"controlUi": {
  "dangerouslyDisableDeviceAuth": true
}

Q3: "unauthorized: too many failed authentication attempts" 错误

现象: 登录时提示认证失败次数过多

原因: 多次尝试失败后触发了速率限制

解决:

  1. 等待 5-10 分钟后重试
  2. 清除浏览器缓存和 Cookie
  3. 重启 Gateway: openclaw gateway restart

Q4: 无法从外部网络访问

现象: 本地可以访问,但外部无法连接

排查步骤:

bash 复制代码
# 1. 确认 Gateway 监听地址
openclaw gateway status | grep -i "listening\|bind"

# 2. 检查端口监听情况
ss -tlnp | grep 18789

# 3. 检查防火墙
sudo ufw status
sudo iptables -L -n | grep 18789

# 4. 测试端口连通性(从另一台机器)
telnet <服务器IP> 18789
nc -vz <服务器IP> 18789

常见原因:

  • Gateway 绑定在 127.0.0.1 而非 0.0.0.0
  • 防火墙阻止了 18789 端口
  • 云服务器安全组未放行端口

Q5: 如何恢复到仅本地访问模式

如果需要恢复默认的安全配置:

json 复制代码
"gateway": {
  "bind": "loopback",
  "controlUi": {
    "allowInsecureAuth": false,
    "allowedOrigins": [],
    "dangerouslyDisableDeviceAuth": false
  }
}

然后重启 Gateway:

bash 复制代码
openclaw gateway restart

安全建议

⚠️ 重要提示: 本教程的配置会降低安全性,仅建议在以下场景使用:

  • ✅ 受信任的局域网环境
  • ✅ 临时测试环境
  • ✅ 有防火墙保护的服务器
  • ✅ 已经配置反向代理和 HTTPS

生产环境安全加固建议

  1. 使用 HTTPS

    json 复制代码
    "controlUi": {
      "allowInsecureAuth": false
    }

    配合 Nginx 反向代理 + SSL 证书

  2. 限制允许的来源

    json 复制代码
    "allowedOrigins": ["https://your-domain.com"]
  3. 使用强 Token

    bash 复制代码
    # 生成随机强密码
    openssl rand -base64 32
  4. 防火墙限制

    bash 复制代码
    # 仅允许特定 IP 访问
    sudo ufw allow from 192.168.1.0/24 to any port 18789

相关资源


作者与贡献

本教程由 OpenClaw 社区整理编写。

如有问题或建议,欢迎:


最后更新时间: 2026年4月5日

适用版本: OpenClaw 2026.4.2 及更高版本

相关推荐
fish_xk1 天前
Linux基础指令。
linux·运维·服务器
计算机安禾1 天前
【Linux从入门到精通】第42篇:深入理解Linux内存管理
android·linux·运维
艾莉丝努力练剑1 天前
【Linux网络】Linux 网络编程入门:UDP Socket 编程(上)
linux·运维·服务器·网络·c++·udp
代码中介商1 天前
Linux多线程编程完全指南:线程同步、互斥锁与生产者消费者模型
linux·运维·服务器
学不会pwn不改名1 天前
【ArchLinux】如何制服国产免驱网卡
linux·运维·网络
一只小bit1 天前
Docker 存储卷:本地文件与容器内部文件建立绑定关系
运维·docker·容器
可视化运维管理爱好者1 天前
rg完整中文操作指南
linux·运维·服务器·ai
是Dream呀1 天前
从零到一:Triton实现CELU激活函数优化之路
ai·vllm·openclaw
寒山独见君~1 天前
自动化-消息推送Server酱3,APP推送
运维·数据库·python·自动化·通知
都在酒里1 天前
在公共服务器上构建 RK3588 SDK 的纯净 Docker 方案
运维·服务器·docker