54

我们有一个服务器,我们在上面运行一个 Django 支持的站点。因为我们要测试站点,所以我们使用 Django 的内置开发服务器(即runserver)。但是我很好奇以下命令的ip:

python manage.py runserver 0.0.0.0:80

它导致我们可以使用服务器的 ip 远程访问一个正在运行的站点。
但是当使用时127.0.0.1

python manage.py runserver 127.0.0.1:80

没有人可以通过另一台电脑的服务器 IP 访问该站点。

所以为什么?究竟是0.0.0.0什么意思(谷歌说这是默认路线)?为什么不能127.0.0.1:80远程访问?

4

3 回答 3

65

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是一个快捷方式。

于 2009-10-25T17:31:13.490 回答
12

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

于 2009-10-25T17:24:47.200 回答
2

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

于 2009-10-25T17:23:47.607 回答