1. 概述
1.1 背景說明
企業微信發佈了公告,由於營運商機房裁撤,企業微信 api API域名 qyapi.weixin.qq.com 的 IP 會停用部分舊 IP ,並啟動新的IP地址。
詳情可以參考:https://developer.work.weixin.qq.com/community/announcement/detail?content_id=16311614294857467685
1.2 對企業微信整合影響
企業微信插件程式碼中是使用的域名,沒有使用IP地址。所以對大部分客戶是沒有影響的。只有部分以下場景的客戶可能會有影響。
1)若客戶的網路環境是配置了 host 或者防火牆配置只放開固定 IP 的方式來存取。則需要排查一下是否還在使用舊的 IP 地址。
DNS 已下線、將停服的舊 IP 列表:
2)如果使用即將停服的舊 IP ,會有如下現象:
某個日期開始突然出現(比如5月30號、11月30號)新增應用失敗、通訊錄獲取失敗、推播失敗、單點失敗、建立群聊失敗等。此時:
微信除錯工具 獲取 AccessToken 失敗
F12報錯則是:網路異常,請檢查網路配置
2. 排查方式
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)
3. 獲取最新IP的地址
1)最好不要透過配置死 IP 的方式來存取qyapi.weixin.qq.com,以免企業微信後續更新IP時造成存取失敗;
2)如需獲取qyapi.weixin.qq.com的最新接入IP,請透過 DNS 解析來獲取,或者透過 企業微信api地址API 來獲取。