Ist das Abhören eines Ports auf dem lokalen Host eines Servers dasselbe wie das Abhören dieses Ports der öffentlichen IP-Adresse des Servers?


7

Ich habe eine kostenlose Amazon EC2-Instanz eingerichtet, um eine Node-App außerhalb meiner localhost-Umgebung zu verwenden.

Der Instanz wird beim Start eine öffentliche IP-Adresse zugewiesen, meine lautet beispielsweise 54.187.31.42. Bedeutet dies, dass http://localhost:8080der Server auf die Verbindungen unter wartet, wenn ich in meinem auf dem EC2 gestarteten Node-Programm auf Verbindungen lausche 54.187.31.42:8080?

Oder steckt mehr dahinter?

Antworten:


10

Nein, auf Listening-Sockets auf localhost( 127.0.0.1oder ::1auf IPv6-fähigen Systemen) kann nur von demselben System aus zugegriffen werden, auf dem sie erstellt wurden.

Um ein Programm so zu konfigurieren, dass es alle Schnittstellen überwacht, verwenden Sie normalerweise 0.0.0.0oder ::. Laut einer schnellen Google-Suche sollte dies auch für node.js gelten.


2
Beachten Sie, dass es oft als Best Practices angesehen wird, / nicht zu verwenden , da diese häufig nicht "zukunftssicher" sind. Das heißt, besser als 9 von 10 ist es kein wirkliches Problem. Denken Sie daran, wenn Sie später eine zweite IP hinzufügen und sich dann fragen, warum ein zweiter Webserver nicht darauf starten kann. 0.0.0.0::
Kromey

Das stimmt sicherlich. Für dynamische IP-Setups wie EC2 gibt es jedoch keinen anderen einfachen Weg.
Daniel B

Erwähnenswert ist auch, dass es bei der Konfiguration Ihrer App zum Abhören 0.0.0.0immer noch Firewalls wie Iptables geben kann, die den Port für die Außenwelt blockieren, oder in Ihrem Fall gibt es definitiv eine Firewall zwischen Ihrer EC2-Instanz und der Außenwelt , in dem Sie die Weiterleitung an den Port in der Amazon-Verwaltungskonsole aktivieren müssen.
r1pp3rj4ck
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.