无法从LAN访问我的Django项目

时间:2017-05-12 10:57:09

标签: python django

在本地我可以使用127.0.0.1:8000访问python项目。
我也希望通过LAN访问它。我已经做了一些研究如何解决这个问题,并且我已经按照以下步骤进行了研究:

settings.py文件中我ALLOWED_HOSTS=[192.168.1.11:8000],这是我的计算机的局域网IP地址。
然后在我已完成python manage.py runserver 192.168.1.11:8000的终端中,它没有工作,我尝试用0.0.0.0:8000替换IP地址但发生了同样的问题。

使用DEBUG=True我收到以下错误消息:

Invalid HTTP_HOST header:'<my_ip_adress>'. 
You may need to add '<my_ip_adress>' to ALLOWED_HOSTS, 

我已经做到了......

3 个答案:

答案 0 :(得分:2)

如果您只是想在局域网中将其用于测试目的,请运行:

python manage.py runserver 0.0.0.0:8000

settings.py中,允许主机的空列表应该足够了:

ALLOWED_HOSTS = []

答案 1 :(得分:2)

您需要正确配置ALLOWED_HOSTS变量:

  • 它必须是字符串列表,表示允许的主机而不定义端口。
  • 必须包含您要允许的每个主机和任何可能的主机。

所以你需要:

ALLOWED_HOSTS = [
    '192.168.1.11',
    '127.0.0.1', # This is the one you need to allow in your case
]

最后,正如@cezar指出的那样,你需要在0.0.0.0:8000运行服务器,以便&#34;广播&#34;它在你的局域网上:

python manage.py runserver 0.0.0.0:8000
祝你好运:)

答案 2 :(得分:0)

这对我在Ubuntu 19.10上有效

sudo ufw allow from 192.168.1.0/24 to any port 8000 proto tcp

我还必须在 /etc/sysctl.conf 中启用数据包转发,并删除前缀为net.ipv4.ip_forward=1。 最后,我清除了浏览器缓存。

以前,我使用的是Mint 19.03,只需要添加 ufw 规则。