You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

AWS CentOS7生产服务器(装CSF)发送iOS推送遭连接拒绝,求原因及端口建议

问题分析与解决方案

我来帮你梳理这个问题的核心原因和解决步骤,你遇到的情况其实很常见——AWS安全组和CSF防火墙是两层独立的防护,很容易忽略其中一层的配置。

核心原因

虽然你已经在AWS安全组中开放了所有出站流量,但CSF防火墙默认可能没有放行2195/2196端口的出站请求。苹果APNs推送要求服务器主动发起出站连接到其网关端口,而CSF的默认规则通常不会包含这些小众端口,这才导致了Connection refused的错误。

关于入站端口2195的疑问

完全不需要开放2195入站端口,这点你查到的资料是对的:APNs的工作模式是你的服务器主动向苹果的网关发起连接,苹果不会主动反向连接你的服务器。开放入站2195不仅没用,还会增加不必要的安全暴露风险。

具体解决步骤

  1. 检查并修改CSF的出站端口配置

    • 编辑CSF主配置文件:
      vi /etc/csf/csf.conf
      
    • 找到TCP_OUT配置项,确认其中包含2195和2196(2196是APNs的反馈端口,建议一起放行)。如果没有,将这两个端口添加进去,示例如下:
      TCP_OUT = "20,21,22,25,53,80,110,143,443,465,587,993,995,2195,2196"
      
  2. 重启CSF和LFD服务生效

    • 执行命令重启CSF:
      csf -r
      
    • 再重启LFD守护进程:
      service lfd restart
      
  3. 验证连接是否恢复

    • 再次用telnet测试:
      telnet gateway.sandbox.push.apple.com 2195
      
    • 如果看到类似Connected to gateway.sandbox.push.apple.com的提示,说明端口已经放行成功。

额外排查点

  • 确认服务器DNS解析正常:用nslookup gateway.sandbox.push.apple.com测试,能正确返回IP地址说明解析没问题。
  • 生产环境注意切换网关地址:如果是正式推送,要连接gateway.push.apple.com 2195,而非sandbox环境的地址。
  • 证书配置检查:如果后续还是无法发送推送,再排查PHP端的APNs证书/密钥是否正确(不过当前telnet连不上的情况下,优先解决防火墙问题)。

内容的提问来源于stack exchange,提问作者Greatchap

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 03:44:22