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

如何为Django本地服务器创建永久公网URL并实现无源码访问

Django公网访问配置指南

一、解决runserver x.x.x.x:8088无法被他人访问的问题

你用runserver指定IP后别人打不开,大概率是这几个原因:

  • 确认IP正确性:你填的x.x.x.x必须是本机的内网IP(比如192.168.1.100),不是公网IP。可以用ipconfig(Windows)或ip addr(Linux)查看本机内网IP。
  • 防火墙放行端口:
    • Windows:打开「Windows Defender防火墙」→「高级设置」→「入站规则」,新建规则允许8088端口的TCP连接。
    • Linux:执行sudo ufw allow 8088开放端口,不推荐直接关闭防火墙。
  • 内网端口转发(外部网络访问):如果对方不在你的局域网内,需要在路由器后台设置「端口转发」,把外网的8088端口映射到你的内网IP:8088。
    ⚠️ 注意:runserver是Django的开发服务器,仅用于本地调试,性能差且不安全,绝对不能用于公网长期访问。

二、为localhost创建永久公网IP/URL

1. 临时测试方案(快速生成公网URL)

用内网穿透工具,比如ngrok:

  • 下载工具后,在终端执行ngrok http 8000,工具会生成一个临时公网URL(比如https://xxxx.ngrok.io),直接分享给别人就能访问你的本地Django项目。但重启ngrok后URL会改变,适合临时演示。

2. 永久公网方案(生产环境)

要获得固定公网IP,需要部署到云服务器:

  • 购买云服务器(阿里云、腾讯云等),获取服务器的固定公网IP。
  • 将Django项目代码上传到服务器(用Git、scp或FTP)。
  • 在服务器上配置Python环境、安装依赖,部署成生产环境(见下文)。

三、让他人无需源码即可访问

核心是把Django项目部署为生产环境,步骤如下:

  1. 安装WSGI服务器(Gunicorn)
    执行pip install gunicorn,然后启动服务:

    gunicorn --bind 0.0.0.0:8000 your_project_name.wsgi
    

    这里your_project_name是你Django项目的根目录名(包含wsgi.py的那个文件夹)。

  2. 配置Nginx反向代理(可选但推荐)
    Nginx负责处理静态文件、请求转发,提升性能和安全性:

    • 安装Nginx后,在/etc/nginx/sites-available/下新建配置文件:
      server {
          listen 80;
          server_name 你的公网IP或域名;
      
          location /static/ {
              alias /path/to/your/project/static/; # 替换为你的静态文件实际路径
          }
      
          location /media/ {
              alias /path/to/your/project/media/; # 替换为你的媒体文件实际路径
          }
      
          location / {
              proxy_pass http://127.0.0.1:8000;
              proxy_set_header Host $host;
              proxy_set_header X-Real-IP $remote_addr;
          }
      }
      
    • 启用配置:sudo ln -s /etc/nginx/sites-available/your_config /etc/nginx/sites-enabled/
    • 重启Nginx:sudo systemctl restart nginx
  3. 收集静态文件
    Django生产环境需要手动收集静态文件,执行:

    python manage.py collectstatic
    

    确保settings.py里已配置STATIC_ROOT:

    STATIC_ROOT = os.path.join(BASE_DIR, 'static')
    
  4. 开放服务器端口
    在云服务器的安全组里开放80端口(HTTP)或443端口(HTTPS),同时服务器防火墙放行对应端口。

这样配置后,别人直接访问你的公网IP或域名就能使用项目,不需要任何源码。

内容的提问来源于stack exchange,提问作者Akshay Kumar Pasupunooti

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.24 21:18:17