Widersprüchliche Ergebnisse bei der Portweiterleitung

Widersprüchliche Ergebnisse bei der Portweiterleitung

So eine seltsame Situation.

Ich versuche, einen Server-Socket in einem Python-Programm auszuführen (ein bisschen Code, keine Sorge). Damit das funktioniert, muss ich einen Port weiterleiten, auf dem der Server ausgeführt werden kann. Ich habe den Port, den ich für meinen Code verwende, gemäß den Anweisungen weitergeleitet, die auf dieser Site für meinen Router beschrieben sind:http://portforward.com/

Wenn ich den PFPortChecker verwende (Teil von PFNetworkUtilites, ebenfalls von dieser Site), wird angezeigt, dass der von mir weitergeleitete Port tatsächlich sowohl für TCP- als auch für UDP-Protokolle geöffnet ist. Wenn ich jedoch eine beliebige Online-Site zur Portprüfung verwende, erhalte ich ein negatives Ergebnis. Außerdem kann ich von externen Geräten aus keine Verbindung zu dem von mir erstellten Programm herstellen, obwohl es früher funktioniert hat, als ich dieses Portweiterleitungsproblem nicht hatte.

Ich habe einen Technicolor TG582n FTTC-Router und habe die Portweiterleitung durchgeführt, indem ich eine benutzerdefinierte Anwendung erstellt und sie mithilfe des Toolbox-Dienstprogramms meinem Netzwerkgerät zugewiesen habe.

Eine Site hat bei einem Test tatsächlich angegeben, dass mein Port möglicherweise durch meine Firewall gefiltert wurde. Als ich meine Firewall jedoch vollständig deaktiviert und den Test auf dieser Site erneut ausgeführt habe, stand dort immer noch, dass mein Port gefiltert wurde, und bei anderen Sites war das Ergebnis immer noch negativ.

Antwort1

Das Problem lässt sich wirklich leicht beheben.

Stellen Sie zunächst sicher, dass das Programm auf dem Port läuft. Führen Sie dazu den Befehl

C:\>netstat -aon <ENTER>

oder

C:\>netstat -aon | find "1234"<ENTER> <--- wenn Ihr Port Port 1234 ist

Sehen Sie, dass es 0.0.0.0:1234 anzeigt

Sie können immer einen Server auf dem Port starten, z. B. nc in Cygwin, nc -l 1234oder Sie können jeden beliebigen Server ausprobieren. BRS Webweaver, BPFTP, Apache, ssh VNC, was auch immer Ihr Server ist. Ihr Serverprogramm ist in Ordnung.

Versuchen Sie nun, eine Verbindung zu Ihrem Server herzustellen. Sie können Telnet verwenden. Der Telnet-IP-Port, z. B. telnet 192.168.1.1 1234 der Telnet-Client in Win7, muss aktiviert sein. Oder Sie können mit Cygwin den Befehl nc verwenden, um eine Verbindung zu einem Server herzustellen. nc 192.168.1.1 1234 Sehen Sie also, ob eine Verbindung hergestellt wird.

Prüfen Sie, ob Sie direkt vom Computer aus eine Verbindung herstellen können. nc 127.0.0.1 1234

Sobald Sie dies getestet haben, können Sie von Ihrem LAN aus eine Verbindung herstellen.

Erst wenn Sie sich von Ihrem LAN aus verbinden können, führen Sie die Portweiterleitung durch.

Schauen Sie sich die Beschreibung des Programms an, das Sie erwähnenhttp://portforward.com/help/portcheck.htm Es heißt, dass es sein eigenes Programm auf dem Port erstellt, den Sie testen. Wenn Sie also feststellen, dass Ihnen ein Port grünes Licht gibt, Online-Portscanner dies jedoch nicht tun, lauscht Ihr Programm möglicherweise nicht auf einem Port.

Sie müssen testen

A)Is your server rujnning.  shown in netstat 0.0.0.0 with port.
B)Can you connect to your server locally 
C)Can you connect from LAN (if not then an OS firewall is stopping you
D)THEN, look at port forwarding

verwandte Informationen