我正在尝试从同一网络上的另一台计算机访问我的Django服务器。我已经设置了我的服务器并可以使用python manage.py runserver
正确查看所有内容并转到http://127.0.0.1:8000
但是当我尝试使用python manage.py runserver 0.0.0.0:80
时,我无法从另一台计算机查看我的Django页面。托管Django服务器的计算机具有内联网IP 192.168.1.146。在我的辅助计算机上,我启动浏览器并尝试访问http://192.168.1.146:80
无效。我也转发了端口80(我也尝试了8000)也无济于事:(。帮助!
答案 0 :(得分:34)
我在Windows计算机上遇到了同样的问题,并使用python manage.py runserver 192.168.1.146:80
启动了Django服务器,而不是0.0.0.0。 (当然我使用了不同的IP地址)。
之后,弹出一个Windows防火墙对话框,询问是否应取消阻止该端口(是)。然后,局域网中的其他计算机可以使用192.168.1.146:80访问Django服务器。
答案 1 :(得分:7)
为了让它对我有用,我在终端(Mac OS X 10.8.2)中运行sudo python manage.py runserver 0.0.0.0:80
,然后在你的ipad(或iphone)浏览器中,转到http://[your ip地址] /。我没有必须这样做:Testing Django website on iphone
答案 2 :(得分:3)
当从Ubuntu运行它时,它说当我尝试这样做时权限被拒绝:
python manage.py runserver 0.0.0.0:80
由于这是一个许可问题,以下工作就好像Ryan和gtujan所说的那样。
sudo python manage.py runserver 0.0.0.0:80
注意:您在端口80上运行服务器,这是一个HTTP端口。因此,当您从网络浏览器输入网址时,您不一定需要在网址中输入“:80”。
http://192.168.1.146:80/
以下内容应该足够了。即使你输入“:80”,它也被认为是相同的。
http://192.168.1.146/
但是对于其他端口号,例如8000等,则需要8000作为URL的一部分。
答案 3 :(得分:2)
听起来好像是防火墙问题。您确定在服务器计算机上打开端口80了吗?
答案 4 :(得分:0)
从您提到的转发端口80,听起来您的第二台计算机与运行Django的计算机位于不同的网络(路由器)上。在这种情况下,您应该浏览到Django网络的路由器的IP - 192.168地址只能从该路由器后面看到,端口转发将确保您的请求转到正确的机器。
答案 5 :(得分:0)
你在运行什么操作系统? 你试过给命令root权限吗? (假设你在ubuntu / linux上运行它)
尝试运行此代码:
sudo python manage.py runserver 0.0.0.0:80
答案 6 :(得分:0)
sudo ufw allow 8000/tcp
你可以试试这个,它也对我有用。
答案 7 :(得分:-5)
据我了解,0.0.0.0是不可路由的IP。
只有将套接字绑定到地址时,它才能在本地计算机上运行。