うわー、とても奇妙な状況だ。
私は、Python プログラムでサーバー ソケットを実行しようとしています (コードの一部なので、心配しないでください)。これを機能させるには、サーバーが実行されるポートを転送する必要があります。私は、自分のルーターのこのサイトで説明されている手順に従って、コードに使用しているポートを転送しました。http://portforward.com/
PFPortChecker (PFNetworkUtilites の一部、このサイトからも入手可能) を使用すると、転送したポートは TCP プロトコルと UDP プロトコルの両方で実際に開いていると表示されます。ただし、オンラインのポート チェック サイトを使用すると、否定的な結果が表示されます。さらに、このポート転送の問題が発生していなかったときは動作していたにもかかわらず、外部デバイスから作成したプログラムに接続できません。
私は Technicolor TG582n FTTC ルーターを持っており、カスタム アプリケーションを作成し、ツールボックス ユーティリティを使用してネットワーク デバイスに割り当てることでポート転送を行いました。
あるサイトでテストしたときに、ポートがファイアウォールによってフィルタリングされた可能性があると表示されましたが、ファイアウォールを完全に無効にしてそのサイトでテストを再実行したところ、ポートがフィルタリングされたと表示され、他のサイトでは依然として否定的な結果が返されました。
答え1
これはトラブルシューティングが非常に簡単です。
まず、プログラムがポート上で実行されていることを確認します。次のコマンドを実行します。
C:\>netstat -aon <ENTER>
または
C:\>netstat -aon | find "1234"<ENTER>
<--- ポートが 1234 の場合
0.0.0.0:1234と表示されていることを確認してください
cygwin の nc などのポートでサーバーをいつでも起動できます。nc -l 1234
また、BRS Webweaver、BPFTP、Apache、ssh VNC など、どのサーバーでも試すことができます。サーバー プログラムは問題ありません。
次に、サーバーに接続してみます。Telnet を使用できます。Telnet IP ポート (例: telnet 192.168.1.1 1234
Win7 の Telnet クライアント) を有効にする必要があります。または、cygwin で nc コマンドを使用してサーバーに接続することもできます。nc 192.168.1.1 1234
接続できるかどうかを確認します。
マシン自体から接続できるかどうかを確認してください。 nc 127.0.0.1 1234
テストが完了したら、LAN から接続できます。
ただし、LAN から接続できるようになったら、ポート転送を実行します。
あなたが言及したプログラムの説明を見るとhttp://portforward.com/help/portcheck.htm テストしているポートで独自のプログラムを作成すると書かれています。そのため、テストでは緑色のライトが点灯するが、オンライン ポート スキャナーでは点灯しない場合は、プログラムがポートをリッスンしていない可能性があります。
テストする必要がある
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