服务器 IP 变动导致钉钉机器人 webhook 报错 invalid-ip 如何配置?

文章导读
服务器 IP 变动导致钉钉机器人 webhook 报错 invalid-ip,是因为请求出口 IP 不在机器人安全设置的白名单内,需登录钉钉客户端更新白名单 IP 或关闭 IP 限制改用签名验证。
📋 目录
  1. 命令速用版
  2. 为什么会这样
  3. 分步处理
  4. 怎么验证是否生效
  5. 常见坑
  6. 常见问题
  7. 参考来源
A A

服务器 IP 变动导致钉钉机器人 webhook 报错 invalid-ip,是因为请求出口 IP 不在机器人安全设置的白名单内,需登录钉钉客户端更新白名单 IP 或关闭 IP 限制改用签名验证。

先说结论:invalid-ip 错误表示当前服务器出口 IP 未通过钉钉机器人 IP 白名单校验,必须同步更新白名单或调整安全策略。

  • 先确认:检查机器人安全设置中是否启用了 IP 白名单功能。
  • 先处理:获取服务器最新出口 IP,在钉钉客户端机器人设置中修改白名单。
  • 再验证:使用 curl 命令发送测试请求,确认不再返回 invalid-ip 错误。

命令速用版

若需快速验证当前出口 IP 及 webhook 连通性,可在服务器执行以下命令:

curl ifconfig.me
curl -X POST -H 'Content-Type: application/json' -d '{"msgtype":"text","text":{"content":"测试"}}' 'https://oapi.dingtalk.com/robot/send?access_token=YOUR_TOKEN'

第一条命令显示当前出口 IP,第二条命令测试 webhook 发送,若返回 errcode 0 则成功。

为什么会这样

钉钉自定义机器人支持 IP 白名单安全加固,开启后仅允许指定 IP 段调用 webhook 接口。

服务器 IP 变动导致钉钉机器人 webhook 报错 invalid-ip 如何配置?

当服务器 IP 发生变动(如弹性公网 IP 释放、NAT 网关切换、动态 IP 环境),新 IP 未录入白名单时,钉钉服务端会拦截请求并返回 invalid-ip 错误码。这是安全机制生效的正常表现,并非接口故障。

分步处理

按以下步骤更新配置或调整安全策略:

  1. 获取出口 IP:在服务器执行 curl ifconfig.me 确认实际请求钉钉的出口 IP,注意 NAT 环境下本地 IP 可能与出口 IP 不一致。
  2. 进入设置页面:打开钉钉 PC 端或移动端,进入目标群聊 -> 机器人 -> 编辑对应机器人。
  3. 修改安全设置:找到“安全设置”板块,若选择"IP 地址(段)”,将新 IP 填入或改为“签名(secret)”验证。
  4. 保存配置:点击保存,配置通常即时生效。

怎么验证是否生效

配置保存后,再次执行 webhook 发送请求,观察返回 JSON 内容。

服务器 IP 变动导致钉钉机器人 webhook 报错 invalid-ip 如何配置?

若返回 {"errcode":0,"errmsg":"ok"},表示 IP 白名单校验通过。若仍返回 invalid-ip,请检查是否有多出口网卡或代理导致 IP 识别不一致。

常见坑

  • 出口 IP 误判:服务器内网 IP 与公网出口 IP 不同,白名单必须填公网出口 IP。
  • CIDR 格式错误:钉钉支持 IP 段配置,需符合 CIDR 格式(如 192.168.1.0/24),单个 IP 无需掩码。
  • 多 IP 环境:若服务器有多个网卡或绑定多个 EIP,需将所有可能使用的出口 IP 均加入白名单。

常见问题

服务器 IP 频繁变动怎么办?

建议关闭 IP 白名单,改用签名(secret)验证机制,签名不依赖固定 IP。

钉钉机器人支持域名白名单吗?

不支持,钉钉机器人安全设置仅支持 IP 地址或 IP 段,不支持域名解析。

invalid-ip 错误码是多少?

返回 JSON 中 errcode 通常为 310005 或伴随 invalid-ip errmsg 提示,具体以实际返回为准。

参考来源

  • 钉钉开放平台 - 自定义机器人接入文档
  • 钉钉客户端 - 群机器人安全设置页面