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

无法通过物理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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 04:31:05