Question Quelle est la différence entre 127.0.0.1 et 0.0.0.0?


Je comprends que 127.0.0.1 pointe vers localhost, et aussi 0.0.0.0 (corrigez-moi si je me trompe). Alors, quelle est la différence entre 127.0.0.1 et 0.0.0.0?


162
2017-08-02 13:17


origine


Vous etes peut etre intéressé cette discussion de suivi des bogues Chrome sur la façon de gérer 0.0.0.0 en entrée d'adresse. - user7301
Dans la plupart des configurations de serveur, 0.0.0.0 signifie, écoutez TOUTES les adresses! Cela rendra votre serveur disponible sur Internet. Si vous faites cela pour un serveur local sans aucune sécurité (il écoute uniquement sur localhost, non?) C'est mauvais. Ne fais pas ça! - Josef
Répondez littéralement à votre question, la différence est 2130706433. - Shaz
@Mast oh, vous êtes une des personnes qui installent un système totalement non sécurisé, car le pare-feu va tout réparer? Habituellement, ces systèmes peuvent être trouvés avec shodan.io : 3 Le niveau suivant de cet état d'esprit est "nous pouvons totalement utiliser une installation WordPress vieille de 5 ans, nous avons un WAF". Je ne recommande à personne d'aller dans cette voie, jamais! - Josef
@Shaz j'aimerais commenter votre commentaire mais comme il est actuellement à 42 ans je ne peux pas me résoudre à le faire ... - Jenny D


Réponses:


Quelle est la différence entre 127.0.0.1 et 0.0.0.0?

  • 127.0.0.1 est l'adresse de bouclage (également appelée localhost).

  • 0.0.0.0 est une méta-adresse non routable utilisée pour désigner une cible non valide, inconnue ou non applicable (un espace réservé pour une adresse particulière).

    Dans le contexte d'une entrée de route, cela signifie généralement la route par défaut.

    Dans le contexte des serveurs, 0.0.0.0 signifie "toutes les adresses IPv4 sur la machine locale". Si un hôte dispose de deux adresses IP, 192.168.1.1 et 10.1.2.1, et qu'un serveur fonctionnant sur l'hôte écoute sur 0.0.0.0, il sera accessible sur ces deux adresses IP.


Qu'est-ce que l'adresse IP 127.0.0.1?

127.0.0.1 est l'adresse IP (loopback Internet protocol) également appelée "localhost". L'adresse est utilisée pour établir une adresse IP.   connexion à la même machine ou à l’ordinateur utilisé par l’utilisateur final.

La même convention est définie pour les ordinateurs prenant en charge IPv6   adresser en utilisant la connotation de :: 1. Établir une connexion   utiliser l'adresse 127.0.0.1 est la pratique la plus courante; cependant,   en utilisant n'importe quelle adresse IP dans la gamme de 127... * fonctionnera dans le   même ou similaire. La construction en boucle donne un ordinateur ou   dispositif capable de mettre en réseau la capacité à valider ou à établir   la pile IP sur la machine.

La source: 127.0.0.1 - Quelles sont ses utilisations et pourquoi est-ce important?


Adresses spéciales

Le numéro de réseau de classe A 127 se voit attribuer le "loopback"            fonction, c'est-à-dire un datagramme envoyé par un protocole de niveau supérieur            à un réseau 127 adresse devrait boucler à l'intérieur de l'hôte. Non            datagramme "envoyé" à une adresse réseau 127 devrait apparaître sur            n'importe quel réseau n'importe où.

La source: Numéros de réseau


Si c'est une classe entière A, quel est le point d'autres valeurs arbitraires pour les trois derniers octets?

La plage de bouclage a pour but de tester l'implémentation du protocole TCP / IP sur un hôte. Comme les couches inférieures sont court-circuitées, l'envoi à une adresse de bouclage permet de tester efficacement les couches supérieures (IP et supérieures) sans risque de problèmes au niveau des couches inférieures se manifestant. 127.0.0.1 est l'adresse la plus couramment utilisée à des fins de test.

La source: Adresses IP réservées, en boucle et privées

Pour plus d'informations, voir https://askubuntu.com question Quel est le périphérique de bouclage et comment l'utiliser? et Pourquoi l'adresse IP de bouclage de 127.0.0.1 à 127.255.255.254?.


Quelle est l'adresse IP 0.0.0.0?

"0.0.0.0" est une syntaxe d'adresse valide. Donc, il devrait analyser comme valide   partout où une adresse IP en notation décimale pointée traditionnelle est   attendu. Une fois analysé et converti en une forme numérique exploitable, alors   sa valeur détermine ce qui se passe ensuite.

La valeur tout zéro a une signification particulière.Donc c'est "valide", mais   a un sens qui peut ne pas être approprié (et donc traité comme non   valide) pour des circonstances particulières. C'est fondamentalement le "non   adresse particulière "placeholder. Pour des choses comme la liaison d'adresse de   connexions réseau, le résultat peut être d'affecter une   adresse d'interface à la connexion. Si vous l'utilisez pour configurer   une interface, il peut supprimer une adresse de l'interface, à la place. Il   dépend du contexte d'utilisation pour déterminer ce que "aucun particulier   adresse "fait vraiment.

Dans le contexte d'une entrée de route, cela signifie généralement la route par défaut.   Cela se produit en conséquence plus du masque d’adresse, qui sélectionne le   bits à comparer. Un masque de "0.0.0.0" sélectionne pas de bits, donc la comparaison   va toujours réussir. Donc, quand un tel itinéraire est configuré, il y a   toujours quelque part pour les paquets à aller (si configuré avec un valide   destination).

Dans certains cas, simplement "0" fonctionnera également et aura le même effet. Mais   ce n'est pas garanti. Le formulaire "0.0.0.0" est le moyen standard de dire   "pas d'adresse particulière" (dans IPv6 qui est ":: 0" ou simplement "::").

La source: Quelle est la signification de l'adresse IP 0.0.0.0


Dans le protocole Internet version 4, l’adresse 0.0.0.0 est un   adresse méta non routable utilisée pour désigner une adresse non valide, inconnue ou non   cible applicable. Donner une signification particulière à un autre invalide   morceau de données est une application de la signalisation dans la bande.

Dans le contexte des serveurs, 0.0.0.0 signifie "toutes les adresses IPv4 sur la machine locale". Si un hôte dispose de deux adresses IP, 192.168.1.1 et 10.1.2.1, et qu'un serveur fonctionnant sur l'hôte écoute sur 0.0.0.0, il sera accessible sur ces deux adresses IP.

Dans le contexte du routage, 0.0.0.0 signifie généralement la route par défaut, c’est-à-dire la route qui mène au "reste" d’Internet au lieu d’être quelque part sur le réseau local.

Les utilisations incluent:

  • L'adresse qu'un hôte revendique comme étant la sienne lorsqu'il n'a pas encore reçu d'adresse. Comme lors de l'envoi du DHCPDISCOVER initial   paquet en utilisant DHCP.
  • L'adresse qu'un hôte lui attribue lorsque la demande d'adresse via DHCP a échoué, à condition que la pile IP de l'hôte le prenne en charge. Cet usage a été remplacé par le mécanisme APIPA dans le fonctionnement moderne   systèmes
  • Une façon de spécifier "n'importe quel hôte IPv4". Il est utilisé de cette manière lors de la spécification d'une route par défaut.
  • Une manière de spécifier explicitement que la cible est indisponible.1
  • Une façon de spécifier "une adresse IPv4 du tout". Il est utilisé de cette manière lors de la configuration des serveurs (par exemple lors de la liaison de sockets d'écoute).   Ceci est connu des programmeurs TCP sous INADDR_ANY. (bind (2) se lie à   adresses, pas interfaces.)

Dans IPv6, l'adresse de tous les zéros est écrite comme "::".

La source: 0.0.0.0


Découverte / demande DHCP

Quand un client démarre pour la première fois, on dit qu'il est dans le   Etat d’initialisation et transmet un message DHCPDISCOVER sur son   sous-réseau physique sur le port UDP (User Datagram Protocol) 67 (BootP   serveur). Puisque le client n’a aucun moyen de connaître le sous-réseau auquel il appartient.   appartient, le DHCPDISCOVER est une diffusion de tous les sous-réseaux (adresse IP de destination).   adresse 255.255.255.255), avec une adresse IP source de 0.0.0.0. le   L’adresse IP source est 0.0.0.0, le client n’ayant pas de   adresse IP configurée.Si un serveur DHCP existe sur ce sous-réseau local   et est configuré et fonctionne correctement, le serveur DHCP entendra   l'émission et répondre avec un message DHCPOFFER. Si un serveur DHCP   n'existe pas sur le sous-réseau local, il doit y avoir un relais DHCP / BootP   Agent sur ce sous-réseau local pour transmettre le message DHCPDISCOVER à un   sous-réseau contenant un serveur DHCP.

Cet agent de relais peut être soit un hôte dédié (par exemple,   Microsoft Windows Server) ou un routeur (par exemple, un routeur Cisco   configuré avec des instructions d'assistance IP de niveau interface).

...

Une fois que le client reçoit un DHCPOFFER, il répond par un message DHCPREQUEST, indiquant son intention d'accepter les paramètres du DHCPOFFER et passe à l'état Requesting. Le client peut recevoir plusieurs messages DHCPOFFER, un de chaque serveur DHCP qui a reçu le message DHCPDISCOVER d'origine. Le client choisit un DHCPOFFER et répond uniquement à ce serveur DHCP, déclinant implicitement tous les autres messages DHCPOFFER. Le client identifie le serveur sélectionné en renseignant le champ d'option Identificateur de serveur avec l'adresse IP du serveur DHCP. Le DHCPREQUEST est également une diffusion, donc tous les serveurs DHCP qui ont envoyé un DHCPOFFER verront le DHCPREQUEST et chacun saura si son DHCPOFFER a été accepté ou refusé. Toutes les options de configuration supplémentaires requises par le client seront incluses dans le champ options du message DHCPREQUEST. Même si le client s'est vu proposer une adresse IP, il enverra le message DHCPREQUEST avec une adresse IP source de 0.0.0.0. À ce moment, le client n'a pas encore reçu de vérification indiquant que l'utilisation de l'adresse IP est claire.

...

Conversation client-serveur pour le client Obtention de l'adresse DHCP où le client et le serveur DHCP résident sur le même sous-réseau

Enter image description here

La source: Comprendre et dépanner DHCP dans les réseaux Catalyst Switch ou Enterprise


Route par défaut

Ce document explique comment configurer une route par défaut ou une passerelle de   dernier recours. Ces commandes IP sont utilisées:

  • ip default-gateway

  • ip default-network

  • et route ip 0.0.0.0 0.0.0.0

route ip 0.0.0.0 0.0.0.0

Créer une route statique vers le réseau 0.0.0.0 0.0.0.0 est un autre moyen de   définir la passerelle de dernier recours sur un routeur. Comme avec l'ip   commande default-network, l'utilisation de la route statique vers 0.0.0.0 n'est pas   dépend des protocoles de routage. Cependant, le routage IP doit être   activé sur le routeur.

Remarque: IGRP ne comprend pas un itinéraire vers 0.0.0.0. Par conséquent, il   ne peut pas propager les routes par défaut créées à l'aide de la route ip 0.0.0.0   Commande 0.0.0.0. Utilisez la commande ip default-network pour que IGRP propage une route par défaut.

La source: Configuration d'une passerelle de dernier recours à l'aide de commandes IP


166
2017-08-02 18:33





Ils ne sont pas les mêmes.

127.0.0.1 fait partie du réseau 127/8 qui est réservé et pointe vers le même ordinateur.

0.0.0.0 est une adresse IP spéciale qui signifie différentes choses selon le contexte.

Dans le protocole Internet version 4, l'adresse 0.0.0.0 est un   méta-adresse non routable utilisée pour désigner une adresse invalide, inconnue ou   cible non applicable. Donner un sens particulier à un autre   une donnée invalide est une application de la signalisation dans la bande.

Vous avez peut-être confondu 0.0.0.0 pour 127.0.0.1 lorsque vous regardez netstat et que l'adresse locale écoute sous la forme 0.0.0.0, mais c'est une autre façon d'utiliser 0.0.0.0.

Dans le contexte des serveurs, 0.0.0.0 signifie "toutes les adresses IPv4 sur le   machine locale ". Si un hôte a deux adresses IP, 192.168.1.1 et   10.1.2.1, et qu'un serveur fonctionnant sur l'hôte écoute sur 0.0.0.0, il sera accessible à ces deux adresses IP.

Dans le contexte du routage, 0.0.0.0 signifie généralement la route par défaut,   c'est-à-dire la voie qui mène au "reste" d'Internet au lieu de   quelque part sur le réseau local.

https://en.wikipedia.org/wiki/0.0.0.0


101
2017-08-02 13:55



0.0.0.0 peut également parfois indiquer une diffusion, c'est-à-dire à tous les ordinateurs du réseau. - KronoS
@KronoS Je pensais que les émissions sont des choses comme 255.255.255.255 (ou plus réaliste quelque chose comme 192.168.1.255 pour un réseau local) - Nick T
@NickT Ah tu es correct: A special definition exists for the IP broadcast address 255.255.255.255. It is the broadcast address of the zero network or 0.0.0.0, which in Internet Protocol standards stands for this network, i.e. the local network. Transmission to this address is limited by definition, in that it is never forwarded by the routers connecting the local network to other networks. - KronoS
@KronoS Vous confondez l’addr de diffusion avec le bouclage. Le bouclage est 0.0.0.0 qui, comme décrit ci-dessus, écoute toutes les adresses locales. La diffusion (de manière simple) est le 255 des réseaux à "diffuser" à toutes les adresses de ce réseau. - Desorder
Ceci est incomplet - de nombreux systèmes d'exploitation vous laissent réellement se connecter à 0.0.0.0, qui se comporte alors comme une adresse de bouclage. - grawity


127.0.0.1 une des adresses de l'ordinateur local, mais toute adresse 127.xyz est également une autre adresse de l'ordinateur (appelée "adresse de bouclage"), sauf 127.0.0.0 (sous-réseau de bouclage) et 127.255.255.255 (adresse de diffusion pour le bouclage) sous-réseau).

127.x.y.z signifie "ici".

0.0.0.0 est totalement différent: 0.0.0.0 n'est pas l'adresse de rien, c'est le joker, comme * en coquille

Vous ne pouvez pas envoyer de données à 0.0.0.0 ou ouvrir activement une connexion TCP à 0.0.0.0 car il n'y a rien là-bas; 0.0.0.0 n'est même pas une adresse inaccessible ou non routable, il n'a pas de sens dans un contexte où une adresse est attendue.

Vous pouvez utiliser le joker 0.0.0.0 dans des contextes où une adresse peut être optionnellement fournie, vouloir dire Je m'en fous.

Par exemple, lorsque vous ouvrez activement une connexion TCP sur un serveur TCP (un serveur TCP est créé par un TCP ouvert ouvert), vous devez spécifier l'adresse du serveur TCP (IP et numéro de port) et vous pouvez: optionnellement choisissez une adresse locale. (Étant donné que votre socket n'est pas un socket serveur, personne ne peut y ouvrir une connexion et l'adresse de votre côté de la connexion n'est généralement pas très importante.)

le bind l'appel système est utilisé pour choisir l'adresse locale d'une socket TCP. Les données transmises à bind est vraiment un ensemble de contraintes: contrainte sur l'adresse IP, contrainte sur le port TCP. La notation habituelle est IP: port. 0.0.0.0:0 signifie que toute adresse IP de n'importe quel port est acceptable, c'est la contrainte nulle. 0.0.0.0:20 signifie que le port local doit être 20, n'importe quelle adresse IP est acceptable (0.0.0.0:20 est utilisé par les serveurs FTP conformes pour la connexion de données en mode actif).

Le sous-système TCP / IP choisira l'adresse de votre côté de la connexion TCP Si vous n'en choisissez pas, en utilisant la table de routage, en fonction de l'adresse de destination: l'adresse de socket TCP locale sera l'adresse locale associée à l'itinéraire correspondant à l'adresse de destination.

J'ai déjà mentionné le shell "meta-character" *, mais le pouvoir de combiner des méta-caractères avec des caractères comme *foo* (tout nom de fichier contenant "foo") n'existe pas avec les contraintes d'adresse IP, c'est tout ou rien: soit une seule adresse IP est jugée acceptable ou toutes les adresses sont. La logique fait ne pas dicte que cela doit être ainsi. Vous pouvez étendre l'interface avec un langage de contrainte plus riche.

Précision:

La phrase 127.x.y.z signifie "ici" n'implique pas que toutes ces adresses sont les mêmes. Ils représentent différents "emplacements" (adresses de socket), à l'intérieur de "l'ordinateur" local, à l'intérieur de la pile IP locale.

Remarque: un ordinateur avec virtualisation (émulation, virtualisation matérielle, paravirtualisation, tout ce que vous pouvez imaginer ...) possède plusieurs piles IP indépendantes.


13
2017-08-03 16:38



Lorsque je tapais une adresse aléatoire commençant par 127 (par exemple 127.16.23.42) dans mon navigateur, elle ne se connectait pas à localhost. - whoKnows
@whoKnows Bien sûr. localhost est 127.0.0.1, pas 127.16.23.42. - curiousguy
Je vois. Donc, 127.0.0.1 signifie localhost, mais 127.x.y.z pourrait signifie l'ordinateur local, s'il a été configuré de cette façon? - whoKnows
@whoNon No: 127.x.y.z appartient à cet ordinateur pour tout x y z. "localhost" est juste un nom pour 127.0.0.1, alors oubliez "localhost". Utilisez le -n ou -d drapeau de netstat et programmes connexes pour afficher les adresses numériques, pas les noms. 127.0.0.1 n'est pas la même adresse IP que 127.16.23.42. Donc 127.0.0.1:80 et 127.16.23.42:80 représentent des adresses de point d'extrémité TCP distinctes, un serveur Web à une adresse ne peut pas être trouvé à l'autre adresse. - curiousguy


En règle générale, vous utilisez l'adresse de liaison 0.0.0.0 pour autoriser les connexions à partir de réseaux et de sources externes. De nombreux serveurs tels que MySQL se lient généralement à 127.0.0.1, ne permettant que des connexions en boucle, ce qui oblige l’administrateur à le remplacer par 0.0.0.0 pour permettre une connectivité externe.


4
2017-08-03 05:55