47 votes

Que signifie :: : dans l'adresse locale de la sortie de netstat ?

Voici le résultat de netstat -tulpn que j'obtiens :

tcp        0      0 127.0.0.1:2208              0.0.0.0:*                   LISTEN      2055/hpiod
tcp        0      0 127.0.0.1:631               0.0.0.0:*                   LISTEN      2077/cupsd
tcp        0      0 127.0.0.1:25                0.0.0.0:*                   LISTEN      2138/sendmail: acce
tcp        0      0 127.0.0.1:2207              0.0.0.0:*                   LISTEN      2060/python
tcp        0      0 0.0.0.0:735                 0.0.0.0:*                   LISTEN      1825/rpc.statd
tcp        0      0 :::111                      :::*                        LISTEN      1781/rpcbind
tcp        0      0 :::80                       :::*                        LISTEN      2624/httpd
tcp        0      0 :::22                       :::*                        LISTEN      2096/sshd
udp        0      0 0.0.0.0:32768               0.0.0.0:*                               2398/avahi-daemon:
udp        0      0 0.0.0.0:68                  0.0.0.0:*                               1581/dhclient
udp        0      0 0.0.0.0:729                 0.0.0.0:*                               1825/rpc.statd
udp        0      0 0.0.0.0:732                 0.0.0.0:*                               1825/rpc.statd
udp        0      0 0.0.0.0:5353                0.0.0.0:*                               2398/avahi-daemon:
udp        0      0 0.0.0.0:631                 0.0.0.0:*                               2077/cupsd
udp        0      0 :::32769                    :::*                                    2398/avahi-daemon:
udp        0      0 :::684                      :::*                                    1781/rpcbind
udp        0      0 :::5353                     :::*                                    2398/avahi-daemon:
udp        0      0 :::111                      :::*                                    1781/rpcbind

Je suis curieux de le savoir : qu'est-ce que ::: dans Adresse locale ? Et qu'est-ce que 0.0.0.0:* y :::* à l'étranger ?

34voto

frooyo Points 658

Comme le mentionnent de nombreuses autres réponses, : : représente tous les zéros, et netstat peut afficher un deux-points après une adresse, de sorte que vous obtenez trois deux-points.

Ce que je n'ai vu dans aucune de ces réponses, c'est une réponse à la question de savoir ce que cela signifie réellement (dans ce cas).

Dans le cas de netstat, : : (en IPv6) ou 0.0.0.0 (en IPv4) signifie en fait "n'importe lequel".
Le logiciel écoute donc le port TCP 80 (le port HTTP) sur n'importe laquelle des adresses.

Si vous disposez de plusieurs interfaces de cartes réseau (ce qui est le cas, comme je l'expliquerai dans un instant), il est possible de n'écouter que sur une adresse spécifique. Par exemple, avec certains logiciels, vous pourriez faire en sorte que votre serveur HTTP écoute sur une carte réseau qui utilise l'Ethernet câblé, mais ne réponde pas à une carte réseau qui utilise un réseau sans fil. Dans ce cas, votre ordinateur pourrait faire quelque chose comme écouter sur IPv4 192.0.2.100:80 (ou IPv6 2001:db8:abcd::1234:80).

Mais, puisque vous écoutez ":::80", votre ordinateur n'écoute pas le trafic du port 80 sur une seule adresse IP entrante, vous écoutez le trafic du port 80 sur cualquier Adresse IPv6.

Pourquoi voudriez-vous choisir l'interface sur laquelle vous écoutez ? Eh bien, j'ai parfois utilisé cette capacité pour qu'un ordinateur écoute l'interface de bouclage. (Vous vous souvenez quand j'ai dit que vous aviez plusieurs interfaces de cartes réseau... c'est l'une des raisons pour lesquelles j'ai dit cela. Je suppose que vous disposez d'une connexion réseau physique réelle et d'une interface de bouclage. C'est la configuration la plus courante pour la plupart des ordinateurs de nos jours). C'est ce que je fais avec le tunnel SSH. Je peux alors faire en sorte qu'une visionneuse VNC locale se connecte à l'extrémité locale d'un tunnel SSH. En faisant écouter le tunnel SSH sur l'interface de bouclage, je n'ai pas à m'inquiéter du fait que le tunnel SSH puisse écouter le trafic provenant de l'une des interfaces réseau physiques. Ainsi, le tunnel SSH ne verra que le trafic réseau provenant de mon ordinateur.

Dans certains cas, 0.0.0.0 ou : : signifie en fait l'adresse "non spécifiée", telle que spécifiée par RFC 4291 section 2.5.2 qui dit "Il indique l'absence d'adresse". J'ai parfois vu cela lorsque le logiciel tente de se référer à une adresse "invalide" (comme lorsqu'un ordinateur n'a pas d'adresse assignée, peut-être), lorsqu'il n'y a pas d'adresse spécifique à afficher. Toutefois, dans ce cas, le : : ou 0.0.0.0 renvoie à une adresse "inconnue". C'est pourquoi tous les ports d'ÉCOUTE affichent "inconnu". Dans le cas d'une connexion établie, vous savez qui est la partie distante, puisque vous communiquez avec elle. Dans le cas d'une connexion "ÉCOUTE", vous êtes à l'écoute de toutes nouvelles conversations. Ce trafic peut provenir de n'importe où dans le monde. Le trafic entrant peut provenir de n'importe quelle adresse. La façon dont Nestat affiche cela est de spécifier une adresse contenant tous les zéros. Comme il n'y a pas d'adresse spécifique à utiliser, l'adresse "non spécifiée" semble tout à fait appropriée.

Je conclurai en notant qu'il est très courant d'avoir un logiciel qui écoute toutes les interfaces du réseau. Certains logiciels peuvent être configurés pour n'écouter qu'une adresse Internet spécifique, voire une carte réseau spécifique. Cela peut être un peu plus sûr, car le logiciel n'écoute pas là où aucun trafic valide n'est attendu. Cela peut limiter les possibilités d'attaque. Cependant, de nombreux logiciels ne disposent pas d'une telle option, ou celle-ci est quelque peu cachée. L'écoute de toutes les cartes réseau n'est donc pas une chose terrible. C'est assez courant. Et si vous souhaitez empêcher un logiciel de recevoir du trafic sur un port réseau spécifique, il existe d'autres moyens d'y parvenir, notamment en bloquant le trafic indésirable à l'aide d'un pare-feu. Dans ce cas, le pare-feu peut bloquer le trafic, mais le serveur (web) peut continuer à écouter le trafic sur cette interface réseau. Dans ce cas, le serveur ne recevra jamais de trafic sur cette interface, mais netstat indiquera toujours que le serveur est à l'écoute (pour le trafic qui n'atteindra jamais le serveur). Il est très courant que netstat signale que le logiciel serveur écoute sur toutes les interfaces, et il n'y a donc pas lieu de s'en inquiéter.

Enfin, je précise que cette question et cette réponse ne sont pas spécifiques à Linux. (Les paramètres de la ligne de commande indiqués et l'exemple de sortie montré peuvent provenir de Linux, et des systèmes d'exploitation différents peuvent afficher des choses légèrement différentes. Cependant, en ce qui concerne les : : et 0.0.0.0, le fonctionnement de netstat à cet égard est identique sur une machine fonctionnant sous BSD ou Microsoft Windows (et probablement sous beaucoup d'autres systèmes).

8voto

Comme d'autres l'ont dit, c'est la notation IPv6 naturelle pour ce contexte.

Citons et interprétons les normes pertinentes :

_:: : \== 0000.0000.0000.0000.0000.0000.0000.0000:_ **

https://www.rfc-editor.org/rfc/rfc5952#section-4 déclare que le canonique (et pas seulement une abréviation possible) Les adresses IPv6 sont :

  • écrit en hexadécimal avec les caractères a-f minuscules.
  • regroupés tous les 2 octets par :
  • les premiers 0 MUST être supprimée. 0000 devient 0 .
  • la plus longue séquence de :0:0:0: MUST sont convertis en :: . Ne peut être fait qu'une seule fois, ou conduirait à une ambiguïté.

Donc :::* signifie :

  • 0000:0000:0000:0000:0000:0000:0000 sur n'importe quel port ( :* )
  • \== 0:0:0:0:0:0:0 (suppression du 0 de fin)
  • \== :: (contraction consécutive du zéro)

_0000.0000.0000.0000.0000.0000.0000.0000: \== adresse non précisée_ *

https://www.rfc-editor.org/rfc/rfc4291#section-2.5.2 définit l'"adresse non spécifiée" :

L'adresse 0:0:0:0:0:0:0:0 est appelée adresse non spécifiée. Elle ne doit jamais être attribuée à un nœud. ne doit jamais être attribuée à un nœud. Elle indique l'absence d'une adresse. Elle est par exemple utilisée dans le champ d'adresse source de tout paquet IPv6 envoyé par un nœud. paquets IPv6 envoyés par un hôte initial avant qu'il n'ait appris sa propre adresse. sa propre adresse.

L'adresse non spécifiée ne doit pas être utilisée comme adresse de destination. des paquets IPv6 ou dans les en-têtes de routage IPv6. Un paquet IPv6 dont l'adresse non spécifiée ne doit jamais être transmis par un routeur IPv6. par un routeur IPv6.

ce qui en fait un bon choix pour une colonne N/A comme dans ce cas.

Donc :: es no localhost qui, selon le même document, se trouve à ::1 .

Sur netstat 1.60, les protocoles sur la sortie sont les suivants tcp6 y udp6 pour IPv6, qui montrent mieux ce qui se passe, par exemple :

tcp6       0      0 :::22                   :::*                    LISTEN      1201/sshd
udp6       0      0 :::5353                 :::*                                1449/avahi-daemon:

Voir aussi

3voto

anakin Points 77

Il s'agit de l'adresse IPv6. Dans IPv6, nous pouvons condenser une séquence de 0 à l'aide de l'outil :: modificateur

Par exemple,

0:0:0:0:0:0:0:1

peut s'écrire comme suit

::1

Mais il y a des règles spécifiques à suivre à cet égard, que vous pouvez consulter dans n'importe quel tutoriel sur l'IPv6.

2voto

Werner Henze Points 4659
::1 est l'hôte local pour IPv6, comme 127.0.0.1 pour IPv4.

::* est la version courte de 0:0:1:* (IPv6 0:0:0, port *), comme IPv4 0.0.0.0:*. Ces deux éléments dans la colonne des adresses étrangères signifient qu'il n'y a pas de colonne d'adresses étrangères. Dans le cas des sockets d'écoute, il est clair qu'il n'y a pas (encore) d'adresse étrangère connectée. Dans le cas des sockets udp, vous n'avez normalement pas d'adresses étrangères connectées, et celles-ci sont donc également répertoriées avec 0.0.0.0:*.

0voto

Phillip Nordwall Points 211

:::* Ce serait votre localhost/loop en IPv6 :)

Fondamentalement, vous avez des services qui écoutent et se connectent à des services locaux.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X