引自:http://support.apple.com/kb/TS4264?viewlocale=zh_CN&locale=zh_CN
问题的表现
设备连接至 Wi-Fi 且没有蜂窝数据帐户或蜂窝数据信号时,收不到推送通知。
解决
使用 APNs 的设备需要直接连接至 Apple 服务器。如果设备使用蜂窝数据时无法连接,将尝试使用 Wi-Fi(如果可用)。如果 Wi-Fi 网络上有代理服务器,设备将无法使用 APNs,因为 APNs 需要设备与服务器直接持久地连接。
连接至 APNs 时,iOS 设备将使用蜂窝数据连接(如果可用)。仅当蜂窝连接不可用或不可行时,才会将设备切换至 Wi-Fi,以便进行 APNs 连接。
为了让 APNs 通信通过您的防火墙,您需要打开这些端口:
- TCP 端口 5223(设备用于与 APNs 服务器通信)
- TCP 端口 2195(用于向 APNs 发送通知)
- TCP 端口 2196(由 APNs 反馈服务所使用)
- TCP 端口 443(设备无法在端口 5223 上与 APNs 通信时,仅在 Wi-Fi 上备用)
APNs 服务器使用负载平衡。您的设备无法始终连接到用于通知的同一公共 IP 地址。整个 17.0.0.0/8 地址块均分配给 Apple,所以最好在防火墙设置中允许此范围。