Wie verwenden Sie die optionalen parameter hostname in Node.js server.listen()
Von dem, was ich gelesen habe in den tutorials bisher, die optional hostname
parameter server.listen(port[, hostname][, backlog][, callback])
hat immer entweder 127.0.0.1
(loopback) 0.0.0.0
( hören Sie auf alle verfügbaren Netzwerk-Schnittstelle, die Standard-option ), oder eine die tatsächlichen IP-Adressen, die dem server zur Verfügung. Alles andere wird sich geben Error: listen EADDRNOTAVAIL
. Ist, dass das ganze Bild? (Ich glaube, hostname ist technisch unterschiedlich IP,...)
War ich nicht in der Lage, herauszufinden, viel über ihn aus der doc...
Du musst angemeldet sein, um einen Kommentar abzugeben.
So müssen Sie einen auflösbaren DNS-host-Namen für diese zu arbeiten. Für ein kurzes Beispiel, ich bearbeitet die
/etc/hosts
include-Datei den folgenden Eintrag:dann habe ich gespült, den der resolver-cache mit der guten alten
dscacheutil -flushcache
und verwendet das folgende Stück code in einem einfachen Node.js server.Und sicher genug, es funktioniert.
Den Fehler
EADDRNOTAVAIL
bedeutet, dass es auflösbar ist, aber nicht verfügbar; jetzt, um in der Lage zu binden, sollte es gebunden werden (zur Verfügung) als gut.Können Sie eine
lsof -i TCP
zu überprüfen, wo es ist gebunden.Aber ich sehe nicht ein, warum Sie zu binden die server anderswo; die Bindung an die loopback ist die beste Praxis.
Yeah, also ist es eigentlich eine Sicherheitslücke; wenn Sie binden Sie es an alle verfügbaren Schnittstellen
0.0.0.0
, was Sie im Grunde sagen ist, dassListen to every available network interface there is
. Dies kann ein Sicherheitsrisiko vulnerebility wie kann es binden, zu Adaptern, die Sie nicht wollen, dass es auf; ich habe aus Erster hand Erfahrungen mit dieser, während die Bereitstellung einer RoR-Anwendung.Den
0.0.0.0/0
Subnetz ist eine sehr ausgefallene Art zu sagen:these are all the network interfaces I have on this computer
, während127.0.0.1
ist IMMER der lokalen Schnittstelle. Wenn Sie binden Sie diese zu, Sie loszuwerden, ein paar Sicherheitsprobleme. Einer davon kann sein, dass der "hacker" versucht zu befestigen, die einen listener auf alle Schnittstellen, und wenn Sie don ' T haben eine sehr strikte firewall, irgendwo oder andere, dass ein Leck vorhanden sein können.Dies ist nicht eine Regel als solche, sondern nur einer besten Praxis.
P. S.: Der code ist ein Ausschnitt ich zog aus Modul' blog; es ist schnell, wenn ich will, etwas auszuprobieren.
0.0.0.0
ist der Weg zu gehen... ich bin mal gespannt, Wann/warum binden die server woanders, daher die Frage 🙂