谷歌GCM推送通知服务器的IP范围?

时间:2013-08-23 06:29:02

标签: android google-cloud-messaging

不知道有没有人碰巧知道谷歌的gcm服务器的ip范围(用于Android推送通知)?

我需要这些信息,以便我们的网络团队可以打开UAT环境的防火墙端口进行UAT测试。

我尝试从developer.android.com/google/gcm/查找,但没有运气。

我们的网络团队拒绝打开asn 15169的所有IP范围,这是一个相当庞大的列表。

2 个答案:

答案 0 :(得分:14)

我认为现有问题IP address for Google Cloud Messaging server,并且发现这些问题并未由Google发布。我也曾试图寻找它但却找不到。我可能错了,但我很确定他们不会发布。也许不使用企业wifi,您可以使用直接的3G或4G数据计划。

why GCM is not giving push notification in android device?问题的评论中,有人提到他打开了端口5258,29,30然后他能够从防火墙后面的GCM服务器接收regId。

另外,我认为@ EranWhich port and protocol does Google Cloud Messaging (GCM) use?的回答会有所帮助。它说:

  

设备访问端口5228-5230上的GCM服务器。如果您的组织具有限制进出Internet的流量的防火墙,则需要将其配置为允许与GCM连接。要打开的端口是:5228,5229和5230. GCM通常仅使用5228,但有时使用5229和5230. GCM不提供特定的IP。它经常更改IP。我们建议不要使用ACL,但如果必须使用它们,请采用广泛的方法,例如此支持链接中建议的方法。

如果您的设备通过WiFi连接到互联网,这是相关的。

希望这有点帮助。

更新

根据Mark Whitaker回答类似问题here,他提到:

  

如果端口5228-5230被防火墙阻止,则较新版本的Android也会回退到端口443。

虽然似乎还没有正式名单。

答案 1 :(得分:3)

为了补充Shobhit Puri已经说过的内容,我也试图找到这个问题的答案,以便能够在我的防火墙中找到合适的漏洞,并且在得出用于Google的IP地址后对Google非常失望云消息传递不是使用DNS请求获得的,也不是使用破坏Android中的Always On VPN功能的DNS请求获得的。

通过在Android的更高版本中使用Always On VPN功能,我确保所有流量都通过我的一台服务器。这也允许我使用该服务器作为DNS解析器,通过激活查询日志记录并重新启动手机,我能够获得它所做的所有DNS请求的列表。然后,通过一些脚本魔术,我检查了所有这些,但是没有一个解析到我的防火墙日志中显示的IP地址,出站端口5228掉落。

这使我得出结论,用于GCM的IP地址是使用DNS以外的方法获得的,例如Google Play商店网络流量。

编辑(解决方案?):在我的所有防火墙日志中运行一个脚本,直到我拥有它并拉出所有dstport 5228条目,我已经能够编译一个IP地址列表了GCM试图连接到。我不能说这是一个完整的清单,它可能会根据地理位置而改变,但请注意模式......

74.125.28.188
74.125.129.188
74.125.20.188
173.194.79.188
74.125.142.188
74.125.192.188
74.125.140.188
74.125.139.188
74.125.137.188
74.125.134.188
74.125.130.188
173.194.68.188
173.194.76.188

我为所有这些IP地址创建了一个组,并将我的防火墙配置为用于我的GCM白名单。我还设置了一个报告来检查任何dstport 5228 drop,如果我需要重新访问它,请告诉我。