EC2实例80端口Web服务器无法远程访问求助
EC2 Flask服务远程连接被拒排查方案
针对你遇到的问题,按以下步骤逐一排查:
检查Flask监听地址:
Flask默认仅监听127.0.0.1(本地回环地址),仅允许实例内部访问。必须将监听地址改为0.0.0.0才能对外开放。- 启动命令修改:
flask run --host=0.0.0.0 --port=80 - 代码内设置:在Flask app启动时指定
app.run(host='0.0.0.0', port=80)
可通过ss -tulpn | grep 80验证,输出应包含0.0.0.0:80而非仅127.0.0.1:80。
- 启动命令修改:
排查子网网络ACL(NACL):
安全组允许流量但NACL可能限制。NACL是子网级防火墙,需确保:- 入站规则允许
0.0.0.0/0访问80端口 - 出站规则允许所有响应流量(如1024-65535端口的TCP回包)
- 入站规则允许
检查实例本地防火墙:
Linux实例的iptables或firewalld可能拦截外部流量:- 临时关闭firewalld测试:
sudo systemctl stop firewalld - 查看iptables规则:
sudo iptables -L,确认无拒绝80端口的规则
- 临时关闭firewalld测试:
确认公网IP有效性:
重启实例后公网IP可能变更,确保远程curl的是实例当前分配的公网IP;若需固定IP,建议绑定弹性IP。
内容的提问来源于stack exchange,提问作者Hajin Chung
相关产品推荐
相关产品推荐

