Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Django 0.0.0:80;can';远程访问_Django - Fatal编程技术网

Django 0.0.0:80;can';远程访问

Django 0.0.0:80;can';远程访问,django,Django,我正在尝试从同一网络上的另一台计算机访问Django服务器。我已经设置好服务器,可以使用python manage.py runserver并转到http://127.0.0.1:8000但是当我尝试使用python manage.py runserver 0.0.0.0:80时,我无法从另一台计算机上查看我的Django页面。托管Django服务器的计算机具有intranet IP 192.168.1.146。在我的辅助计算机上,我启动浏览器并尝试访问http://192.168.1.146:

我正在尝试从同一网络上的另一台计算机访问Django服务器。我已经设置好服务器,可以使用
python manage.py runserver
并转到
http://127.0.0.1:8000
但是当我尝试使用
python manage.py runserver 0.0.0.0:80
时,我无法从另一台计算机上查看我的Django页面。托管Django服务器的计算机具有intranet IP 192.168.1.146。在我的辅助计算机上,我启动浏览器并尝试访问
http://192.168.1.146:80
没有用。我也转发了端口80(我也尝试了8000)也没有用:(.HELP!

听起来这是防火墙的问题。你确定要打开服务器计算机上的端口80吗?

从你提到的转发端口80,听起来你的第二台计算机在不同的网络(路由器)上)在这种情况下,您应该浏览到Django网络路由器的IP-192.168地址只能从路由器后面看到,端口转发将确保您的请求到达正确的机器。

您在什么操作系统上运行此操作? 你试过给命令root权限吗?(假设你在ubuntu/linux上运行它)

请尝试运行以下命令:

sudo python manage.py runserver 0.0.0.0:80

据我所知,0.0.0.0是一个不可路由的IP


如果您将套接字绑定到地址,它将仅在本地计算机上工作。

我在Windows计算机上遇到了相同的问题,并使用python manage.py runserver 192.168.1.146:80启动了Django服务器,而不是0.0.0.0(当然我使用了不同的IP地址)


之后,弹出了一个Windows防火墙对话框,询问我是否应该解锁该端口(是)。局域网中的其他计算机可以使用192.168.1.146:80访问Django服务器。

为了让它为我工作,我在终端(Mac OS X 10.8.2)中运行了
sudo python manage.py runserver 0.0.0:80
,然后在ipad(或iphone)中运行浏览器,转到ip地址]/。我不必这样做:


在Ubuntu上运行时,它说当我尝试这样做时,权限被拒绝:

    python manage.py runserver 0.0.0.0:80
因为这是一个许可问题,下面的工作就像Ryan和gtujan所说的一样

    sudo python manage.py runserver 0.0.0.0:80
注意:您正在端口80上运行服务器,该端口是HTTP端口。因此,从web浏览器键入URL时,您不必在URL中键入“:80”

    http://192.168.1.146:80/
以下内容就足够了。即使您键入“:80”,也被认为是相同的

    http://192.168.1.146/

然而,对于其他端口号,如8000等,则需要将:8000作为URL的一部分。

实际上
0.0.0
意味着所有可能的IP。它确实不可路由,但具有此特殊含义。0.0.0.0意味着绑定到所有接口。因此,在本地,它将绑定到127.0.0.1,并将绑定到任何卡上的任何接口。它也是如果你的NAT背后有NAT转发端口,这是一个很好的选择,因为django不会对为什么用错误的IPT处理它感到困惑。这确实是我的问题。对于linux用户,你需要允许端口8000或使用命令(如
sudo ufw allow 8000/tcp
@tao)服务的任何端口。谢谢。你应该将其作为回答。