APNs 旧版推送与 2195 端口
2195 是 Apple 推送通知服务旧版二进制协议的默认端口。早期推送服务端与苹果网关之间用这个 TCP 端口建立长连接,逐条下发推送载荷,设备侧则通过 5223 或 443 连回接入点。苹果后来改用基于 HTTP/2 的 443 接口,2195 与配套的反馈端口 2196 都进入淘汰阶段,今天仍在用的多是没升级的旧服务端。
基本信息
| 服务 | APNs 旧版二进制协议(历史接口) |
|---|---|
| 端口/协议 | TCP 2195,承载 TLS |
| 配套端口 | 2196 为历史反馈端口,5223 为设备侧回退端口 |
| 现状 | 已由 443 上的 HTTP/2 接口取代 |
| 权限要求 | 推送服务端配置,需有效推送证书或密钥 |
| 安全等级 | 作为出站策略项处理,无入站需求 |
典型处置场景
- 老服务端排障:确认其是否仍尝试连接 2195
- 出口策略评审:判断是否需要为旧协议保留放行
- 迁移规划:把旧组件升级到 443 上的新接口
- 推送异常排查:区分问题在设备侧还是服务端侧
- 资产盘点:识别仍在运行旧版推送组件的服务器
连通性与本机核查
连通性与本机核查
nc -zv gateway.push.apple.com 2195 # 测试旧端口连通性
nc -zv gateway.push.apple.com 443 # 对比新协议端口
sudo lsof -i :2195 # 查看本机是否有进程使用该端口
ss -lntp | grep 2195 # 确认为出站连接而非本地监听
# 旧协议连接失败常见原因是证书过期或出口策略拦截新旧接口对照
| 接口 | 端口 | 状态 |
|---|---|---|
| 二进制协议 | 2195 | 历史接口,逐步淘汰 |
| HTTP/2 接口 | 443 | 当前主用,连接可复用 |
| 反馈服务 | 2196 | 历史端口,用于获取失效令牌 |
| 设备侧连接 | 5223 与 443 | 设备优先 443,失败后回退 |
运维要点
- 推送证书与密钥的到期时间纳入例行监控并提前续期
- 升级推送组件时同步核对出口策略,避免新接口被拦
- 把失效设备令牌纳入定期清理,控制量额度占用
- 推送服务与业务服务分开部署,故障时便于定位
- 记录通道切换时间,出现批量失败时先比对变更记录
推送服务端与设备侧使用两套端口:服务端连接苹果网关,设备侧连接苹果的接入点。排障时先确认问题在哪一侧,再决定查哪个端口。
老接口依赖推送证书,证书过期或被撤销会让推送整批失败,而报错信息往往有限。证书状态应作为常规监控项,不能等到用户投诉才发现。