无法通过物理IP访问localhost:8000的Django服务器求助
问题描述
我尝试通过局域网使用物理IP地址192.168.1.5:8000访问本地运行在localhost:8000的Django服务器,但提示“192.168.1.5拒绝连接”。
已完成的配置与排查操作:
- Django配置:
ALLOWED_HOSTS = ['*'] - 已通过
ipconfig确认192.168.1.5为正确本地IP - 两台设备均设置为私有网络
- 本地设备自身也无法访问
192.168.1.5:8000 - 未使用VPN,已禁用所有防火墙,且执行过入站端口放行命令:
netsh advfirewall firewall add rule name="TCP Port 8000" dir=in localport=8000 protocol=TCP action=allow
此前曾成功实现局域网访问,目前无排查思路。
排查解决方案
修正Django服务器绑定地址
默认python manage.py runserver仅绑定127.0.0.1(本地回环地址),只能通过localhost访问。需手动指定绑定到局域网IP或所有可用地址:# 绑定到所有网卡地址,支持局域网访问 python manage.py runserver 0.0.0.0:8000 # 或直接绑定到目标局域网IP python manage.py runserver 192.168.1.5:8000这是此类问题最常见的诱因——哪怕
ALLOWED_HOSTS配置正确,绑定地址错误也会导致局域网无法访问。确认端口监听状态
打开命令提示符执行以下命令,检查端口8000的监听情况:netstat -ano | findstr :8000若输出的本地地址为
127.0.0.1:8000,说明服务器仍仅绑定本地回环;需确保显示为0.0.0.0:8000或192.168.1.5:8000。同时可通过PID值确认占用端口的进程是否为Django:tasklist | findstr <PID>排查多网卡IP冲突
若设备存在多个网卡(有线、无线、虚拟机网卡等),ipconfig显示的192.168.1.5可能并非当前联网网卡的地址。可暂时关闭闲置网卡,再重新启动Django并绑定该IP测试。验证局域网基础连通性
在另一台设备上执行ping 192.168.1.5,若出现丢包,说明局域网基础连通存在问题,需先解决网络链路故障;若ping通但仍无法访问服务器,再回到端口与Django配置排查。
内容的提问来源于stack exchange,提问作者Meaningful Life
相关产品推荐
相关产品推荐

