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

如何实现本地Django项目的外部网络访问?

让本地Django项目支持外部网络访问的实操步骤

1. 配置路由器端口映射(关键环节)

你的本地机器处于路由器的内网中,外部网络无法直接访问,必须通过路由器做端口转发:

  • 先获取本地内网IP:Windows执行ipconfig,Linux/macOS执行ifconfig或ip addr,找到和路由器同网段的IP(比如192.168.1.105)
  • 登录路由器管理后台:浏览器输入路由器网关地址(通常是192.168.1.1或192.168.0.1,具体看路由器底部标签),输入管理员账号密码
  • 找到端口转发/虚拟服务器功能(不同路由器命名可能不同,比如“NAT映射”“端口穿透”)
  • 添加转发规则:
    • 外部端口:选一个未被占用的端口(比如8000,若用80、443这类常用端口,可能需要管理员权限)
    • 内部IP:填写刚才查到的本地内网IP
    • 内部端口:填写Django运行的端口(你当前用的8000)
    • 协议:选择TCP(一般TCP即可满足需求)
  • 保存规则后,部分路由器需要重启生效

2. 确认Django配置无误

  • 保持ALLOWED_HOSTS = ["*"](测试阶段用通配符没问题,正式部署建议换成具体的公网IP或域名)
  • 启动命令必须是python manage.py runserver 0.0.0.0:8000,确保Django监听所有网卡的请求

3. 处理公网IP的访问问题

  • 查询你的公网IP:直接百度搜索“我的IP”就能获取,外部用户需要通过公网IP:外部端口访问(比如114.XX.XX.XX:8000)
  • 若你的公网IP是动态的(多数家庭宽带都是),可以用动态域名解析(DDNS)服务,把动态IP绑定到固定域名,避免用户频繁更换访问地址

4. 安全提醒(务必重视)

  • 禁止用runserver做外部公开访问:runserver是Django的开发服务器,性能弱且安全防护不足,正式对外服务必须换成Gunicorn+Nginx或uWSGI+Nginx的生产部署方案
  • 开放本地防火墙端口:Windows在防火墙高级设置中添加入站规则,允许8000端口的TCP请求;Linux执行ufw allow 8000或firewall-cmd --add-port=8000/tcp --permanent(执行后重启防火墙)
  • 限制访问范围:如果不是公开服务,建议在路由器端口转发规则中设置IP白名单,仅允许指定外部IP访问,同时给Django后台添加登录验证

5. 验证外部访问有效性

  • 用手机切换到移动数据(不要连接本地WiFi),输入公网IP+端口,检查是否能正常访问项目
  • 若访问失败,依次排查:路由器端口映射规则是否正确、本地防火墙是否放行、Django服务是否正常运行、公网IP是否准确

内容的提问来源于stack exchange,提问作者Rafael MR

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 12:45:36