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

如何让Django项目在公司内网中可供全体员工访问?

Django内网专属部署问题解决方案

一、服务器必须安装Python

没错,必须安装。Django是Python Web框架,运行项目依赖Python环境,建议安装和你本地开发一致的Python版本(比如3.8及以上),避免依赖兼容问题。装完别忘了装pip来管理项目依赖。

二、Django配置调整(解决ALLOWED_HOSTS无效问题)

你加了服务器IP但没生效,大概率是这几个原因:

  • 格式写错:ALLOWED_HOSTS要写成字符串列表,比如ALLOWED_HOSTS = ['192.168.1.100', 'localhost'](把192.168.1.100换成你的服务器内网IP),如果同事用内网域名访问,也要把域名加进去
  • 环境变量覆盖:如果服务器上设置了DJANGO_ALLOWED_HOSTS环境变量,会直接覆盖settings里的配置,检查服务器的环境变量设置
  • 没重启服务:修改settings后,必须重启Django服务或者你用的WSGI服务器(比如Gunicorn),配置才会生效

另外,部署时别让Django监听0.0.0.0(这会让所有IP都能访问),改成只监听服务器的内网IP:

# 开发测试用(不建议生产环境使用)
python manage.py runserver 192.168.1.100:8000

三、服务器端安全限制(核心:彻底阻断外部访问)

仅靠Django配置不够,必须配合服务器防火墙或公司网络规则锁死访问范围:

  • 用防火墙限制IP段:以Ubuntu的ufw为例,假设公司内网IP段是192.168.1.0/24,项目端口是8000:
    # 允许内网段访问8000端口
    sudo ufw allow from 192.168.1.0/24 to any port 8000
    # 拒绝所有其他IP访问该端口
    sudo ufw deny 8000
    # 启用防火墙(如果没开的话)
    sudo ufw enable
    
    要是用CentOS,就用firewalld配置类似规则。
  • 公司网络层面限制:如果公司有网关或路由器,直接在网络设备上设置,只允许内网IP段访问服务器的项目端口,禁止外部流量转发过来,这是最稳妥的方式。

四、完整部署步骤梳理

  1. 服务器上安装Python、pip,然后拉取你的项目代码(用scp、Git都可以)
  2. 安装项目依赖:pip install -r requirements.txt
  3. 修改Django的settings.py:
    • 配置正确的ALLOWED_HOSTS
    • 把DEBUG改成False(生产环境必须关闭,否则会泄露敏感信息)
    • 收集静态文件:python manage.py collectstatic(如果项目用到静态文件的话)
  4. 用WSGI服务器启动项目(生产环境别用runserver),比如Gunicorn:
    gunicorn --bind 192.168.1.100:8000 your_project.wsgi:application
    
  5. 配置防火墙规则,限制仅内网访问
  6. 测试:用公司内网的电脑访问http://服务器内网IP:8000,确认能打开;用外网(比如手机流量)测试,应该无法访问

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 09:15:35