设置可由我的网络上的其他设备访问的Django开发服务器

时间:2017-06-17 15:05:09

标签: python django server

我想设置一台Django开发服务器,我的电脑和智能手机都可以通过wifi在我的网络上访问。

我已经设置了一台我的电脑可以在http://127.0.0.1:8000/上访问的开发服务器。但是,我的其他设备不能。

Django文档说:

“请注意,无法从网络上的其他计算机访问默认IP地址127.0.0.1。要使您的开发服务器可以在网络上的其他计算机上查看,请使用自己的IP地址(例如192.168.2.1)或0.0.0.0或::(启用IPv6)。“

我找到了我的“公共IP地址”并试图通过以下方式使用:    python manage.py runserver xx.xx.xxx.x(这是我的公共IP地址)但我收到“命令错误:'xx.xx.xxx.x'不是有效的端口号或地址:端口对。 “

然后我尝试使用相同的:8000后IP地址,但收到错误“错误:该IP地址无法分配给”。

然后python manage.py runserver 0.0.0.0:8000。命令行报告“正在启动开发服务器...”,但是当我在Chrome上尝试“http://0.0.0.0:8000/”时,我收到“此站点无法访问错误”。

是否与我的Windows防火墙设置有关? 请你有人帮助我吗?谢谢!

3 个答案:

答案 0 :(得分:0)

您需要本地IP地址不公开。 您可以通过在cmd:ipconfig中键入以下命令来获取Windows机器中的本地IP。

在Linux上,在终端中输入以下内容:ifconfig

IP地址的格式为 192.168.0.101 [示例]

因此,在手机的浏览器中输入: 192.168.0.101:8000

答案 1 :(得分:0)

0.0.0.0不是真正的地址,它只是表示服务器未绑定到特定IP的占位符。

如果你在127.0.0.1上运行,它只会回答那些地址为127.0.0.1的查询,所以只有localhost。

使用您的私人地址(最常见的是192.168.0.x),它只会回答对此地址的查询(因此打开127.0.0.1应该不起作用,但有时会取决于实现)

因此,如果您使用0.0.0.0,它将回答任何问题。

tl; dr:使用0.0.0.0并使用:

连接
  • 127.0.0.1来自此计算机

  • 您计算机的局域网内其他计算机的私人IP地址

  • 您的局域网以外的计算机的公共IP。请注意,这需要在路由器上进行其他配置

答案 2 :(得分:0)

这很晚了,但是在这篇文章之后我遇到了另一个问题。如果您使用的是基于Rhel发行版的防火墙 启用它可能会阻止连接。因此,出于测试目的运行:

systemctl stop firewalld