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

Flutter应用通过HTTP连接AWS EC2实例报连接被拒错误如何解决

问题排查修复步骤

1. 优先排查Flutter侧请求配置错误

  • 确认请求URL拼接正确,必须带上协议前缀http://,不能直接写myipadress/get.php,缺省协议会导致请求端口识别异常,正确写法是http://<你的EC2公网IP>/get.php
  • 如果你是用安卓模拟器测试,模拟器默认把127.0.0.1指向自身,不能直接填本地测试用的EC2私网IP,必须填EC2的公网IP
  • 安卓高版本(9及以上)默认禁止明文HTTP请求,需要在安卓项目的android/app/src/main/AndroidManifest.xml的application标签中添加属性android:usesCleartextTraffic="true",iOS同理需要在Info.plist中放开HTTP请求限制

2. 排查AWS EC2安全组配置

  • 登录AWS控制台,进入对应EC2实例的「安全」选项卡,查看入站规则
  • 确认入站规则已经放开**80端口(HTTP)**的0.0.0.0/0(或者你测试设备的公网IP段)访问权限,仅放开22、3306等端口不会生效
  • 不要限制入站规则的源端口,报错中的41038是Flutter侧发起请求的随机源端口,安全组无需专门开放该端口,只需开放目标端口80即可

3. 排查EC2服务器内部配置

  • 登录EC2服务器,检查Apache是否监听0.0.0.0:80,执行命令netstat -tunlp | grep apache,如果结果中仅显示127.0.0.1:80,说明Apache仅允许本地访问,需要修改Apache配置文件中的监听地址为0.0.0.0:80后重启服务
  • 检查服务器内部防火墙(iptables/ufw)是否放开80端口,以ufw为例执行ufw status确认80端口允许入站,iptables执行iptables -L -n查看规则
  • 可以在本地测试设备上用curl工具直接请求接口curl http://<EC2公网IP>/get.php,如果能正常返回JSON说明服务器侧配置无问题,问题出在Flutter侧配置

4. 其他异常排查

  • 确认EC2实例没有配置WAF、网络ACL等额外访问控制策略拦截请求
  • 确认你的测试设备没有处于VPN、公司内网等限制外部IP访问的网络环境

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 12:15:06