深度解析: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,那么你的架构很可能是这样的:
-
光猫/路由器 (frps):
- 作为服务端运行。
- 拥有公网 IP,对互联网开放端口(如 7000, 10981)。
- 负责把来自企业微信的请求“吸”进来。
-
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: 复制自配置文件
🛑 避坑总结(省流版)
- JSON 胜过 CLI:不要迷信命令行配置,直接改
openclaw.json文件最稳。 - 结构要完整:
plugins(开关)和channels(参数)缺一不可。 - Mac 监听锁:OpenClaw 默认只听自己的(localhost),必须把
gateway.bind设为lan才能听到 FRP 的呼叫。 - 路径别乱改:官方插件路径就是
/wecom,FRP 转发和企业微信填写的 URL 都要对齐这个路径。
希望这份指南能帮到每一位想在家里部署机器人的开发者!🚀