Bedeutung der lokalen Adressspalte von Netstat


20

Wenn ich es tue, netstat -ntlpgibt es eine Spalte mit dem Namen Local Address:

  • manchmal gab es die IP-Adresse als aus 0.0.0.0:7180
  • und manchmal 127.0.0.1:9001

Was bedeuten beide Notationen?

Wirkt eine bestimmte IP-Adresse wie ein Filter für eingehende Verbindungen? ZB dafür 127.0.0.1:9001werden nur Verbindungen von localhost auf Port 9001 akzeptiert?

Antworten:


13

Ich denke, Sie haben Ihre eigene Frage beantwortet.

Hat zum Beispiel apacheeine ListenOption, die angibt, welche Adresse und welcher Port abgehört werden sollen. Je nachdem, wie dies eingestellt ist, apachewird auf einer beliebigen IP-Adresse eine bestimmte Adresse abgehört: -

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

Die oben genannten Optionen werden angezeigt als: -

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

und übersetzen zu: -

  • Beliebige IP-Adresse abhören (IPv4 oder IPv6)
  • Überwachen Sie eine beliebige IPv4-Adresse auf diesem Server
  • Lauschen Sie nur auf IPv4 localhost
  • Lauschen Sie der externen IPv4-Adresse 192.68.0.5

Sie können Ihren Dienst so konfigurieren, dass nur die localhostBenutzeroberfläche abgehört wird, wenn keine externen Benutzer darauf zugreifen sollen. Wenn Sie beispielsweise einen LAMP-Server betreiben, müssen Sie apachealle IP-Adressen abhören (damit Ihre Benutzer darauf zugreifen können), während eine mysqlDatenbank so konfiguriert werden kann, dass sie nur von localhost(unter Verwendung ihrer bind=127.0.0.1Direktive) zugänglich ist . Auf diese Weise kann phpauf demselben Server auf die Datenbank zugegriffen werden, während externe (und nicht vertrauenswürdige) Benutzer nicht darauf zugreifen können.


:::80bedeutet nicht immer auch IPv4. unix.stackexchange.com/a/496150/333382
rfc2460

11

127.0.0.1 und 0.0.0.0

127.0.0.1bedeutet lokale Schnittstelle oder Loopback-Adresse. Nur erreichbar von Ihrem localhost.

0.0.0.0 ist eine Wildcard-Adresse für jede Schnittstelle.

Ein netstat -ntlp Local Addressbedeutet, dass "Active Listening-TCP-Verbindungen drucken, IPs als numerische Werte anzeigen und die PID und den Namen des Programms anzeigen, das diese Verbindung verwendet."


Unterschied durch Beispiel

ZB wenn ich habe

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

das bedeutet:

Der Dienst prog1mit PID 1189überwacht den Port 53mit Protokoll tcp. Es ist nur von Ihrem lokalen Host zugänglich.

Der Dienst prog2mit PID 1189überwacht den Port 6666mit Protokoll tcp. Der Zugriff auf diesen Port ist von jedem anderen Computer in allen Netzwerken möglich, zu denen der Computer gehört.

Quellen: 1 2 3


3

0.0.0.0 bedeutet, dass der Prozess an alle Schnittstellen gebunden ist.

127.0.0.1bedeutet, dass der Prozess nur an die 127.0.0.1Schnittstelle gebunden ist (Loopback).

Wenn Sie andere Schnittstellen hatten, haben Sie möglicherweise x.y.z.aEinträge, die angeben, dass der Prozess an diese spezifischen Schnittstellen gebunden war.

Ein Prozess wird nur angezeigt, wenn der Datenverkehr an den Schnittstellen ankommt, an die er gebunden ist. Ja, es handelt sich also um eine Art Filter, obwohl er normalerweise nicht in diesen Begriffen beschrieben wird.


2

Die "lokale Adresse" ist die Adresse, an die der betreffende Socket gebunden ist. Dies ist die Adresse, unter der Verbindungen empfangen werden. Die Adressen, nach denen Sie fragen, sind "spezielle Adressen". Laut Handbuchseite für das Linux IPv4-Protokoll :

Es gibt mehrere spezielle Adressen: INADDR_LOOPBACK( 127.0.0.1) bezieht sich immer auf den lokalen Host über das Loopback-Gerät; INADDR_ANY ( 0.0.0.0) bezeichnet eine beliebige Adresse zum Binden; INADDR_BROADCAST ( 255.255.255.255) bedeutet einen beliebigen Host und hat INADDR_ANYaus historischen Gründen die gleichen Auswirkungen auf die Bindung .

Für die Adresse bedeutet dies, 0.0.0.0dass der Socket Verbindungen für jede Adresse im System und für jede Schnittstelle empfangen kann.


1

Wie Sie sagten, akzeptiert die IP von localhost nur Verbindungen zu diesen Ports lokal, während sich die IP 0.0.0.0 auf Ports bezieht, die für alle offen sind.

Beispielsweise

Lokal

127.0.0.1:8307 VMWARE
127.0.0.1:25   MASTER

An alle

0.0.0.0:80    HTTP
0.0.0.0:443   SKYPE
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.