我想设置一台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防火墙设置有关? 请你有人帮助我吗?谢谢!
答案 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