2009-10-25 38 views
31

我們有一臺運行Django驅動站點的服務器。由於我們要測試網站,因此我們使用的是Django的內置開發服務器(即runserver)。但我很好奇下面的命令的IP:關於Django中的IP 0.0.0.0

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究竟意味着什麼(Google說這是默認路線)?爲什麼不能遠程訪問127.0.0.1:80

回答

40

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

2

127.0.0.1是本地(環回)ip,而不是網絡上該計算機的ip。要通過網絡訪問服務器,您需要知道其網絡IP

+1

感謝亞當。但是0.0.0.0:80是否必須爲其他客戶端提供訪問權? – 2009-10-25 17:26:17

7

127.0.0.1是loopback interface,也稱爲localhost;這是一個只能從同一臺計算機訪問的地址,因爲實際上網絡上沒有任何地址。 0.0.0.0表示「偵聽所有接口」,因此將監聽機器所有IP地址(可能只有一個)的連接。