Ich denke, Sie haben Ihre eigene Frage beantwortet.
Hat zum Beispiel apache
eine Listen
Option, die angibt, welche Adresse und welcher Port abgehört werden sollen. Je nachdem, wie dies eingestellt ist, apache
wird 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 localhost
Benutzeroberfläche abgehört wird, wenn keine externen Benutzer darauf zugreifen sollen. Wenn Sie beispielsweise einen LAMP-Server betreiben, müssen Sie apache
alle IP-Adressen abhören (damit Ihre Benutzer darauf zugreifen können), während eine mysql
Datenbank so konfiguriert werden kann, dass sie nur von localhost
(unter Verwendung ihrer bind=127.0.0.1
Direktive) zugänglich ist . Auf diese Weise kann php
auf demselben Server auf die Datenbank zugegriffen werden, während externe (und nicht vertrauenswürdige) Benutzer nicht darauf zugreifen können.
:::80
bedeutet nicht immer auch IPv4. unix.stackexchange.com/a/496150/333382127.0.0.1 und 0.0.0.0
127.0.0.1
bedeutet 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 Address
bedeutet, 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
das bedeutet:
Der Dienst
prog1
mit PID1189
überwacht den Port53
mit Protokolltcp
. Es ist nur von Ihrem lokalen Host zugänglich.Der Dienst
prog2
mit PID1189
überwacht den Port6666
mit Protokolltcp
. 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
quelle
0.0.0.0
bedeutet, dass der Prozess an alle Schnittstellen gebunden ist.127.0.0.1
bedeutet, dass der Prozess nur an die127.0.0.1
Schnittstelle gebunden ist (Loopback).Wenn Sie andere Schnittstellen hatten, haben Sie möglicherweise
x.y.z.a
Einträ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.
quelle
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 :
Für die Adresse bedeutet dies,
0.0.0.0
dass der Socket Verbindungen für jede Adresse im System und für jede Schnittstelle empfangen kann.quelle
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
An alle
quelle