significato della colonna dell'indirizzo locale di Netstat


20

Quando io faccio netstat -ntlp c'è una colonna chiamata Local Address:

  • a volte emetterebbe l'indirizzo IP come 0.0.0.0:7180
  • e qualche volta 127.0.0.1:9001

Quali sono le implicazioni di entrambe le notazioni?

L'indirizzo IP specifico si comporta come un filtro per le connessioni in entrata? Ad esempio 127.0.0.1:9001, accetterà connessioni solo da localhost sulla porta 9001?

Risposte:


13

Penso che tu abbia risposto alla tua stessa domanda.

Ad esempio, apacheha Listenun'opzione che gli dice su quale indirizzo e porta ascoltare. A seconda di come è impostato, apacheascolterà su qualsiasi indirizzo IP, un indirizzo specifico: -

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

Le opzioni sopra riportate vengono visualizzate come: -

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

e tradurre in: -

  • Ascolta su qualsiasi indirizzo IP (IPv4 o IPv6)
  • Ascolta su qualsiasi indirizzo IPv4 su quel server
  • Ascolta solo su localhost IPv4
  • Ascolta su indirizzo IPv4 esterno 192.68.0.5

È possibile configurare il servizio in modo che ascolti solo l' localhostinterfaccia se non si desidera che nessuno esterno acceda ad esso. Ad esempio, se stai eseguendo un server LAMP avresti in apacheascolto su tutti gli indirizzi IP (in modo che i tuoi utenti possano accedervi) mentre un mysqldatabase potrebbe essere configurato per essere accessibile solo da localhost(usando la sua bind=127.0.0.1direttiva). In questo modo l' phpesecuzione sullo stesso server sarà in grado di accedere al database mentre gli utenti esterni (e non attendibili) non saranno in grado di accedervi.


:::80non implica sempre anche IPv4 unix.stackexchange.com/a/496150/333382
rfc2460

11

127.0.0.1 e 0.0.0.0

127.0.0.1indica l'interfaccia locale o l'indirizzo di loopback. Accessibile solo dal tuo localhost.

0.0.0.0 è un indirizzo jolly per ogni interfaccia.

On netstat -ntlp Local Addresssignifica "Stampa connessioni tcp in ascolto attivo, mostra gli IP come valori numerici e mostra il PID e il nome del programma che utilizza questa connessione."


Differenza per esempio

Ad esempio, se l'ho fatto

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

questo significa:

Il servizio prog1con PID è in 1189ascolto sulla porta 53con protocollo tcp. È accessibile solo dal tuo host locale.

Il servizio prog2con PID è in 1189ascolto sulla porta 6666con protocollotcp . L'accesso a questa porta è consentito da qualsiasi altro computer su tutte le reti di cui fa parte il computer.

Fonti: 1 2 3


3

0.0.0.0 significa che il processo è associato a tutte le interfacce.

127.0.0.1indica che il processo è associato solo 127.0.0.1all'interfaccia (loopback).

Se avessi altre interfacce potresti avere x.y.z.avoci che indicano che il processo era associato a quelle interfacce specifiche.

Un processo verrà detto solo se il traffico arriva sulle interfacce a cui è associato, quindi sì, è una specie di filtro, sebbene di solito non sia descritto in quei termini.


2

L '"indirizzo locale" è l'indirizzo al quale è associato il socket in questione. Questo è l'indirizzo su cui riceve le connessioni. Gli indirizzi di cui stai chiedendo sono "indirizzi speciali". Secondo la pagina di manuale per il protocollo IPv4 di Linux :

Esistono diversi indirizzi speciali: INADDR_LOOPBACK( 127.0.0.1) si riferisce sempre all'host locale tramite il dispositivo di loopback; INADDR_ANY ( 0.0.0.0) indica qualsiasi indirizzo per vincolante; INADDR_BROADCAST ( 255.255.255.255) indica qualsiasi host e ha lo stesso effetto sul bind INADDR_ANYdi motivi storici.

Ciò che ciò significa per l'indirizzo 0.0.0.0è che il socket può ricevere connessioni per qualsiasi indirizzo sul sistema, su qualsiasi interfaccia.


1

Come hai detto, l'IP di localhost accetta connessioni a tali porte solo localmente mentre l'IP 0.0.0.0 fa riferimento a porte aperte a tutti.

Per esempio

Locale

127.0.0.1:8307 VMWARE
127.0.0.1:25   MASTER

A tutti

0.0.0.0:80    HTTP
0.0.0.0:443   SKYPE
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.