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

如何在局域网内启用HTTP地理定位,实现多设备访问Django项目

可行的局域网部署方案(适配地理定位+多设备访问)

完全可行,下面是两个适合新手的简易方案,既能让局域网内所有设备访问你的Django项目,又能满足地理定位所需的HTTPS安全环境要求:

方案一:Django自带服务器+自签名证书(局域网专属)

这是最直接的本地部署方式,无需额外安装复杂的Web服务器:

  1. 生成自签名HTTPS证书
    在Linux终端执行以下命令,生成密钥文件key.pem和证书文件cert.pem(有效期1年,无需密码):

    openssl req -x509 -newkey rsa:4096 -keyout key.pem -out cert.pem -days 365 -nodes
    

    执行时按提示填写信息即可,内容不影响局域网使用。

  2. 启动带HTTPS的Django服务器
    替换原来的启动命令,让服务器监听所有网卡(允许局域网设备访问)并加载证书:

    python manage.py runserver 0.0.0.0:8000 --cert cert.pem --key key.pem
    
  3. 获取Linux主机的局域网IP
    终端执行ip a,找到WiFi/以太网对应的局域网IP(格式类似192.168.1.100)。

  4. 其他设备访问
    在Win10的浏览器、Android手机的浏览器中输入https://你的Linux局域网IP:8000,比如https://192.168.1.100:8000。第一次访问浏览器会提示证书不安全,手动选择「继续访问」即可(不同浏览器操作略有差异,比如Chrome点「高级」->「继续前往xxx」)。此时HTTPS环境已满足,地理定位权限可以正常申请。

方案二:ngrok临时穿透(跨设备/临时测试)

如果不想折腾局域网配置,ngrok可以快速生成一个公网HTTPS地址,所有设备(包括局域网外)都能访问,适合临时测试:

  1. 下载ngrok到Linux主机(直接解压即可,无需安装)。
  2. 先启动普通的Django服务器:python manage.py runserver。
  3. 新开一个终端执行:
    ./ngrok http 8000
    
    终端会输出一个类似https://xxxx-xx-xx-xx-xx.ngrok.io的HTTPS地址,所有设备直接访问这个地址即可,自带合法HTTPS证书,地理定位功能直接可用。

关键配置注意事项

  • 修改Django的ALLOWED_HOSTS
    打开项目的settings.py,把Linux局域网IP、ngrok地址(如果用方案二)添加进去,比如:

    ALLOWED_HOSTS = ['192.168.1.100', 'localhost', '*.ngrok.io']
    

    否则Django会拒绝外部设备的请求。

  • 开放Ubuntu防火墙端口
    如果Ubuntu开启了ufw防火墙,需要开放8000端口:

    sudo ufw allow 8000/tcp
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 22:50:38