Django 0.0.0.0:80;无法远程访问

时间:2010-05-25 04:12:20

标签: django

我正在尝试从同一网络上的另一台计算机访问我的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)也无济于事:(。帮助!

8 个答案:

答案 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

To find the IP address on a Mac

答案 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。

只有将套接字绑定到地址时,它才能在本地计算机上运行。