在企业微信管理后台的「安全与管理」或「应用管理」模块中配置 IP 白名单,仅允许指定服务器出口 IP 调用 Webhook 接口。适用场景为保护机器人接口不被外部恶意调用,风险边界是配置错误会导致正常业务通知发送失败。
先说结论:配置 Webhook 白名单必须在企业微信管理后台操作,生效范围针对整个企业的机器人接口调用权限。
- 适合:自有服务器发送通知、需要限制接口调用来源的安全场景
- 先准备:确认发送通知服务器的固定出口 IP 地址
- 验收:使用白名单内 IP 发送请求成功,白名单外 IP 请求被拦截
快速处理思路
企业微信机器人 Webhook 配置不涉及命令行操作,需在 Web 管理后台完成。登录企业微信管理后台,找到安全设置或应用管理入口,录入服务器公网 IP 并保存。若业务紧急且无法立即获取固定 IP,可暂时关闭白名单限制,但需承担接口被滥用的风险。
为什么会这样
配置白名单是为了防止 Webhook 地址泄露后被人恶意调用发送垃圾消息。企业微信服务端会校验请求来源的 IP 地址,若不在白名单内则直接拒绝请求。这是接口安全层面的基础访问控制,不依赖客户端代码逻辑。
分步处理
1. 登录企业微信管理后台,使用管理员账号访问 work.weixin.qq.com。
2. 进入「应用管理」或「安全与管理」菜单,查找「IP 白名单」或「机器人设置」选项。
3. 点击添加 IP,输入业务服务器的公网出口 IP 地址,支持 IPv4 格式。
4. 保存配置,注意部分版本可能需要几分钟生效,期间避免频繁测试。
5. 若服务器位于 NAT 网关后,需确认网关出口 IP 而非内网 IP。
怎么验证是否生效
在白名单内的服务器上使用 curl 命令发送 POST 请求到 Webhook 地址,预期返回 errcode 0。更换非白名单 IP 环境发送相同请求,预期返回 IP 不在白名单的错误码。查看企业微信管理后台的调用日志,确认请求来源 IP 被记录且状态正常。
常见坑
1. 服务器使用动态 IP 或云函数弹性 IP,导致白名单频繁失效,需绑定固定 EIP。
2. 配置了内网 IP 而非公网出口 IP,企业微信服务端无法识别内网地址。
3. 多个业务线共用机器人但未统一录入 IP,导致部分服务通知中断。
4. 修改白名单后未清除本地 DNS 缓存或连接池,旧连接可能仍被复用。
常见问题
支持配置域名吗?
不支持,企业微信 Webhook 白名单仅支持 IP 地址,不支持域名解析。
白名单配置后多久生效?
通常在保存后立即生效,部分缓存场景可能需要几分钟同步。
如何查看当前生效的白名单?
在企业微信管理后台对应的安全设置页面可查看已录入的 IP 列表。
参考来源
企业微信官方文档 - 群机器人 Webhook 接口,https://work.weixin.qq.com/api/doc/90000/90136/91770