signification de la colonne d'adresse locale de Netstat

20

Quand je le fais, netstat -ntlpil y a une colonne appelée Local Address:

  • parfois, il produirait l'adresse IP comme 0.0.0.0:7180
  • et parfois 127.0.0.1:9001

Quelles sont les implications des deux notations?

L'adresse IP spécifique agit-elle comme un filtre pour les connexions entrantes? Par exemple, 127.0.0.1:9001il acceptera uniquement les connexions de l'hôte local sur le port 9001?

user1678312
la source

Réponses:

13

Je pense que vous avez répondu à votre propre question.

Par exemple, apachea son Listenoption qui lui indique l'adresse et le port à écouter. Selon la façon dont cela est défini, apacheécoutera sur n'importe quelle adresse IP, une adresse spécifique: -

Listen *:80
Listen 0.0.0.0:80
Listen 127.0.0.1:80
Listen 192.168.0.5:80

Les options ci-dessus apparaissent comme: -

:::80
0.0.0.0:80
127.0.0.1:80
192.168.0.5:80

et traduire en: -

  • Écoutez sur n'importe quelle adresse IP (IPv4 ou IPv6)
  • Écoutez n'importe quelle adresse IPv4 sur ce serveur
  • Écoutez sur IPv4 localhost uniquement
  • Écouter sur l'adresse IPv4 externe 192.68.0.5

Vous pouvez configurer votre service pour écouter uniquement sur l' localhostinterface si vous ne voulez pas que quelqu'un externe y accède. Par exemple, si vous exécutez un serveur LAMP, vous auriez à apacheécouter toutes les adresses IP (afin que vos utilisateurs puissent y accéder) tandis qu'une mysqlbase de données pourrait être configurée pour être accessible uniquement depuis localhost(à l'aide de sa bind=127.0.0.1directive). De cette façon, l' phpexécution sur le même serveur pourra accéder à la base de données tandis que les utilisateurs externes (et non approuvés) ne pourront pas y accéder.

garethTheRed
la source
:::80n'implique pas toujours IPv4 également unix.stackexchange.com/a/496150/333382
rfc2460
11

127.0.0.1 et 0.0.0.0

127.0.0.1signifie interface locale ou adresse de bouclage. Accessible uniquement depuis votre hôte local.

0.0.0.0 est une adresse générique pour chaque interface.

On netstat -ntlp Local Addresssignifie "Imprimer les connexions TCP à écoute active, afficher les adresses IP sous forme de valeurs numériques et afficher le PID et le nom du programme qui utilise cette connexion."


Différence par l'exemple

Par exemple, si j'ai

Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name                 
tcp        0      0 127.0.1.1:53            0.0.0.0:*               LISTEN      1189/prog1
tcp        0      0 0.0.0.0:6666            0.0.0.0:*               LISTEN      1188/prog2

cela signifie:

Le service prog1avec PID 1189écoute sur le port 53avec le protocole tcp. Il n'est accessible qu'à partir de votre hôte local.

Le service prog2avec PID 1189écoute sur le port 6666avec le protocole tcp. L'accès à ce port est autorisé à partir de tout autre ordinateur sur tous les réseaux dont l'ordinateur fait partie.

Sources: 1 2 3

polym
la source
3

0.0.0.0 signifie que le processus est lié à toutes les interfaces.

127.0.0.1signifie que le processus n'est lié qu'à l' 127.0.0.1interface (bouclage).

Si vous aviez d'autres interfaces, vous pourriez avoir des x.y.z.aentrées indiquant que le processus était lié à ces interfaces spécifiques.

Un processus ne sera informé que si le trafic arrive sur les interfaces auxquelles il est lié, alors oui, c'est une sorte de filtre, bien qu'il ne soit généralement pas décrit dans ces termes.

EightBitTony
la source
2

L '"adresse locale" est l'adresse à laquelle le socket en question est lié. Il s'agit de l'adresse sur laquelle il reçoit les connexions. Les adresses que vous demandez sont des "adresses spéciales". Selon la page de manuel du protocole Linux IPv4 :

Il existe plusieurs adresses spéciales: INADDR_LOOPBACK( 127.0.0.1) fait toujours référence à l'hôte local via le périphérique de bouclage; INADDR_ANY ( 0.0.0.0) désigne toute adresse de liaison; INADDR_BROADCAST ( 255.255.255.255) désigne tout hôte et a le même effet sur la liaison que INADDR_ANYpour des raisons historiques.

Cela signifie que l'adresse 0.0.0.0peut recevoir des connexions pour n'importe quelle adresse du système, sur n'importe quelle interface.

Dan Getz
la source
1

Comme vous l'avez dit, l'IP de localhost accepte uniquement les connexions à ces ports localement tandis que l'IP 0.0.0.0 fait référence à des ports ouverts à tous.

Par exemple

Local

127.0.0.1:8307 VMWARE
127.0.0.1:25   MASTER

À tous

0.0.0.0:80    HTTP
0.0.0.0:443   SKYPE
tachomi
la source