2010-09-12 8 views
5

Sembra che Rails e Django possono sia avviare il server legame con un IP, siaQual è la differenza tra l'avvio di un binding server su 0.0.0.0 vs 127.0.0.1?

0.0.0.0, 127.0.0.1, or 192.168.1.2 <-- the last one is my local IP 

ci sono altre scelte? Sembra che 0.0.0.0 e 192.168.1.2 possano consentire a un PC virtuale sulla stessa macchina di accedere a questo sito Web, mentre 127.0.0.1 non può.

Tuttavia, se è lo stesso notebook, utilizzando localhost: 3000 (per Rails), non importa. Ma in entrambi i casi, 0.0.0.0:3000 non funzionerà.

Come funziona? Quali sono i significati dell'utilizzo di 0.0.0.0 vs 127.0.0.1 rispetto a 192.168.1.2?

+0

Prima di tutto, '127.0.0.1' viene interpretato dalla macchina virtuale come riferito alla macchina virtuale. Non sono sicuro di quale sia la magia per '0.0.0.0' che comunque si comporta diversamente. – Matchu

+0

Non specifico per le rotaie: http://serverfault.com/questions/78048/whats-the-difference-between-ip-address-0-0-0-0-and-127-0-0-1 –

risposta

16

Il collegamento a 0.0.0.0 significa ascoltare tutte le interfacce.

Il collegamento a 127.0.0.1 significa ascoltare l'interfaccia di loopback.

1

0.0.0.0 si collega a tutti gli indirizzi IP. Qualsiasi altro indirizzo si lega a quella particolare interfaccia.

1

Se si avvia il server su 127.0.0.1, è in ascolto solo su localhost; se lo si avvia su 0.0.0.0, è in ascolto su qualsiasi IP (ad esempio il proprio IP locale).

Per lo sviluppo locale, questo va bene, ma in caso contrario, nessuno, tranne la macchina locale, sarà in grado di vederlo.

Problemi correlati