Ich bin nicht der kenntnisreichste Typ, der jemals mit Networking zu tun hatte, aber hier ist ...
Ich habe eine Anwendung mit NodeJS erstellt und möchte die Anwendung mit meiner Familie in meinem LAN testen. Die Anwendung lauscht auf Port 1337
für Verbindungen und ich kann die Anwendung fein durch meinen eigenen PC durch Eingabe zugreifen localhost:1337
, 192.168.0.3:1337
oder sogar http://joel-pc:1337/
in meine Browser-Adressleiste.
Ich werde neben NodeJS auch Apache ausführen, und ich kann darauf zugreifen, indem ich 192.168.0.3
oder http://joel-pc/
in die Adressleiste eines Browsers tippe, solange es mit demselben Netzwerk verbunden ist.
Hier ist der seltsame Teil; Wenn ich den Apache - Dienst beenden, meine Knoten - Anwendung ändern auf Port abzuhören 80
(http) insted 1337
, wird es auf meinem PC durch Eingabe zugänglich sein localhost
, 192.168.0.3
oder sogar http://joel-pc
in meinen Browser-Adressleiste. Ich kann jedoch auf keinem anderen PC in meinem Netzwerk als meinem eigenen auf NodeJS zugreifen.
Ich habe versucht, eine ausgehende Regel in Windows 7 zu erstellen, um den Zugriff auf Port 1337 zu ermöglichen, aber ich kann auf keinem anderen PC als meinem eigenen auf meinen NodeJS-Server zugreifen, selbst wenn Port 80 überwacht wird. Ist etwas offensichtlich? Ich verpasse hier?
quelle
Antworten:
Höchstwahrscheinlich bindet Ihre Knotenanwendung an die Loopback-IP-Adresse
127.0.0.1
anstelle der "alle IPs",0.0.0.0
da dies das Standardverhalten von istlisten
. Geben Sie in Ihrem Anruf sowohl Port als auch IP anserver.listen(80, '0.0.0.0');
und versuchen Sie es erneut.quelle
localhost
funktioniert es als Zeichenfolge, in anderen müssen Sie es als127.0.0.1
Holen Sie sich die aktuelle lokale Netzwerk-IP und führen Sie den http-Server wie folgt aus:
quelle
::
oder0.0.0.0
)Zunächst müssen Sie
C:\Program Files (x86)\node
der Liste der vertrauenswürdigen Anwendungen in Ihrer Firewall hinzufügen .Dann können Sie in Ihrer Knoten-App schreiben:
oder:
oder:
oder:
oder:
oder:
Jede dieser 6 Kombinationen funktioniert in meinem Fall: node.js unter Windows Server 2016, geschützt durch einen Firmenproxy.
quelle
Das Folgende hat bei mir auf einem Windows-PC funktioniert. Versuchen Sie dies: öffnen
Suchen Sie als Nächstes in der Liste nach node.js und klicken Sie auf Einstellungen ändern> Stellen Sie sicher, dass der private Zugriff aktiviert ist, und klicken Sie dann auf OK.
quelle
Ich habe eine gute Lösung für dieses Problem gefunden. Anstatt alle Konfigurationen vorzunehmen (Firewall einstellen , Port weiterleiten usw.), habe ich localtunnel verwendet , ein Dienstprogramm zum Offenlegen des lokalen Knotenservers über das Internet. Sie können es für Entwicklungs-, Test- und Freigabezwecke verwenden, aber nicht für die Produktion.
Zuerst müssen Sie localtunnel wie folgt installieren:
Konfigurieren Sie anschließend Ihre Knoten-App so, dass Ihr Knotenserver auf localhost ausgeführt wird. Zum Beispiel:
Notieren Sie sich your_port , in meinem Fall 3000 , und starten Sie Ihren Knotenserver .
Öffnen Sie ein anderes Terminal und geben Sie den folgenden Befehl ein, um localtunnel auszuführen.
Danach erhalten Sie im Terminal eine URL, die Sie für Entwicklungs- / Testzwecke verwenden können. Diese URL wird im Internet verfügbar sein, sodass Sie sie auch mit anderen teilen können. Solange Ihr Localtunnel ausgeführt wird, können andere auf Ihren lokalen Knotenserver zugreifen.
Weitere Konfigurationsoptionen / Hilfe finden Sie in der Dokumentation: https://www.npmjs.com/package/localtunnel
quelle