curl 端口8080上的AWS连接被拒绝

yc0p9oo0  于 2023-06-30  发布在  其他
关注(0)|答案(2)|浏览(232)

我有一个EC2示例,在端口8080上运行Flask服务器。

* Running on http://0.0.0.0:8080/ (Press CTRL+C to quit)

我可以运行curl并从我的EC2示例获得响应。

$ curl -X GET '0.0.0.0:8080/fbeac'

但是,我不能使用公共IP/DNS来获得响应和运行

$ curl -X GET '3.135.62.118:8080/fbeac'

结果为curl: (7) Failed to connect to 3.135.62.118 port 8080: Connection refused。当我尝试使用本地机器执行curl时,也会出现同样的错误。
我的应用程序正在侦听端口8080,我通过运行netstat进行了检查。

$ netstat -an | grep 8080
tcp        0      0 0.0.0.0:8080            0.0.0.0:*               LISTEN

此外,我已确保安全组设置正确。我已经尝试了自定义TCP端口8080,所有TCP端口和(当前)所有流量。我还在侧面打开了HTTP/HTTPS端口以防万一,但没有运气。
这让我相信这可能是一个防火墙问题,但我在一台亚马逊Linux机器上,默认策略似乎是ACCEPT,我通过运行iptables进行了检查。

$ sudo iptables -L
Chain INPUT (policy ACCEPT)
target     prot opt source               destination

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination

我是不是还应该检查一下什么或者扣一下扣子?
我的AWS示例ID是i-0080c730c4287ca3c

bgtovc5b

bgtovc5b1#

我建议您检查EC2示例security groups中定义了哪些访问规则。您可能需要打开端口8080
另外,作为一个侧面说明,考虑不要在生产中使用flask开发服务器。它适合测试,但是您真的应该使用像uwsgi这样的东西来处理生产工作负载。

7nbnzgx9

7nbnzgx92#

以防有人也有这个问题,请确保您有一个网关配置

相关问题