Ich weiß, dass 127.0.0.1 ~ 127.255.255.254 die Loopback-IP-Adressen für die meisten modernen Betriebssysteme sind, und diese IP-Adressen können verwendet werden, um auf unseren eigenen Computer zu verweisen.
Aber was ist 0.0.0.0? Anscheinend bezieht es sich auch auf den lokalen Computer. Wo liegt also der Unterschied ?
Und könnten Sie mir die folgenden IP-Verbindungen erklären:
ip
ip-address
netstat
Jichao
quelle
quelle
::1
als Loopback-Adresse verwenden.Antworten:
Das Einzige, was Sie nicht sagen, ist, dass "nicht alle Adressen Zugriff haben sollten". Dies geschieht in Ihren Firewalls und / oder der Serversoftware und / oder in anderen Sicherheitsebenen wie tcpwrappers.
0.0.0.0 bedeutet in diesem Zusammenhang "alle IP-Adressen auf dem lokalen Computer" (in der Tat wahrscheinlich "alle IPv4-Adressen auf dem lokalen Computer"). Wenn Ihr Webserver-Rechner also zwei IP-Adressen hat, 192.168.1.1 und 10.1.2.1, und Sie einem Webserver-Daemon wie apache erlauben, 0.0.0.0 abzuhören, ist er unter diesen beiden IP-Adressen erreichbar. Aber nur, was kann diese IP-Adressen und den Web-Port (s) kontaktieren.
Beachten Sie, dass in einem anderen Kontext (Routing) 0.0.0.0 normalerweise die Standardroute bedeutet (die Route zum "Rest" des Internets, abgesehen von Routen in Ihrem lokalen Netzwerk usw.).
quelle
0.0.0.0
bedeutet die Standardroute nur, wenn sie mit einem Präfix/0
(oder einer Netzmaske0.0.0.0
) versehen istWenn ein Dienst 0.0.0.0 überwacht, bedeutet dies, dass er alle konfigurierten Netzwerkschnittstellen überwacht. Wenn er 127.0.0.1 überwacht, ist der Dienst nur an die Loopback-Schnittstelle gebunden (nur auf dem lokalen Computer verfügbar).
quelle
Die IP-Adresse
0.0.0.0
kann je nach Verwendungszweck sehr unterschiedliche Bedeutungen haben.0.
).netstat
Befehls (nach der Sie gefragt haben) heißt es schließlich, dass ein bestimmter Socket alle verfügbaren IP-Adressen abhört, über die der Computer verfügt. Wenn ein Computer mehr als eine IP-Adresse hat, kann ein Socket nur an ein bestimmtes Adress- und Portpaar oder an einen Port und alle Adressen gebunden werden . Wenn Sie dort eine IP-Adresse sehen, bedeutet dies, dass der Socket nur diesen Port und diese bestimmte Adresse überwacht. Wenn Sie sehen0.0.0.0
, bedeutet dies, dass dieser Port an allen Adressen des Computers abgehört wird, einschließlich der Loopback-Adresse (127.0.0.1
).quelle
ping 0.0.0.0
auf einem Windows-System zu arbeiten, wird eine Fehlermeldung angezeigt.curl 0.0.0.0
ergibt sichconnection refused
auf Arch Linux.ping 0.0.0.0
Andererseits scheint es sich um einen Alias zu handeln, fürping 127.0.0.1
den alles in Ordnung ist.connection refused
könnte daran liegen, dass Curl standardmäßig versucht, eine Verbindung zu Port 80 / TCP herzustellen . Versuchen Sie , Ihre offene Ports mit zu findennmap -sV localhost
und dann zB wenn 631 / tcp:curl 0.0.0.0:631
.Die Antwort von Lee B ist richtig, aber hier sind einige relevante RFCs für den Fall, dass Sie interessiert sind.
0.0.0.0:
In RFC1122 , Abschnitt 3.1.2.3:
Nur das, "dieser Host in diesem Netzwerk" ... wie die Antwort von Lee B besagt, werden alle verfügbaren IP-Adressen auf Ihrem Host übersetzt. Durch das Hosten eines Dienstes unter 0.0.0.0 wird dieser Dienst automatisch auf jeder adressierbaren Schnittstelle gehostet.
127.0.0.1:
Von RFC5735 :
Der Unterschied zwischen 0.0.0.0 und der Loopback-Adresse 127.0.0.1 besteht darin, dass die Loopback-Adresse eine voll funktionsfähige IP-Schnittstelle innerhalb des Hosts selbst ermöglicht, unabhängig davon, wie der Rest des Netzwerk-Setups gegebenenfalls aussieht. An das Loopback-Gerät gesendeter Datenverkehr wird sofort empfangen. Es ist nicht so sehr, dass das Loopback-Netzwerk auf Ihren eigenen Host "verweist". Es ist eher so, als hätten Sie ein Mini-Netzwerksegment in Ihrem Host, das Geräte, Prozesse und Sockets öffnen und eine Verbindung herstellen kann.
quelle
In einfachen Worten: Mit 0.0.0.0 zuhören bedeutet, von jedem Ort aus zuzuhören, der über Netzwerkzugriff auf diesen Computer verfügt, z. B. von diesem Computer aus, über ein lokales Netzwerk oder über das Internet. Mit 127.0.0.1 zuhören bedeutet, nur von diesem Computer aus zuzuhören
quelle