无法通过AWS EC2公网IPv4访问运行Uvicorn的FastAPI服务
解决EC2上FastAPI无法通过公网访问的问题
核心问题分析
- uvicorn启动时绑定
127.0.0.1:8000,仅监听EC2实例本地回环请求,公网IP的请求无法被接收 - 你用
https访问,但FastAPI默认只提供http服务,协议不匹配 - Chrome控制台的
crbug/1173575错误是浏览器自身日志,和本次访问失败无关
具体修复步骤
修改uvicorn启动命令,绑定所有网卡
执行以下命令启动服务,让FastAPI监听EC2实例的所有网络接口:uvicorn main:app --host 0.0.0.0 --port 8000 --reload启动成功后日志会显示绑定至
http://0.0.0.0:8000,此时公网IP可正常访问服务。使用正确协议访问
用http协议访问公网IP的8000端口,示例格式:http://<EC2公网IPv4地址>:8000/若需
https访问,需额外配置SSL证书(比如通过Nginx反向代理配合Let's Encrypt,或直接在uvicorn中指定证书文件),测试阶段优先用http验证服务可用性。验证安全组与EC2内部防火墙
- 确认安全组入站规则已开放TCP 8000端口,来源可设为
0.0.0.0/0(或限定为你的本地IP提升安全性) - 检查EC2实例内部防火墙(如iptables),确保未拦截8000端口入站请求,执行命令查看规则:
若存在拦截,添加允许规则:sudo iptables -Lsudo iptables -A INPUT -p tcp --dport 8000 -j ACCEPT
- 确认安全组入站规则已开放TCP 8000端口,来源可设为
测试基础API响应
访问http://<EC2公网IPv4地址>:8000/docs,若FastAPI自动生成的文档页面正常加载,说明服务已正常对外提供。
内容的提问来源于stack exchange,提问作者DEBASISH MOHANTY
相关产品推荐
相关产品推荐

