首页 » 微信 » 正文

微信小程序登录失败

最近遇到一个奇怪的问题,原本实现自动登陆的小程序一直登陆失败,于是逐步排查。

1.排查环境,本地、开发等环境均正常,测试、生产等环境登陆失败。

2.排查代码,发现各环境代码一致,没有改动。

3.排查测试、生产等环境日志发现获取微信openid时,调用jscode2session接口超时。

4.排查网络,直接ping域名,只有测试、生产等环境出现超时丢包。

tcpdump -i ens160 -w ccw11074.cap

    通过抓包发现解析api.weixin.qq.com后的ip与其他环境不一样。各环境DNS解析【api.weixin.qq.com】结果,

    测试&生产:183.61.49.149

    本地&开发:183.57.48.62

    腾讯云:182.254.106.119

    直接ping IP,发现测试、生产等环境解析之后的IP,在各个环境下ping的时候超时丢包。PS:这里可能是碰巧微信这个IP节点的服务出现问题,已反馈给官方。

5.排查网络配置,原来测试、生产等环境使用的是公司自己搭建的DNS服务,其他环境都是公共DNS——114.114.114.114

【解决办法】

将测试、生产等环境的DNS设置改为公共DNS,随后登录正常。

vi /etc/NetworkManager/NetworkManager.conf

【疑问】

公司自己搭建的DNS服务器,测试环境和生产环境都是一台物理机上的三台虚拟机。其实,公司的DNS服务器也只是转发114公共DNS而已,但不知为什么解析后的IP,与其他机子直接去请求114后解析的IP不同?

发表评论