significado de la columna de dirección local de Netstat

20

Cuando lo hago, netstat -ntlphay una columna llamada Local Address:

  • a veces daría salida a la dirección IP como 0.0.0.0:7180
  • y aveces 127.0.0.1:9001

¿Cuáles son las implicaciones de ambas notaciones?

¿La dirección IP específica actúa como un filtro para las conexiones entrantes? Por ejemplo 127.0.0.1:9001, ¿solo aceptará conexiones de localhost en el puerto 9001?

usuario1678312
fuente

Respuestas:

13

Creo que has respondido tu propia pregunta.

Como ejemplo, apachetiene su Listenopción que le dice en qué dirección y puerto escuchar. Dependiendo de cómo se configure, apacheescuchará en cualquier dirección IP, una dirección específica: -

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

Las opciones anteriores se muestran como: -

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

y traducir a: -

  • Escuche en cualquier dirección IP (IPv4 o IPv6)
  • Escuche en cualquier dirección IPv4 en ese servidor
  • Escuche solo en IPv4 localhost
  • Escuche en la dirección IPv4 externa 192.68.0.5

Puede configurar su servicio para escuchar solo en la localhostinterfaz si no desea que nadie externo acceda a ella. Por ejemplo, si está ejecutando un servidor LAMP, habría apacheescuchado en todas las direcciones IP (para que sus usuarios puedan acceder a él), mientras que una mysqlbase de datos podría configurarse para que solo sea accesible desde localhost(usando su bind=127.0.0.1directiva). De esta forma, la phpejecución en el mismo servidor podrá acceder a la base de datos, mientras que los usuarios externos (y no confiables) no podrán acceder a ella.

garethTheRed
fuente
:::80no siempre implica IPv4 también unix.stackexchange.com/a/496150/333382
rfc2460
11

127.0.0.1 y 0.0.0.0

127.0.0.1significa interfaz local o dirección de bucle invertido. Solo accesible desde su localhost.

0.0.0.0 es una dirección comodín para cada interfaz.

Activado netstat -ntlp Local Addresssignifica "Imprimir conexiones TCP activas de escucha, mostrar las IP como valores numéricos y mostrar el PID y el nombre del programa que usa esta conexión".


Diferencia por ejemplo

Por ejemplo, si tengo

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

eso significa:

El servicio prog1con PID 1189escucha en el puerto 53con protocolo tcp. Solo es accesible desde su host local.

El servicio prog2con PID 1189escucha en el puerto 6666con protocolo tcp. El acceso a este puerto está permitido desde cualquier otra computadora en todas las redes de las que la computadora forma parte.

Fuentes: 1 2 3

polimero
fuente
3

0.0.0.0 significa que el proceso está vinculado a todas las interfaces.

127.0.0.1significa que el proceso está vinculado solo a la 127.0.0.1interfaz (loopback).

Si tuviera otras interfaces, podría tener x.y.z.aentradas que indiquen que el proceso estaba vinculado a esas interfaces específicas.

Solo se informará a un proceso si el tráfico llega a las interfaces a las que está vinculado, por lo que sí, es una especie de filtro, aunque generalmente no se describe en esos términos.

OchoBitTony
fuente
2

La "dirección local" es la dirección a la que está vinculado el socket en cuestión. Esta es la dirección en la que recibe conexiones. Las direcciones que está preguntando son "direcciones especiales". De acuerdo con la página del manual para el protocolo Linux IPv4 :

Hay varias direcciones especiales: INADDR_LOOPBACK( 127.0.0.1) siempre se refiere al host local a través del dispositivo loopback; INADDR_ANY ( 0.0.0.0) significa cualquier dirección de enlace; INADDR_BROADCAST ( 255.255.255.255) significa cualquier host y tiene el mismo efecto en enlace que INADDR_ANYpor razones históricas.

Lo que esto significa para la dirección 0.0.0.0es que el socket puede recibir conexiones para cualquier dirección en el sistema, en cualquier interfaz.

Dan Getz
fuente
1

Como dijiste, la IP de localhost solo acepta conexiones a esos puertos localmente, mientras que la IP 0.0.0.0 se refiere a puertos que están abiertos para todos.

Por ejemplo

Local

127.0.0.1:8307 VMWARE
127.0.0.1:25   MASTER

A todos

0.0.0.0:80    HTTP
0.0.0.0:443   SKYPE
tachomi
fuente