AWS EC2实例可通过IP访问但无法通过Route53域名访问求助
Django应用EC2部署:域名访问连接拒绝问题
问题现象
- 可正常访问:
http://ip-address/en/http://ip-address:8000/en/
- 无法访问,浏览器提示
ERR_CONNECTION_REFUSED:http://domain/en/http://domain:8000/en/
已完成的配置与操作
- Route53已配置A记录,将域名指向EC2实例公网IP,记录已生效3天
- 多次执行ping测试、重启服务器,问题未解决
Ping测试结果
Ping实例公网IP
PING ip-address (ip-address) 56(84) bytes of data. 64 bytes from ip-address: icmp_seq=1 ttl=63 time=0.434 ms 64 bytes from ip-address: icmp_seq=2 ttl=63 time=0.425 ms 64 bytes from ip-address: icmp_seq=3 ttl=63 time=0.357 ms 64 bytes from ip-address: icmp_seq=4 ttl=63 time=0.464 ms 64 bytes from ip-address: icmp_seq=5 ttl=63 time=0.440 ms 64 bytes from ip-address: icmp_seq=6 ttl=63 time=0.422 ms 64 bytes from ip-address: icmp_seq=7 ttl=63 time=0.420 ms 64 bytes from ip-address: icmp_seq=8 ttl=63 time=0.498 ms
Ping域名
PING domain.com (ip-address) 56(84) bytes of data. 64 bytes from ec2-ip-address.compute-1.amazonaws.com (ip-address): icmp_seq=1 ttl=63 time=4.53 ms 64 bytes from ec2-ip-address.compute-1.amazonaws.com (ip-address): icmp_seq=2 ttl=63 time=0.483 ms 64 bytes from ec2-ip-address.compute-1.amazonaws.com (ip-address): icmp_seq=3 ttl=63 time=0.385 ms 64 bytes from ec2-ip-address.compute-1.amazonaws.com (ip-address): icmp_seq=4 ttl=63 time=0.381 ms 64 bytes from ec2-ip-address.compute-1.amazonaws.com (ip-address): icmp_seq=5 ttl=63 time=0.372 ms
排查方向建议
安全组/网络ACL检查
- 确认EC2安全组允许任意来源(或指定IP范围)的80、8000端口入站流量
- 检查VPC网络ACL是否同时放行80、8000端口的入站和出站规则
Django服务绑定地址验证
- 启动Django时需绑定
0.0.0.0而非127.0.0.1,否则仅允许本地访问。启动命令示例:python manage.py runserver 0.0.0.0:8000
- 启动Django时需绑定
Ubuntu防火墙配置检查
- 若开启ufw防火墙,需添加端口放行规则:
sudo ufw allow 80/tcp sudo ufw allow 8000/tcp sudo ufw reload
- 若开启ufw防火墙,需添加端口放行规则:
端口监听状态检查
- 在EC2实例执行
netstat -tulpn | grep -E ":80|:8000",确认80、8000端口是否被服务监听,且监听地址为0.0.0.0或公网IP
- 在EC2实例执行
域名解析二次验证
- 使用
nslookup domain.com或dig domain.com确认域名解析的IP与EC2公网IP完全一致,避免本地DNS缓存干扰
- 使用
内容的提问来源于stack exchange,提问作者James R.
相关产品推荐
相关产品推荐

