关于Django中的IP 0.0.0.0

我们有一台运行Django支持站点的服务器。 由于我们要测试该站点,因此我们使用的是Django的内置开发服务器(即0.0.0.0)。 但是我很好奇以下命令的ip:

python manage.py runserver 0.0.0.0:80

这将导致一个运行中的站点,我们可以使用服务器的ip远程访问该站点。
但是,当使用0.0.0.0代替时:

python manage.py runserver 127.0.0.1:80

没有人可以使用另一台计算机的服务器IP访问该站点。

所以为什么? 0.0.0.0到底是什么意思(Google说这是默认路由)? 为什么不能远程访问127.0.0.1:80

Zhu Tao asked 2020-08-12T04:34:46Z
3个解决方案
54 votes

0.0.0.0:80是一个快捷方式,意思是“绑定到此计算机支持的所有IP地址”。 127.0.0.1:80使其仅绑定到“ lo”或“ loopback”接口。 如果只有一个具有一个IP地址的NIC,则可以使用192.168.1.1:80(如果192.168.1.1是您的IP地址)显式绑定到它,或者您可以列出计算机响应的所有IP,但是0.0.0.0:80是一个快捷方式 那。

Paul Tomblin answered 2020-08-12T04:34:52Z
10 votes

127.0.0.1是回送接口,也称为localhost; 这是只能从同一台计算机访问的地址,因为实际上没有任何内容通过网络传输。 0.0.0.0表示“在所有接口上监听”,因此将侦听计算机具有的所有IP地址(可能只有一个)上的连接。

Brian Campbell answered 2020-08-12T04:35:13Z
2 votes

127.0.0.1是本地(环回)IP,而不是网络上该计算机的IP。 要通过网络访问服务器,您需要知道其网络IP

Adam Hopkinson answered 2020-08-12T04:35:34Z
translate from https://stackoverflow.com:/questions/1621457/about-ip-0-0-0-0-in-django