Mac本地部署OpenClaw企业微信机器人避坑指南

Written by

in

文章目录
  • 如果你是第一次在 Mac 上折腾企业微信机器人,一定要看这一段: 核心逻辑:企业微信服务器(在公网)需要把消息推送到你的 Mac(在内网)。因为公网找不到你的 Mac,所以必须搭建一条内网穿透隧道(FRP/Ngrok)。 最大痛点:OpenClaw 出于安全考虑,默认只允许本机访问。这导致你就算搭好了 FRP 隧道,隧道即使通到了 Mac,也连不进 OpenClaw。 本文目标:手把手教你修改 Mac 监听权限、打通 FRP 隧道、完成企业微信对接。
  • 在 Mac 上,建议直接编辑配置文件,比用命令行不容易出错。 文件路径:~/.openclaw/openclaw.json
  • 这是最容易卡住的地方! 默认情况下,OpenClaw 启动后只监听 127.0.0.1。这意味着 FRP 客户端(即使在同一台 Mac 上)如果尝试通过局域网 IP 或 Docker 转发连接它,会被拒绝。
  • 因为我们在 Mac 本地,必须把本地的 18789 端口暴露给公网。假设你有一台公网服务器 122.9.xx.xx。
  • 登录企业微信后台 -> 应用管理 -> 自建应用。 API接收消息 设置: URL: http://你的云服务器IP:10981/wecom (注意路径是 /wecom,不要加 /webhooks) Token: 填入配置文件的 Token。 EncodingAESKey: 填入配置文件的 Key。 随机生成验证: 如果提示校验失败,**先改用“明文模式”**保存,排除加密算法带来的干扰。 一旦保存成功,在企业微信 App 里给机器人发个“你好”,看是否有回复。
  • 现象 可能原因 解决方案 FRP 报错 Connection refused Mac OpenClaw 没启动 或 绑在了 loopback 执行 openclaw config set gateway.bind "lan" 并重启 企业微信保存提示“URL请求超时” 公网服务器防火墙拦截了 10981 端口 去阿里云/腾讯云后台放行安全组端口 企业微信提示“系统错误” URL 填错了 确认 URL 是 http://IP:端口/wecom,路径不要多写 OpenClaw 报错 EncodingAESKey invalid Key 长度不对或复制错了 必须是 43 位,重新生成并粘贴 Mac 上装不上 ngrok 没装 Homebrew 建议直接下载二进制包解压运行 最后的话: 在 Mac 上做内网穿透最容易忽视的就是 MacOS 的应用监听权限。很多人死在 FRP 连不上本地服务这一步,就是因为 OpenClaw 默认处于“自闭”模式(Bind Localhost)。只有解开这个锁,内网穿透才有意义。 到此这篇关于Mac本地部署OpenClaw企业微信机器人避坑指南的文章就介绍到这了,更多相关Mac本地部署OpenClaw企业微信内容请搜索风君子博客以前的文章或继续浏览下面的相关文章,希望大家以后多多支持风君子博客!
  • 目录
    • 写在前面
    • 🛠️ 第一阶段:环境与安装
      • 1. 前置准备
      • 2. 安装 OpenClaw
    • ⚙️ 第二阶段:配置 OpenClaw(三个必死坑点)
      • ❌ 常见的错误配置
      • ✅ 正确的配置模板
    • 🔓 第三阶段:解开 Mac 本地监听锁(Mac专属巨坑)
      • 1. 修改绑定地址
      • 2. 验证是否成功
    • 🚇 第四阶段:配置 FRP 内网穿透
      • 1. 服务端配置 (frps.toml) – 在云服务器上
      • 2. 客户端配置 (frpc.toml) – 在你的 Mac 上
      • 3. 测试通道
    • 📱 第五阶段:企业微信后台对接
      • 🚑 终极排错 Checklist

        如果你是第一次在 Mac 上折腾企业微信机器人,一定要看这一段: 核心逻辑:企业微信服务器(在公网)需要把消息推送到你的 Mac(在内网)。因为公网找不到你的 Mac,所以必须搭建一条内网穿透隧道(FRP/Ngrok)。 最大痛点:OpenClaw 出于安全考虑,默认只允许本机访问。这导致你就算搭好了 FRP 隧道,隧道即使通到了 Mac,也连不进 OpenClaw。 本文目标:手把手教你修改 Mac 监听权限、打通 FRP 隧道、完成企业微信对接。

        • 本地环境:Mac (Intel 或 Apple Silicon 均可)
        • 服务端环境:一台有公网 IP 的云服务器(用于 FRP 中转,如果没有,只能用 Ngrok 凑合,但生产环境建议用 FRP)
        • 权限:企业微信管理员权限(需要获取 Token 和 Key)

        # 安装核心程序
        npm install -g openclaw
        # 安装企业微信插件(注意!不要用 @mijia-life 开头那个旧版,已废弃)
        openclaw plugins install openclaw-plugin-wecom

        在 Mac 上,建议直接编辑配置文件,比用命令行不容易出错。 文件路径:~/.openclaw/openclaw.json

        • 直接把企业微信后台的 EncodingAESKey 粘贴进去 -> 错! 配置文件里由于变量名规范,首字母要小写,且 AES 要写成 Aes。
        • 只配置了 channels -> 错! 必须先在 plugins 里启用插件。

        请直接复制下方内容覆盖你的配置(替换掉中文部分):

        {
          "plugins": {
            "entries": {
              "wecom": {
                "enabled": true
              }
            }
          },
          "channels": {
            "wecom": {
              "enabled": true,
              "token": "你的Token(直接从企业微信后台复制)",
              "encodingAesKey": "你的EncodingAESKey(直接从企业微信后台复制,注意这里的Key名是小驼峰)"
            }
          }
        }

        这是最容易卡住的地方! 默认情况下,OpenClaw 启动后只监听 127.0.0.1。这意味着 FRP 客户端(即使在同一台 Mac 上)如果尝试通过局域网 IP 或 Docker 转发连接它,会被拒绝。

        不要尝试设置为 0.0.0.0,OpenClaw 会报错 Invalid input。正确的关键词是 lan。

        # 告诉 OpenClaw 允许局域网连接
        openclaw config set gateway.bind "lan"
        # 确保端口固定(默认 18789)
        openclaw config set gateway.port 18789
        # 重启网关
        openclaw gateway restart

        运行 openclaw gateway status。

        • 失败标志:显示 Gateway: bind=loopback 或 Local only。
        • 成功标志:显示 Gateway: bind=lan 或 Listening: *:18789。

        因为我们在 Mac 本地,必须把本地的 18789 端口暴露给公网。假设你有一台公网服务器 122.9.xx.xx。

        bindPort = 7000        # FRP通讯端口
        vhostHTTPPort = 80     # HTTP转发端口(可选)
        auth.method = "token"
        auth.token = "设置一个强密码"

        避坑提示:如果云服务器没配置 Nginx 反代,不要用 type = http,直接用 tcp 模式最稳,不容易出现路径转发错误。

        serverAddr = "122.9.xx.xx"
        serverPort = 7000
        auth.method = "token"
        auth.token = "上面的强密码"
        [[proxies]]
        name = "mac-bot"
        type = "tcp"            # 选TCP,稳
        localIP = "127.0.0.1"
        localPort = 18789       # OpenClaw 的本地端口
        remotePort = 10981      # 云服务器暴露给企业微信访问的端口

        在 Mac 上启动 FRP:

        ./frpc -c frpc.toml

        看到 start proxy success 后,在浏览器访问 http://云服务器IP:10981/wecom。

        • 如果返回 Internal Server Error -> 成功!(说明连通了 OpenClaw,只是缺少参数)。
        • 如果返回 502 或 Connection Refused -> 失败,检查防火墙或 Mac 监听设置。

        1. 登录企业微信后台 -> 应用管理 -> 自建应用。
        2. API接收消息 设置:
          • URL: http://你的云服务器IP:10981/wecom (注意路径是 /wecom,不要加 /webhooks)
          • Token: 填入配置文件的 Token。
          • EncodingAESKey: 填入配置文件的 Key。
        3. 随机生成验证
          • 如果提示校验失败,**先改用“明文模式”**保存,排除加密算法带来的干扰。
          • 一旦保存成功,在企业微信 App 里给机器人发个“你好”,看是否有回复。

        现象 可能原因 解决方案
        FRP 报错 Connection refused Mac OpenClaw 没启动 或 绑在了 loopback 执行 openclaw config set gateway.bind "lan" 并重启
        企业微信保存提示“URL请求超时” 公网服务器防火墙拦截了 10981 端口 去阿里云/腾讯云后台放行安全组端口
        企业微信提示“系统错误” URL 填错了 确认 URL 是 http://IP:端口/wecom,路径不要多写
        OpenClaw 报错 EncodingAESKey invalid Key 长度不对或复制错了 必须是 43 位,重新生成并粘贴
        Mac 上装不上 ngrok 没装 Homebrew 建议直接下载二进制包解压运行

        最后的话: 在 Mac 上做内网穿透最容易忽视的就是 MacOS 的应用监听权限。很多人死在 FRP 连不上本地服务这一步,就是因为 OpenClaw 默认处于“自闭”模式(Bind Localhost)。只有解开这个锁,内网穿透才有意义。

        到此这篇关于Mac本地部署OpenClaw企业微信机器人避坑指南的文章就介绍到这了,更多相关Mac本地部署OpenClaw企业微信内容请搜索风君子博客以前的文章或继续浏览下面的相关文章,希望大家以后多多支持风君子博客!

        站内搜索