AWS EC2实例网站自动停止,访问8000端口遭拒请求协助排查
排查与恢复AWS EC2实例网站的步骤
1. 确认EC2实例状态
- 登录AWS控制台进入EC2服务,检查目标实例是否处于运行中状态。若已停止,右键选择「启动实例」。
- 查看实例的系统状态检查和实例状态检查结果,若有失败项,优先尝试重启实例修复。
2. 检查服务器上的网站进程
- 通过SSH连接EC2实例(使用对应密钥对),执行命令排查8000端口的运行进程:
sudo lsof -i :8000
或sudo netstat -tulpn | grep 8000 - 若无进程返回,说明服务已停止,手动启动对应服务:比如Django/Flask应用执行
python manage.py runserver 0.0.0.0:8000,或通过systemctl start your-service-name启动托管服务。
3. 验证安全组规则
- 进入实例的安全组配置页面,确认已添加入站规则:允许TCP协议的8000端口,来源可临时设为
0.0.0.0/0(测试完成后建议限制为特定IP段)。 - 同时检查出站规则是否允许服务器向外发起请求(如依赖拉取、数据库连接等)。
4. 排查服务器本地防火墙
- 连接实例后,检查防火墙是否拦截8000端口:
- 若使用ufw:执行
sudo ufw status,确认已添加ufw allow 8000/tcp规则; - 若使用iptables:执行
sudo iptables -L,查看是否存在拒绝8000端口的规则,如有则删除或添加允许规则。
- 若使用ufw:执行
5. 分析服务崩溃原因
- 查看服务日志定位问题:
- systemd托管的服务:
sudo journalctl -u your-service-name -f - 应用自身日志:进入项目目录执行
tail -f app.log(日志文件名根据实际情况调整)
- systemd托管的服务:
- 日志中通常会记录内存不足、依赖缺失、配置错误等导致服务停止的信息,针对性修复即可。
6. 配置服务自动重启
- 使用systemd配置服务自动重启,避免再次意外停止。示例配置文件(路径
/etc/systemd/system/your-service.service):[Unit] Description=你的Web应用服务 After=network.target [Service] User=ubuntu WorkingDirectory=/你的项目路径 ExecStart=/usr/bin/python manage.py runserver 0.0.0.0:8000 Restart=always [Install] WantedBy=multi-user.target - 执行
sudo systemctl daemon-reload和sudo systemctl enable your-service.service使配置生效。
内容的提问来源于stack exchange,提问作者Ash
相关产品推荐
相关产品推荐

