5223 的双重身份
5223 在历史上对应两个用途:一是 Apple 推送通知服务(APNs)的旧式 TCP 连接端口,iOS/macOS 设备优先用 443 连苹果推送网关,被阻断时才回退到 5223;二是早期 XMPP over SSL 的默认端口。今天的 APNs 走 HTTP/2 到 443,5223 主要作为企业出口策略里的兜底放行项存在。
基本信息
| 服务 | APNs 回退端口 / 早期 XMPP over SSL |
|---|---|
| 端口/协议 | TCP 5223(承载 TLS) |
| 对端 | *.push.apple.com 等苹果推送网关 |
| 现状 | 新协议走 443/HTTP2,5223 为兼容通道 |
| 权限要求 | 终端用户无感;调整需出口防火墙权限 |
| 安全等级 | 仅作为出站策略放行项,无需入站暴露 |
典型使用场景
- 企业网络只放行 443 时,个别旧设备或旧服务端仍尝试 5223
- 排查 iOS 设备推送延迟或丢失:核对出口是否同时放行 443 与 5223
- MDM 与移动办公环境:为苹果设备维护推送相关域名与端口的白名单
- 旧版 XMPP 服务端遗留的端口映射
- 网络策略评审:把 5223 归入苹果服务专用出站白名单
连通性与策略排障
连通性与策略排障
nslookup gateway.push.apple.com # 确认域名解析是否被污染或劫持
nc -zv gateway.push.apple.com 5223 # 测试回退端口可达性
curl -v https://gateway.push.apple.com/ # 443 侧连通性对比
# 出口策略参考:允许出站 TCP 443 与 5223 到 *.push.apple.com
sudo tcpdump -n 'tcp port 5223 and host 10.1.2.30' # 抓包定位设备回退行为苹果推送通道对照
| 通道 | 端口 | 说明 |
|---|---|---|
| HTTP/2 推送 | 443 | 当前主用协议,全程 TLS |
| 旧式二进制协议 | 2195 | 历史服务端仍在使用,逐步淘汰 |
| 设备侧回退 | 5223 | 设备优先 443,失败后尝试 5223 |
| 历史反馈服务 | 2196 | 早期用于收集失效的设备令牌 |
设备侧与服务端侧行为不同:设备连苹果网关以 443 优先、5223 回退,推送服务端走 HTTP/2 443。5223 主要出现在设备回退与被拦截网络的排障场景。
排查推送异常不要只盯端口:证书、设备令牌与苹果侧服务状态同样会导致推送失败,先看设备日志与推送服务返回码,再决定是否动网络策略。