Ook so seltsame Situation.
Ich versuche, einen Server-Socket in einem Python-Programm auszuführen (ein bisschen Code macht mir keine Sorgen). Damit es 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 auf dieser Website für meinen Router weitergeleitet: http://portforward.com/
Wenn ich den PFPortChecker (Teil von PFNetworkUtilites, ebenfalls von dieser Site) verwende, heißt es, dass der von mir weitergeleitete Port in der Tat sowohl für TCP- als auch für UDP-Protokolle offen ist. Wenn ich jedoch Online-Port-Prüfseiten verwende, erhalte ich ein negatives Ergebnis. Außerdem kann ich keine Verbindung von externen Geräten zu dem Programm herstellen, das ich erstellt habe, obwohl es in der Vergangenheit funktioniert hat, als ich dieses Portweiterleitungsproblem nicht hatte.
Ich habe einen Technicolor TG582n FTTC-Router und habe eine benutzerdefinierte Anwendung erstellt und sie mit dem Toolbox-Dienstprogramm meinem Netzwerkgerät zugewiesen.
Eine Site hat angegeben, dass mein Port möglicherweise von meiner Firewall gefiltert wurde, als ich darauf getestet habe. Als ich jedoch meine Firewall vollständig deaktiviert und den Test auf dieser Site erneut ausgeführt habe, wird weiterhin angegeben, dass mein Port gefiltert wurde und andere Sites weiterhin negativ waren.
quelle
Antworten:
Dies ist wirklich leicht zu beheben.
Stellen Sie zunächst sicher, dass das Programm auf dem Port ausgeführt wird. So machen Sie den Befehl
C:\>netstat -aon <ENTER>
oder
C:\>netstat -aon | find "1234"<ENTER>
<--- wenn Ihr Port Port 1234 istSehen Sie, dass es 0.0.0.0:1234 zeigt
Sie können jederzeit einen Server auf dem Port starten, z. B. nc in cygwin,
nc -l 1234
oder Sie können einen beliebigen Server ausprobieren. BRS Webweaver, BPFTP, Apache, ssh VNC, was immer Ihr Server ist. Ihr Serverprogramm ist in Ordnung.Versuchen Sie nun, eine Verbindung zu Ihrem Server herzustellen. Sie könnten Telnet verwenden. Telnet-IP-Port zB
telnet 192.168.1.1 1234
Telnet-Client in Win7 muss aktiviert sein. Oder Sie können mit cygwin den Befehl nc verwenden, um eine Verbindung zu einem Server herzustellen. So sehennc 192.168.1.1 1234
Sie, ob es verbindet.Überprüfen Sie, ob Sie vom Computer aus eine Verbindung herstellen können
nc 127.0.0.1 1234
Sobald Sie getestet haben, dass Sie eine Verbindung von Ihrem LAN aus herstellen können.
Erst wenn Sie eine Verbindung von Ihrem LAN aus herstellen können, führen Sie die Portweiterleitung durch.
Mit Blick auf die Beschreibung des Programms , das Sie erwähnen http://portforward.com/help/portcheck.htm Sie sagt , sie ihr eigenes Programm auf dem Port macht Sie testen. Wenn Sie also feststellen, dass Sie grünes Licht erhalten, Online-Port-Scanner jedoch nicht, lauscht Ihr Programm möglicherweise nicht an einem Port.
Sie müssen testen
quelle