1. 背景说明编辑
企业微信发布了公告,由于运营商机房裁撤,企业微信 api 接口域名 qyapi.weixin.qq.com 的 IP 会停用部分旧 IP ,并启用新的IP地址。
详情可以参考:https://developer.work.weixin.qq.com/community/announcement/detail?content_id=16311614294857467685
2. 对企业微信集成影响编辑
企业微信插件代码中是使用的域名,没有使用IP地址。所以对大部分客户是没有影响的。只有部分以下场景的客户可能会有影响。
1)若客户的网络环境是配置了 host 或者防火墙配置只放开固定 IP 的方式来访问。则需要排查一下是否还在使用旧的 IP 地址。
DNS 已下线、将停服的旧 IP 列表:
2)如果使用即将停服的旧 IP ,会有如下现象:
某个日期开始突然出现(比如5月30号、11月30号)添加应用失败、通讯录获取失败、推送失败、单点失败、创建群聊失败等。此时:
微信调试工具 获取 AccessToken 失败
F12报错则是:网络异常,请检查网络配置
3. 排查方式编辑
1)通过 ping qyapi.weixin.qq.com,如果依然是旧 IP ,可能配置了 host ;
linux 环境请检查: /etc/hosts
windows 环境请检查:C:\Windows\System32\drivers\etc\hosts
2)通过 nslookup qyapi.weixin.qq.com 或者 dig qyapi.weixin.qq.com,出来的 A 记录如果依然包含有旧 IP ,可能 DNS 有缓存,请联系 DNS 管理员定位;
3)如果通过 nginx 来反向代理出口访问的,可查看 nginx 的访问日志看是否依然有请求到旧 IP 。如果有,请检查 nginx 的 resolver 配置是否和机器系统配置的 DNS 一致,也可通过重启 nginx 试试;
4)检查调用 qyapi.weixin.qq.com 程序代码里面是否有写死就 IP 访问的情况,请改为域名访问,可通过 tcpdump -i any -n host xxx.xxx.xxx.xxx and dst port 443 抓包检查是否依然有请求旧IP。(其中xxx.xxx.xxx.xxx请替换为某个旧IP)
4. 获取最新IP地址的方式编辑
1)最好不要通过配置死 IP 的方式来访问 qyapi.weixin.qq.com ,以免企业微信后续更新IP时造成访问失败;
2)如需获取 qyapi.weixin.qq.com 的最新接入IP,请通过 DNS 解析来获取,或者通过 企业微信api地址接口 来获取。