Ubuntu VPS部署Django应用后访问IP:8000无响应如何解决?
故障排查步骤
先排除资源不足问题
你当前的1核0.5GB配置完全可以满足轻量Django应用的运行需求,即使搭配Nginx+Gunicorn栈也不会出现基础运行资源不足的问题,该因素可以暂时排除。你可以执行free -h查看内存占用,执行dmesg | grep -i oom确认是否存在系统因内存不足杀掉服务进程的情况。
网络链路排查(该问题90%概率出现在该环节)
- 检查云服务商后台安全组规则:绝大多数用户只配置了系统内ufw放行,忽略了云服务商层面的安全组限制。请确认安全组入方向规则已放行TCP协议的8000端口,来源设置为0.0.0.0/0(或你本地访问的公网IP段)。
- 确认端口实际监听状态:在VPS内执行
ss -tulpn | grep 8000,检查输出中是否有Python进程监听0.0.0.0:8000,如果仅监听127.0.0.1则外部无法访问。 - 本地验证服务可用性:在VPS内部执行
curl http://127.0.0.1:8000,如果能正常返回页面内容,说明Django服务本身运行正常,问题出在外部网络到VPS的链路;如果本地访问也无返回,再排查Django服务本身的配置问题。 - 测试端口封禁情况:部分运营商会默认封禁8000这类常用开发端口,你可以更换端口测试,执行
python manage.py runserver 0.0.0.0:18000,同时执行ufw allow 18000并在安全组放行对应端口后再尝试访问。
反向代理部署额外排查点
如果搭配Nginx或Apache部署时出现相同问题,请额外检查:
- 反向代理配置中的转发地址是否和Django/Gunicorn的监听地址、端口完全匹配
- Nginx/Apache使用的对外端口(默认80/443)是否已在安全组和ufw中完成放行
内容的提问来源于stack exchange,提问作者Azeem Ehsan
相关产品推荐
相关产品推荐

