2010-09-12 16 views
5

Parece que Rails y Django puede tanto poner en marcha la unión a un IP del servidor, ya sea¿Cuál es la diferencia entre iniciar un enlace de servidor a 0.0.0.0 frente a 127.0.0.1?

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

¿hay otras opciones? Parece que 0.0.0.0 y 192.168.1.2 pueden permitir que una PC virtual en la misma máquina acceda a este sitio web, mientras que 127.0.0.1 no puede.

Sin embargo, si es solo el mismo portátil, usando localhost: 3000 (para Rails), entonces no importa. Pero en cualquier caso, 0.0.0.0:3000 no funcionará.

¿Cómo funciona? ¿Cuáles son los significados de usar 0.0.0.0 vs 127.0.0.1 vs 192.168.1.2?

+0

Primero, '' 127.0.0.1' es interpretado por la máquina virtual como una referencia a la máquina virtual. Sin embargo, no estoy seguro de qué es la magia para '0.0.0.0' que hace que se comporte de otra manera. – Matchu

+0

No es específico de los raíles: http://serverfault.com/questions/78048/whats-the-difference-between-ip-address-0-0-0-0-and-127-0-0-1 –

Respuesta

16

Enlazar a 0.0.0.0 significa escuchar todas las interfaces.

Enlazar a 127.0.0.1 significa escuchar la interfaz de bucle invertido.

1

0.0.0.0 se une a todas las direcciones IP. Cualquier otra dirección se une a esa interfaz en particular.

1

Si inicia el servidor en 127.0.0.1, solo está escuchando en localhost; si lo inicia en 0.0.0.0, está escuchando en cualquier IP (por ejemplo, su IP local).

Para el desarrollador local, está bien, pero de lo contrario, nadie más que la máquina local podrá verlo.

Cuestiones relacionadas