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

AWS EC2实例开放8000、3000端口后无法访问Django与React服务咨询

排查方案

1. 检查EC2实例操作系统自带的防火墙规则

这是最常见的原因,安全组配置仅作用于AWS虚拟网络层面,实例内部的防火墙会额外拦截流量:

  • 若你使用的是Ubuntu/Debian系统,执行sudo ufw status查看防火墙状态,如果是开启状态,执行以下命令放行端口:
    sudo ufw allow 3000/tcp
    sudo ufw allow 8000/tcp
    
  • 若你使用的是CentOS/RHEL/Amazon Linux 2系统,执行sudo firewall-cmd --list-all查看规则,放行端口命令如下:
    sudo firewall-cmd --add-port=3000/tcp --permanent
    sudo firewall-cmd --add-port=8000/tcp --permanent
    sudo firewall-cmd --reload
    

2. 检查Django配置项ALLOWED_HOSTS

Django默认会校验请求的Host头,未配置的公网IP访问会直接返回400错误:
打开Django项目的settings.py文件,修改ALLOWED_HOSTS配置,添加你的EC2公网IP:

ALLOWED_HOSTS = ['你的EC2公网IP', 'localhost', '127.0.0.1']

修改后重启Django服务即可。

3. 检查VPC子网关联的网络ACL规则

AWS子网层面的网络ACL默认允许所有流量出入,但若你之前修改过配置,需要确认入站/出站规则中允许了3000、8000端口的流量。

4. 确认访问时使用HTTP协议

Django和React的开发服务器默认都只支持HTTP访问,若浏览器自动跳转HTTPS,需要手动在地址栏前缀加上http://再访问。

额外提示:不建议用sudo权限启动Django、React的开发服务器,避免不必要的权限溢出风险,非特权用户只要端口没有被占用就可以正常启动服务。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 10:45:03