Ich verwende einen Laptop, der an einen Router angeschlossen ist, der mit dem Internet verbunden ist. Die öffentliche IP des Routers ist keine der IPs, die für private Netzwerke verwendet werden (https://en.m.wikipedia.org/wiki/Privates_Netzwerk), und ich kann die virtuellen Server-/NAT-Weiterleitungseinstellungen des Routers bearbeiten.
Ich habe den auf dem externen Port 1200 des Routers empfangenen Datenverkehr an die private IP-Adresse meines Laptops weitergeleitet (derselbe Port). Ich habe einen Cheroot-Server (Cherrypy), der auf Port 1200 lauscht.
Ein lsof-Befehl bestätigt, dass Cheroot auf 1200 lauscht und mit der richtigen Python-Datei initialisiert wurde.
Wenn ich die private IP-Adresse meines Routers (192.168.0.1) nach offenen Ports durchsuche, ist 1200 keiner der offenen Ports (was aufgrund von Bodos Kommentar zu erwarten war und was ich jetzt verstehe).
Mein Router hat eine IPv4- und IPv6-SPI-Firewall aktiviert.
Ich habe meinem Domänennamen-Provider einen A-Eintrag hinzugefügt, der auf die öffentliche IP meines Routers verweist, und einen SRV-Eintrag, der auf den externen Port meines Routers (1200) verweist.
Allerdings ist die Website, auf die ich zugreifen möchte, nicht erreichbar (der Server hat zu lange gebraucht, um zu antworten, die Website kann nicht erreicht werden). Ich habe versucht,https://canyouseeme.orgum zu sehen, ob Port 1200 geöffnet ist, wenn ich die öffentliche IP meines Routers aufrufe, erhalte ich die Antwort „Verbindungszeitüberschreitung“.
Zusätzliche Einzelheiten, unsicher, ob sie relevant sind oder nicht:
- Ich habe dann ein Python-Port-Scan-Skript verwendet, meinen Laptop mit einem Hotspot verbunden, das Skript ausgeführt und nach allen offenen Ports auf der öffentlichen IP meines Routers gesucht. Null offene Ports.
- Der Cheroot-Server stellt meine App problemlos im lokalen, privaten Netzwerk bereit.
- Ich habe gerade Nmap installiert und kann es kaum erwarten, es zu benutzen. :-)
- Ein Traceroute zur privaten IP des Routers während einer Verbindung mit dem Router funktioniert wie erwartet. Wenn ich jedoch einen 4G-Hotspot von meinem Telefon aus verwende, schlägt ein Traceroute von meinem Laptop zur öffentlichen IP des Routers fehl.
- Ich habe versucht, bei ausgeschalteten Firewalls auf die Site zuzugreifen, aber das hat nicht geholfen.
Kann mir jemand helfen zu verstehen, was ich hier übersehe?
Gibt es vielleicht eine Möglichkeit, ein Netstat auf dem Router auszuführen? Ich habe das Gefühl, dass die Portweiterleitung nicht wirklich wirksam ist oder eingehende Verbindungen blockiert sind. Wie bewerte ich eine dieser Möglichkeiten?
Update: Mein Router befindet sich hinter einem anderen ISP-Router. Die IP des Routers in seinem Admin-Bereich stimmt nicht mit meiner öffentlichen IP überein.
Das war’s dann wohl. Der ISP muss jetzt aufgefordert werden, die Portweiterleitung zu meinem Router zu aktivieren? Doppeltes NAT? Außer so etwas wie ngrok gibt es keine andere Lösung, oder?
Antwort1
Wenn ich die private IP-Adresse meines Routers (192.168.0.1) nach offenen Ports durchsuche, ist 1200 keiner der offenen Ports.
Das ist völlig normal. Die Portweiterleitung aka Destination NAT funktioniertvon der öffentlichen WAN-IP-Adresse. Sie müssen es von außerhalb Ihres LANs mit der öffentlichen IP-Adresse des Routers versuchen. Stellen Sie außerdem sicher, dass Sie die lokale Firewall des Laptops so konfiguriert haben, dass diese Verbindung zugelassen wird.
Wenn alles fehlschlägt, ist entweder die Portweiterleitung des Routers defekt, oder es gibt eine Firewall-Funktion auf dem Router, die Sie ebenfalls konfigurieren müssen, oder Ihr ISP blockiert eingehende Verbindungen.