我们有一台服务器,我们正在运行一个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
?
答案 0 :(得分:51)
0.0.0.0:80
是一种快捷方式,意思是“绑定到此计算机支持的所有IP地址”。 127.0.0.1:80
使其仅绑定到“lo”或“loopback”接口。如果您只有一个NIC只有一个IP地址,那么您可以明确地绑定它,例如192.168.1.1:80
(如果192.168.1.1
是您的IP地址),或者您可以列出所有您的计算机响应的IP,但0.0.0.0:80
是此的快捷方式。
答案 1 :(得分:10)
127.0.0.1是loopback interface,也称为localhost
;这是一个只能从同一台计算机访问的地址,因为实际上并没有通过网络。 0.0.0.0表示“侦听所有接口”,因此将侦听机器所有IP地址(可能只有一个)的连接。
答案 2 :(得分:2)
127.0.0.1是本地(环回)ip,而不是网络上该计算机的ip。要通过网络访问服务器,您需要知道其“网络IP
”