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

Posted

技术标签:

【中文标题】谷歌 GCM 推送通知服务器的 IP 范围?【英文标题】:IP range of google GCM push notification server? 【发布时间】:2013-08-23 06:29:01 【问题描述】:

想知道这里是否有人碰巧知道 google 的 gcm 服务器的 ip 范围(用于 android 推送通知)?

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

我尝试从 developer.android.com/google/gcm/ 进行查找,但没有成功。

我们的网络团队拒绝开放来自 asn 15169 的所有 ip 范围,这是一个相当大的列表。

【问题讨论】:

我们最终使用 Bip-IP 作为 GCM 的 http 代理。 【参考方案1】:

我认为存在一个现有问题 IP address for Google Cloud Messaging server 并且该人发现这些问题不是由 Google 发布的。我也试图寻找它一次,但找不到。我可能是错的,但我很确定他们不会发布。也许您可以使用直接 3G 或 4G 数据计划,而不是使用公司 wifi。

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

我也认为@Eran 在Which 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。

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

【讨论】:

感谢 Shobhit 的总结,好像还没有这样的列表【参考方案2】:

为了补充 Shobhit Puri 已经说过的内容,我还试图找到这个问题的答案,以便能够在我的防火墙中戳出适当的漏洞,并且在得出用于 Google 的 IP 地址之后,我对 Google 感到非常失望Cloud Messaging 不是使用 DNS 请求获取的,或者是使用破坏 Android 中 Always On *** 功能的 DNS 请求获取的。

通过在更高版本的 Android 中使用 Always On *** 功能,我确保所有流量都通过我的一台服务器。这也让我可以将该服务器用作 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 丢弃,让我知道是否需要重新访问。

【讨论】:

另外,最近出现了这个:74.125.25.188

以上是关于谷歌 GCM 推送通知服务器的 IP 范围?的主要内容,如果未能解决你的问题,请参考以下文章

GCM 如何在推送通知中识别设备?

在 iOS 上不使用 GCM 接收推送通知

在 GCM 中发送推送通知时出现未经授权的错误

在android中没有收到推送通知

如何从头开始创建推送通知服务器

亚马逊、解析、pushwoosh 和 Android 的默认 GCM 推送通知之间的区别?