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

AWS EB服务器调用SMS服务商CURL接口无响应问题求助

问题

我有如下CURL命令:

curl POST 'https://www.XXXX.com/sendsms.php' ....

这是一个短信服务商接口,该命令在本地电脑上能正常运行并获取响应,但在AWS Elastic Beanstalk(EB)服务器上通过SSH执行时,长时间无响应;而在未使用EB的EC2微型服务器上执行则一切正常。

我的应用其他功能均正常,仅该短信服务接口调用异常。当前使用环境为AWS EB PHP 8.1 running on 64bit Amazon Linux 2/3.4.0,EB服务器的安全组配置如下:

  • 入站规则:EB服务器安全组入站规则
  • 出站规则:EB服务器安全组出站规则
排查与解决建议

1. 基础网络连通性验证

在EB服务器上执行以下命令,定位网络层面问题:

# 验证目标域名的DNS解析是否正常
nslookup www.XXXX.com
# 测试HTTPS端口(443)的TCP连通性
telnet www.XXXX.com 443
# 若telnet不可用,用nc命令替代
nc -zv www.XXXX.com 443

如果DNS解析失败,说明EB环境的DNS配置存在问题;如果端口不通,再进一步排查网络限制。

2. 检查EB环境的额外网络限制

EC2能正常访问不代表EB可以,EB可能有额外的网络配置:

  • 确认EB环境所在VPC是否配置了网络ACL,需保证出站规则允许访问目标短信服务商的443端口(网络ACL是无状态的,入站和出站都要配置)
  • 查看EB环境是否启用了代理服务器,如果有,执行curl时需要添加代理参数:
    curl -x http://代理IP:端口 POST 'https://www.XXXX.com/sendsms.php' ....
    
  • 检查EB是否配置了VPC端点,是否限制了外部HTTPS流量的出站

3. 用调试模式运行curl定位问题

在EB服务器上执行curl时添加-v参数,查看请求的详细过程,确认卡在哪个环节(比如TCP连接建立、SSL握手、请求发送后等待响应):

curl -v POST 'https://www.XXXX.com/sendsms.php' ....

重点关注是否有SSL证书验证失败、连接超时等提示信息。

4. 安全组配置交叉验证

从截图看安全组出站规则是允许所有流量(0.0.0.0/0),但仍需确认:

  • 该安全组是否正确关联到EB的EC2实例
  • 安全组的出站规则是否真的生效(可通过EB控制台查看实例关联的安全组)

5. 排查PHP环境的curl配置

如果是通过PHP代码调用curl而非SSH命令,还需检查:

  • 查看php.ini中的curl.cainfo配置,确认是否指定了正确的CA证书路径,避免因SSL证书验证失败导致请求停滞
  • 确认PHP的curl扩展已启用,且未被配置代理限制

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 12:48:18