Was ist der Unterschied zwischen 0.0.0.0, 127.0.0.1 und localhost?
Ich bin mit Jekyll
und Vagrant
auf meinem mac. Ich fand, dass Jekyll server
gebunden wird 0.0.0.0:4000
statt 127.0.0.1:4000
. Auch gem server
binden an diese Adresse standardmäßig. Ich kann mich noch besuchen es über http://localhost:port
. Aber für Jekyll
es scheint, dass die default-Einstellung (z.B. 0.0.0.0:4000) erfordert Internet-Zugang. Ich kann nicht laufen Jekyll server
ohne Internet. Ist es ein kleiner bug?
Benutze ich auch Vagrant
. Ich habe port-forwarding eingestellt(8080 => 4000) im Vagrantfile, da ich installieren Jekyll
im Vagrant
virtuellen Maschine und testen Sie es unter Macintosh. Wenn ich die Standardeinstellung zu verwenden (0.0.0.0:4000), funktioniert es. Die ich besuchen kann es aus meiner safari mit http://localhost:8080
. Aber wenn es nicht internet ist, kann ich nicht bind to 0.0.0.0:4000. Ich benutze jekyll server -H 127.0.0.1
zu binden service 127.0.0.1:4000
anstelle, dann kann ich nicht besuchen, es über http://localhost:8080
.
Kann jemand erklären Sie den Unterschied zwischen 0.0.0.0, 127.0.0.1 und localhost? Und kann jemand erklären, warum der Unterschied wird dieses problem verursachen?
InformationsquelleAutor der Frage Ciel | 2013-12-26
Du musst angemeldet sein, um einen Kommentar abzugeben.
127.0.0.1
ist normalerweise die IP-Adresse zugewiesen, die "loopback"-oder " local-Schnittstelle. Dies ist ein "fake" network-adapter, die nur die Kommunikation innerhalb der gleichen host. Es wird oft verwendet, wenn ein Netzwerk-fähigen Anwendung zu, dienen nur dazu Kunden auf dem gleichen host. Ein Prozess, der hört auf127.0.0.1
für verbindungen empfangen nur lokale verbindungen an diesem socket."localhost" ist in der Regel der hostname für die
127.0.0.1
IP-Adresse. Es ist in der Regel festgelegt in/etc/hosts
(oder Windows-äquivalent namens "hosts" irgendwo unter%WINDIR%
). Sie können es verwenden, genau wie jeder andere hostname - versuchen Sie "ping localhost" zu sehen, wie es behebt127.0.0.1
.0.0.0.0
hat ein paar verschiedene Bedeutungen, aber in diesem Zusammenhang, wenn ein server gesagt, zu hören auf0.0.0.0
das bedeutet, "hören Sie auf jedem verfügbaren Netzwerk-Schnittstelle". Den loopback-adapter mit IP-Adresse127.0.0.1
aus der Perspektive der server-Prozess sieht genauso aus wie alle anderen Netzwerk-adapter auf der Maschine, also einem server gesagt, zu hören auf0.0.0.0
akzeptiert verbindungen auf dieser Schnittstelle zu.Hoffentlich Antworten die IP-Seite zu Ihrer Frage. Ich bin nicht vertraut mit Jekyll oder Gast, aber ich vermute, dass deine port-Weiterleitung
8080 => 4000
ist irgendwie gebunden an einen bestimmten Netzwerk-adapter, so dass es nicht im Weg, wenn Sie die Verbindung lokal auf127.0.0.1
InformationsquelleAutor der Antwort Captain Pedantic
In der aktuellen version von Jekyll, ist es standardmäßig http://127.0.0.1:4000/.
Das ist gut, wenn Sie mit einem Netzwerk verbunden sind, aber nicht wollen, dass jemand anderes Zugriff auf Ihre Anwendung.
Allerdings kann es passieren, dass Sie möchten, um zu sehen, wie Ihre Anwendung ausgeführt wird, auf einem Handy oder von einem anderen laptop/computer.
In diesem Fall können Sie
Diese bindet Ihre Anwendung, um die host & Nächstes verwenden Sie folgende Verbindung, um es von einem anderen host
InformationsquelleAutor der Antwort Sanyam Jain