OpenClaw + FRP 企业微信机器人部署避坑指南
背景:本文源自一次耗时 7 小时的踩坑实录。为了让后来者能在 30 分钟内顺利上线,不再重蹈覆辙,特整理此“保姆级”实战指南。本文涵盖从插件安装、配置文件修改、网关绑定到内网穿透的全流程。
🚨 核心避坑总结(先看这个!)
在开始之前,请务必牢记以下 3 个致死坑点,90% 的失败都源于此:
- 大小写由不得你:配置文件中必须使用
encodingAesKey(小驼峰命名),绝对不要直接复制企业微信后台的全大写EncodingAESKey作为 Key 名。 - 配置结构要完整:不能只在
channels里配参数,必须同时在plugins.entries里启用插件。 - 网关绑定有讲究:OpenClaw 网关默认绑定
loopback(127.0.0.1),这会导致 FRP 等外部工具连不上。必须修改为lan,而不能用习惯的0.0.0.0。
🛠️ 第一步:安装 OpenClaw 与插件
确保你已经安装了 Node.js 环境。
1. 安装 OpenClaw
npm install -g openclaw
# 验证安装
openclaw --version
2. 安装企业微信插件
注意:旧插件 @mijia-life/clawdbot-wecom 已废弃,请使用官方推荐的新插件。
openclaw plugins install openclaw-plugin-wecom
安装完成后,运行 openclaw plugins list 确认列表中包含 openclaw-plugin-wecom。
⚙️ 第二步:修改配置文件(关键步骤)
强烈建议直接编辑 JSON 配置文件,而不是使用 CLI 命令行工具设置,因为 CLI 容易弄乱复杂的嵌套结构。
打开配置文件:
nano ~/.openclaw/openclaw.json
# 或者使用 VS Code
code ~/.openclaw/openclaw.json
✅ 正确的配置结构如下:
{
"plugins": {
"entries": {
"wecom": {
"enabled": true
}
}
},
"channels": {
"wecom": {
"enabled": true,
"token": "你的Token(从企业微信后台获取)",
"encodingAesKey": "你的43位密钥(从企业微信后台获取)"
}
}
}
🔍 细节点拨:
- plugins.entries: 这一段必不可少,用于显式启用插件。
- token: 对应企业微信后台的 Token。
- encodingAesKey: 注意这里是 Aes (小写),不是 AES。
- webhookPath: 不需要手动配置,默认就是
/wecom。不要画蛇添足改成/webhooks/wecom。
🌐 第三步:修改网关绑定地址
默认情况下,OpenClaw 只监听本地回环地址,导致 FRP 客户端(即使在同一台机器)可能因识别问题无法连接。
修改绑定为 LAN
# 设置绑定地址为局域网模式
openclaw config set gateway.bind "lan"
# 设置端口(通常默认是 18789)
openclaw config set gateway.port 18789
# 重启网关使配置生效
openclaw gateway restart
验证状态
运行以下命令:
openclaw gateway status
确保输出中包含 Listening: *:18789 或类似表示已监听外部接口的信息,而不是 Local only。
🚀 第四步:配置 FRP 内网穿透
假设你有一台公网服务器(服务端)和本地 Mac(客户端)。
1. 公网服务器端 (frps.toml)
bindPort = 7000
auth.method = "token"
auth.token = "设置一个强密码"
启动服务端:./frps -c frps.toml
2. 本地 Mac 客户端 (frpc.toml)
serverAddr = "122.9.xx.xx" # 你的公网服务器IP
serverPort = 7000
auth.method = "token"
auth.token = "上面设置的强密码"
[[proxies]]
name = "openclaw-bot"
type = "tcp" # 推荐使用 TCP 模式,稳
localIP = "127.0.0.1" # 指向本地
localPort = 18789 # OpenClaw 的端口
remotePort = 10981 # 公网服务器对外暴露的端口
启动客户端:./frpc -c frpc.toml
验证:看到 start proxy success 字样即代表穿透成功。此时,你的公网访问地址为:
http://公网服务器IP:10981/wecom
📱 第五步:企业微信后台设置
- 登录 企业微信管理后台。
- 进入 应用管理 -> 自建应用(或从“接收消息”进入)。
- 找到 API接收消息 部分,点击“设置 API 接收”。
填写参数:
- URL:
http://你的公网IP:10981/wecom- 排错提示:如果是 HTTPS 且有证书问题,可能导致握手失败,建议先用 HTTP + 明文模式调通。
- Token: 填入你配置文件中的 Token。
- EncodingAESKey: 填入你配置文件中的 Key(43位)。
验证过程:
点击“保存”时,企业微信会发送一个 GET 请求到你的 URL 进行验证。
- 如果提示 “请求成功”:恭喜你,通了!🎉
- 如果提示 “echostr校验失败”:检查 Token/Key 是否完全一致,或者先在后台将“消息加解密方式”改为**“明文模式”**尝试。
❓ 常见故障排查 (Troubleshooting)
Q: 访问 URL 返回 502 Bad Gateway?
A: FRP 隧道未打通,或者 OpenClaw 网关未启动。检查 frpc 日志和 openclaw gateway status。
Q: 访问 URL 返回 Internal Server Error?
A: 这是正常的!直接浏览器访问 /wecom 是 GET 请求,且缺少微信签名参数,OpenClaw 会报错。只要不是 404 或 Connection Refused,说明服务是通的。请去企业微信后台点击“保存”进行真实测试。
Q: 只有 /wecom 能通,/webhooks/wecom 不通?
A: 官方插件默认注册路径就是 /wecom,不要加前缀。
Q: FRP 连不上本地 OpenClaw (Connection refused)?
A: 再次检查第三步,确保 gateway.bind 设置为了 "lan"。
后记:配置过程虽然繁琐,但只要每一步都核对清楚配置结构和参数命名,还是非常顺利的。希望这份指南能帮你节省那 7 个小时!