【问题标题】:stream_socket_client unable to connect (connection timed out)stream_socket_client 无法连接(连接超时)
【发布时间】:2023-03-27 14:28:01
【问题描述】:

我正在使用证书和私钥

$ctx = stream_context_create();
stream_context_set_option($ctx, 'ssl', 'local_cert', $certfile);
stream_context_set_option($ctx, 'ssl', 'passphrase', $pass);
$fp = stream_socket_client('ssl://gateway.xyz.com:2195', $err, $errstr, 60, STREAM_CLIENT_CONNECT, $ctx);

它在我的本地 XAMPP 服务器中运行,但在外部服务器中不工作:

警告:stream_socket_client() [function.stream-socket-client]:无法连接到 /home/biranchi/public_html/ 中的 ssl://gateway.sandbox.push.apple.com:2195(连接超时) push.php 在第 42 行

连接110失败

什么是错误?我需要更改服务器中的某些设置吗?

【问题讨论】:

    标签: php sockets stream ssl-certificate


    【解决方案1】:

    我已通过在生产服务器上打开端口 2195 来解决此问题。您可以通过以下命令进行验证 $telnet gateway.push.apple.com 2195

    -bash-3.2# telnet gateway.push.apple.com 2195
    
    Trying 17.149.38.141...
    Connected to gateway.push.apple.com (17.149.38.141).
    Escape character is '^]'.
    Connection closed by foreign host.
    

    【讨论】:

    • 嘿@palaniraja,我在 Mac 上使用 LittleSnitch,并且我已经启用了传入和传出端口 2195。一段时间后它仍然关闭........有什么建议吗?
    • 所以您正在用您的机器测试脚本?作为服务器?可能会尝试禁用 littlesnitch 一段时间。如果你有一个打开的连接而不推送任何数据(空闲),我猜苹果会节流。
    • 我正在从 localhost 进行测试........在小告密者中,我启用了 SILENT MODE > Allow Connection Attempts............但没有运气...... .....如果没有与端口连接,telnet 究竟会显示什么?在我的情况下,它最多显示Escape character is '^]'. 然后在那里停留一段时间......大约一两分钟后,它显示Connection closed by foreign host. 这正常吗?
    • 此端口 2195 是否必须从我的托管服务提供商处打开。我在共享服务器(不是 VPS)上。请帮忙。
    • @rjBombil 您可以询问您的托管服务提供商。有时他们可能会为域启用。
    【解决方案2】:

    检查您的个人防火墙设置,并确保您没有阻止它。尝试禁用防火墙。

    此外,一些 API 喜欢来自实际域而不是桌面的请求。我没有理由相信 Apple 会以这种方式工作,但这也需要检查。

    还要确保 ping gateway.sandbox.push.apple.com 并确保连接良好。

    【讨论】:

      【解决方案3】:

      您必须将防火墙设置为允许所有 17.0.0.0/8 块(它都属于 Apple!)。检查THIS ANSWER

      并根据Apple:

      APNs 服务器使用负载平衡,因此您的设备不会总是连接到相同的公共 IP 地址以接收通知。最好在分配给 Apple 的整个 17.0.0.0/8 地址块上允许访问这些端口。

      如果您使用 CSF 防火墙(像我一样),我建议将此行添加到 csf.allow 文件中:

      tcp|out|d=2195|d=17.0.0.0/8

      然后重新启动 CSF。使用上面的而不是仅使用“17.0.0.0/8”将只允许与 Apple 的外向连接,特别是与端口 2195 的连接。NSA 不会喜欢它,但这更精确和安全! ;)

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2018-12-30
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-11-03
        • 2021-11-21
        • 1970-01-01
        相关资源
        最近更新 更多