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

无法在AWS EC2实例上访问Django和React网站求助

排查EC2上Django服务访问超时的解决方案

1. 检查EC2安全组入站规则

  • 确认安全组已添加自定义TCP规则,允许8000端口的流量,来源设置为0.0.0.0/0(测试场景)或你的本地公网IP。
  • 操作入口:EC2控制台 → 目标实例 → 「安全」标签 → 安全组ID → 入站规则 → 编辑规则,新增上述规则。

2. 修正Django服务绑定地址

  • Django默认仅绑定127.0.0.1(仅实例内部可访问),启动时需指定绑定所有网卡:
    python manage.py runserver 0.0.0.0:8000
    
  • 确认终端输出显示Starting development server at http://0.0.0.0:8000/,而非127.0.0.1:8000。

3. 检查实例内部防火墙

  • Ubuntu/Debian系统:执行sudo ufw status,若8000端口未开放,运行sudo ufw allow 8000。
  • CentOS/RHEL系统:执行sudo firewall-cmd --list-ports,若缺失8000端口,运行:
    sudo firewall-cmd --add-port=8000/tcp --permanent
    sudo firewall-cmd --reload
    
  • 通用检查:执行sudo iptables -L,确认无拦截8000端口的规则。

4. 验证连通性

  • 本地测试:在本地终端运行nc -zv <EC2公网IP> 8000或telnet <EC2公网IP> 8000,若连接失败,说明网络层面存在拦截。
  • 实例内部测试:在EC2终端运行curl http://localhost:8000,确认服务本身可正常响应。

5. 修正Django的ALLOWED_HOSTS配置

  • 打开项目settings.py,将ALLOWED_HOSTS设置为包含EC2公网IP,或临时设为ALLOWED_HOSTS = ['*'](仅测试用,生产环境需指定具体域名/IP)。
  • 修改后重启Django服务。

后续React部署提示

  • React开发服务器默认绑定localhost:3000,启动时需指定:
    # Linux/macOS
    HOST=0.0.0.0 npm start
    # Windows(PowerShell)
    $env:HOST="0.0.0.0"; npm start
    
  • 安全组需同步开放3000端口的入站规则。

内容的提问来源于stack exchange,提问作者Revanth Kumar Perla

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.28 05:36:15