FritzBox Portfreigabe funktioniert nicht?
Ich will Port 3000 freigeben, das mache ich wie folgt:
Die grau angezeigte IP meines PCs stimmt mit dem Ergebnis von ipconfig überein:
Angeblich ist die Portfreigabe aktiv. Auf "übernehmen" hab ich auch schon ein paar mal gedrückt.
Meine externe IP habe ich von https://www.whatsmyip.org/, ausserdem steht sie auch 1:1 so in der Fritzbox, im obigen Bild übermalt.
Auf http://localhost:3000/ kann ich Problemlos zugreifen, aber unter http://<meine externe IP>:3000/ ist nichts erreichbar. Laut https://www.whatismyip.com/port-scanner/ ist der Port geschlossen.
Warum?
Was mache ich falsch?
4 Antworten
Du machst gar nichts falsch. Dein Provider ist Hansenet/Telefonica/O2. Du hast einen DS-Lite-Anschluss. Deine IP-Adresse, die Du auf dem Router siehst, liegt wahrscheinlich zwischen 100.64.0.0 und 100.127.255.255. Mit whatismyip.com wirst Du eine andere IPv4-Adresse sehen. Da kann die Portfreigabe für IPv4 nicht funktionieren. Du kannst IPv6 verwenden.
Danke für die Rückmeldung. Dann ist das Problem ja gelöst. Ich hatte die Information, dass O2 DS-Lite macht. War wohl eine Fehlinformation.
Was für ein Dienst hängt hinter Port 3000? Ist er nur über localhost erreichbar oder kannst du auch über die (lokale) IP darauf zugreifen?
Wenn letzteres nicht gegeben ist, kann auch nicht über das Internet darauf zugegriffen werden
Muss ich bei der Applikation als IP also 0.0.0.0 oder meine Lokale IP angeben, anstatt nur 127.0.0.1?
Muss ich bei der Applikation als IP also 0.0.0.0 oder meine Lokale IP angeben, anstatt nur 127.0.0.1?
Da ich annehme, dass du damit den Listener meinst:
Ja. localhost ist eben genau das: Die lokale Maschine selbst. Niemand sonst kann drauf zugreifen.
0.0.0.0 würde bedeuten, dass auf alle IPv4-Adressen auf der lokalen Maschine gehört wird. Bei der IPv4 des Gerätes selbst wird eben nur auf die IPv4 selbst gehört, dafür solltest du sie aber statisch machen
Sollte man hier nicht den Port 3000 für Eingang und Ausgang eintragen ? Also nicht nur TCP sondern auch UDP für ausgehende Antworten
UDP hat doch nix mit Eingang und Ausgang zu tun, das ist einfach nur ein komplett anderes Format zur Datenübertragung. HTTP ist TCP-only.
Funktioniert der Zugriff auch über die lokale IP? Das klingt sehr danach, dass der Server nur auf der Loopback Adresse läuft.
Über http://192.168.178.26:3000/ kann ich nicht zugreifen. Über http://localhost:3000/ schon.
Wo kommt die Adresse jetzt her? Die lokale Adresse ist doch 192.168.178.26:3000, geht es darüber?
Dann wird der Server falsch konfiguriert sein.
Manche haben eine Option das sie z.B. nur Zugriffe von dem selben System erlauben eben über die Loopback-Adresse.
Was ist es denn für ein Server?
Ah ok, wenn es darüber nicht geht bringt die Portfreigabe auch nichts.
Ein einfacher Test wäre zunächst mal die Firewall auszumachen falls eine aktiv ist. Ansonsten schau mal über welche Adresse der Port lokal geöffnet ist. Unter Windows geht das mit "netstat -ab" und unter Linux und OSX mit "lsof -i :3000", in beiden Fällen sind Administratorrechte notwendig.
Die Adresse sollte 0.0.0.0 (-> Akzeptiert auf allen Adressen) oder die lokale IP sein.
Ein ViteJS Server.
Sehe grad, dass man eine Config erstellen kann und das da ändern kann, oder mit --host. Mal schauen ob's dann klappt.
Das wird der Entwicklungsserver sein, der läuft aus Sicherheitsgründen nur auf der Loopback Adresse. Ich würde darüber keine Webseite im Internet anbieten auch wenn es mit der --host Option möglich ist.
Der Build Befehl wird dir entsprechende Dateien liefern, welche du dann über einen gewöhnlichen Webserver (nginx, apache2, IIS) bereitstellen kannst. Die laufen dann standardmäßig auch auf allen Adressen.
Ich habe keine IPv6.
Nein, die Adresse die ich im Router sehe, und die die ich auf whatismyip sehe, stimmen überein. Beginnt mit 95 übrigens.
Es lag daran, was die anderen gesagt haben. Meine Applikation lief nur über die Loopback Adresse. Hab das jetzt auf 0.0.0.0 umgestellt, jetzt passt alles.