深度解析:OpenClaw 企业微信机器人 + FRP 内网穿透实战指南

507 阅读4分钟

深度解析:OpenClaw 企业微信机器人 + FRP 内网穿透实战指南

背景:本文基于一次真实的 macOS 环境部署踩坑经历。我们不只讲怎么敲命令,更要讲为什么这么配,帮助大家理解背后的技术原理,适应不同的网络环境(云服务器 vs 家庭宽带)。 参考文档openclaw-plugin-wecom 官方文档


🧐 第一部分:为什么要用 FRP?(写给不懂内网穿透的你)

1. 核心矛盾:企业微信找不到你

企业微信的服务器在互联网公网上,而你的 Mac 电脑躲在家庭/公司的路由器防火墙后面(内网)。 当有人在企业微信里@机器人时,企业微信试图把消息推送到你填写的 URL。

  • 现状:企业微信喊破喉咙,你的 Mac 也听不见,因为防火墙把门堵死了。
  • 解决:我们需要打通一条隧道,让外面的消息能流进来。这就是 FRP (Fast Reverse Proxy) 的作用。

2. FRP 的两个角色

FRP 就像接力跑,需要两名队员:

  • frps (Server):服务端。它必须站在“大门口”(有公网 IP 的地方,比如云服务器,或者你有公网 IP 的光猫/路由器)。它的作用是收信
  • frpc (Client):客户端。它运行在你的 Mac 上(内网)。它的作用是送信给 OpenClaw。

数据流向企业微信 -> 公网 IP:端口 (frps) -> 加密隧道 -> Mac 本地 (frpc) -> OpenClaw


🏗️ 第二部分:网络架构侦探

很多教程只说“买个云服务器”,但实际上很多极客玩家(像你这样)使用的是家庭宽带架构

场景分析

如果你没有云服务器,但配置里填的 IP(如 122.9.x.x)是你家的公网 IP,那么你的架构很可能是这样的:

  1. 光猫/路由器 (frps)

    • 作为服务端运行。
    • 拥有公网 IP,对互联网开放端口(如 7000, 10981)。
    • 负责把来自企业微信的请求“吸”进来。
  2. Mac 电脑 (frpc)

    • 作为客户端运行。
    • 通过局域网连接到路由器。
    • 负责把路由器转过来的请求,最终交给 OpenClaw 处理。

给后来者的建议:如果不确定自己有没有公网 IP,最简单的方案还是租一台最便宜的云服务器(VPS),或者使用 Ngrok/Cloudflare Tunnel 等现成服务,省去配置 frps 的麻烦。


⚙️ 第三部分:OpenClaw 核心配置(基于 GitHub 官方标准)

我们在踩坑中发现,命令行工具 (openclaw config set) 往往难以处理复杂的嵌套结构。强烈建议直接编辑 JSON 配置文件

1. 配置文件路径

macOS: ~/.openclaw/openclaw.json

2. 标准配置模板

参考 GitHub 官方文档,OpenClaw 的配置包含两部分:插件激活通道参数

{
  "plugins": {
    "entries": {
      // 必须在这里显式启用插件,否则只配 channels 没用!
      "wecom": {
        "enabled": true
      }
    }
  },
  "channels": {
    "wecom": {
      "enabled": true,
      // 【坑点警告】这里的 key 名必须稍微注意大小写,虽然官方文档是 encodingAesKey (小驼峰)
      // 但实测中 token 和 encodingAesKey 必须与企业微信后台完全一致
      "token": "你的Token",
      "encodingAesKey": "你的43位密钥"
      // webhookPath 默认为 /wecom,除非你有特殊需求,否则不要改!
    }
  },
  // Mac 专属配置:解开本地监听限制
  "gateway": {
    "bind": "lan",  // 不要填 0.0.0.0,要填 lan
    "port": 18789
  }
}

📝 第四部分:Mac 端实操手册

1. 启动 OpenClaw

确保配置改好后,重启网关:

openclaw gateway restart
# 检查状态,确保显示 Listening: *:18789 或 bind=lan
openclaw gateway status

2. 启动 FRP 客户端

在 Mac 上创建 frpc.toml

# 连接到你的光猫/路由器/云服务器
serverAddr = "122.9.xx.xx"
serverPort = 7000
auth.token = "你的密码"

[[proxies]]
name = "mac-bot"
type = "tcp"          # 推荐 TCP,比 HTTP 少很多路径转发的坑
localIP = "127.0.0.1" # 指向本机
localPort = 18789     # OpenClaw 的端口
remotePort = 10981    # 外部访问的端口

启动命令:

./frpc -c frpc.toml

3. 企业微信后台最终填表

  • URL: http://122.9.xx.xx:10981/wecom
  • Token: 复制自配置文件
  • EncodingAESKey: 复制自配置文件

🛑 避坑总结(省流版)

  1. JSON 胜过 CLI:不要迷信命令行配置,直接改 openclaw.json 文件最稳。
  2. 结构要完整plugins(开关)和 channels(参数)缺一不可。
  3. Mac 监听锁:OpenClaw 默认只听自己的(localhost),必须把 gateway.bind 设为 lan 才能听到 FRP 的呼叫。
  4. 路径别乱改:官方插件路径就是 /wecom,FRP 转发和企业微信填写的 URL 都要对齐这个路径。

希望这份指南能帮到每一位想在家里部署机器人的开发者!🚀