Je sais que 127.0.0.1 ~ 127.255.255.254 sont les adresses IP de bouclage pour la plupart des systèmes d'exploitation modernes, et ces adresses IP peuvent être utilisées pour faire référence à notre propre ordinateur.
Mais qu'est-ce que 0.0.0.0? Il semble que cela se réfère également à l'ordinateur local, alors quelle est la différence ?
Et, pourriez-vous m'expliquer les connexions IP suivantes:
ip
ip-address
netstat
Jichao
la source
la source
::1
comme adresse de bouclage.Réponses:
La seule chose à faire est que vous ne dites pas "toutes les adresses doivent avoir un accès" - cela se fait dans votre ou vos pare-feu et / ou dans le logiciel serveur et / ou dans d'autres couches de sécurité comme tcpwrappers.
0.0.0.0, dans ce contexte, signifie "toutes les adresses IP sur la machine locale" (en fait probablement, "toutes les adresses IPv4 sur la machine locale"). Ainsi, si votre ordinateur de serveur Web a deux adresses IP, 192.168.1.1 et 10.1.2.1, et que vous autorisez un démon de serveur Web tel qu'apache à écouter le 0.0.0.0, il sera accessible à ces deux adresses IP. Mais seulement à ce qui peut contacter ces adresses IP et le (s) port (s) Web.
Notez que, dans un contexte différent (routage), 0.0.0.0 désigne généralement la route par défaut (la route vers "le reste de" Internet), à part les routes de votre réseau local, etc.).
la source
0.0.0.0
signifie la route par défaut uniquement si elle est accompagnée d'un préfixe/0
(ou d'un masque de réseau0.0.0.0
)Lorsqu'un service écoute sur 0.0.0.0, cela signifie que le service écoute sur toutes les interfaces réseau configurées. Lorsqu'il écoute sur 127.0.0.1, le service est uniquement lié à l'interface de bouclage (disponible uniquement sur la machine locale).
la source
L'adresse IP
0.0.0.0
peut avoir des significations très différentes selon son utilisation.0.
).netstat
vous voyez dans la sortie de la commande (ce que vous avez demandé), cela signifie qu'un socket donné écoute toutes les adresses IP disponibles de l'ordinateur. lorsqu'un ordinateur a plus d'une adresse IP, un socket ne peut être lié qu'à une adresse et une paire de ports spécifiques, ou à un port et à toutes les adresses; si vous voyez une adresse IP à cet endroit, cela signifie que le socket n’écoute que sur ce port et cette adresse spécifique; si vous voyez0.0.0.0
, cela signifie qu'il écoute sur ce port sur toutes les adresses de la machine, y compris le loopback one (127.0.0.1
).la source
ping 0.0.0.0
sur un système Windows génère un message d'erreur.curl 0.0.0.0
rendementsconnection refused
sur Arch Linux.ping 0.0.0.0
, en revanche, semble être un pseudonyme pourping 127.0.0.1
lequel fonctionne bien.connection refused
peut être parce que curl essaie par défaut de se connecter au port 80 / tcp. Essayez de trouver vos ports ouverts avecnmap -sV localhost
et pour , par exemple , si 631 / tcp:curl 0.0.0.0:631
.La réponse de Lee B est exacte, mais voici quelques RFC pertinents au cas où cela vous intéresserait.
0.0.0.0:
De RFC1122 , Section 3.1.2.3:
Juste cela, "cet hôte sur ce réseau" ... comme le dit la réponse de Lee B, cela se traduit par toutes les adresses IP disponibles sur votre hôte. L'hébergement d'un service sur 0.0.0.0 hébergera automatiquement ce service sur chaque interface adressable.
127.0.0.1:
De RFC5735 :
La différence entre 0.0.0.0 et l'adresse de bouclage 127.0.0.1 réside dans le fait que l'adresse de bouclage est conçue pour permettre une interface IP pleinement fonctionnelle au sein de l'hôte même, quel que soit le reste de la configuration réseau, le cas échéant. Tout le trafic envoyé au périphérique en boucle est immédiatement reçu. Ce n’est pas tant que le réseau de bouclage «fasse référence» à votre propre hôte… c’est plutôt comme si vous aviez un mini segment de réseau dans votre hôte qui permettait aux périphériques, processus et sockets de s’ouvrir et de se connecter.
la source
En termes simples: écouter sur 0.0.0.0 signifie écouter depuis n'importe quel endroit ayant un accès réseau à cet ordinateur, par exemple depuis cet ordinateur même, depuis un réseau local ou depuis Internet, tandis que l'écoute sur 127.0.0.1 signifie uniquement écouter depuis cet ordinateur même.
la source