2010-09-12 11 views
5

Il semble que Rails et Django peut aussi bien démarrer le serveur de liaison à une adresse IP, soitQuelle est la différence entre démarrer une liaison de serveur à 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 

y at-il d'autres choix? Il semble que 0.0.0.0 et 192.168.1.2 peuvent permettre à un Virtual PC sur la même machine d'accéder à ce site, alors que 127.0.0.1 ne le peut pas.

Cependant, si ce n'est que le même bloc-notes, en utilisant localhost: 3000 (pour Rails), cela n'a pas d'importance. Mais dans les deux cas, 0.0.0.0:3000 ne fonctionnera pas.

Comment ça marche? Quelles sont les significations de l'utilisation de 0.0.0.0 vs 127.0.0.1 vs 192.168.1.2?

+0

Tout d'abord, '127.0.0.1' est interprété par la machine virtuelle comme faisant référence à la machine virtuelle. Je ne sais pas ce que la magie est pour '0.0.0.0' qui le fait se comporter autrement, cependant. – Matchu

+0

Non spécifique aux rails: http://serverfault.com/questions/78048/whats-the-difference-between-ip-address-0-0-0-0-and-127-0-0-1 –

Répondre

16

Relier à 0.0.0.0 signifie écouter toutes les interfaces.

La liaison à 127.0.0.1 signifie écouter l'interface de bouclage.

1

0.0.0.0 se lie à toutes les adresses IP. Toute autre adresse se lie à cette interface particulière.

1

Si vous démarrez le serveur sur 127.0.0.1, il n'écoute que sur localhost; Si vous le lancez sur 0.0.0.0, il écoute sur n'importe quelle adresse IP (par exemple votre adresse IP locale).

Pour le développement local, c'est bien - mais sinon, personne d'autre que la machine locale ne pourra le voir.