たとえば、私のHTTP port 80
が開かれ、ルーターによって外向きのport 42300
にマッピングされます。
接続のために開いている私のport 150
が、ルーターにアクセスせずにどの外部ポートにマップされているかを識別する方法はありますか?
ルーターが特定の内部ポートを必要な外部ポートに手動でマップする方法を設定できることを理解しています。
簡単ではありませんが、これをどのように視覚化するかを再考する必要があります。着信接続を調べているので、逆に視覚化する方が便利です。これが、これがポート転送と呼ばれる理由です。
ポートはルーターのパブリックIPアドレスで開かれ、内部リソースのアドレスとポートに転送されます。
したがって、ルーターはポート42300を開いており、パブリックIPでこのポートをリッスンしており、着信接続を内部サーバーのポート80に転送します。
したがって、あなたの質問は、「ルーターのどのポートが内部サーバーのポート150に転送されるかをどのように判断できますか」と表現する方が適切です。これが機能する方法のため、接続は外部ソースから適切なポートのパブリックIPアドレスに開始する必要があります。
適切なポートがわからず、ルーターにアクセスしてポートが何であるかを確認できないため、すべてを試して、どれが接続されているかを確認するしかありません。
nmap ツールを使用してこれを行うことができます。
ポートフォワーディングの概念の説明については、Paulの回答を参照してください。
ルーターを管理している誰か(その所有者?)がコンピューターのポート150に何かを転送するように以前に話し、彼らが選択したポートを通知しなかった場合を除いて、答えは驚くほど簡単です。ルーターはコンピューターに転送されます。
(そうでない場合は、Paulが提案したように、nmap
で開いているポートを見つけて、使用するアプリケーションですべての候補をテストするだけです。)
(最近では、多くの人の迷惑になっていますが)一般的なクライアントのセットアップでは、ほとんどのコンピューターのポートにインターネットの大部分からアクセスする必要はなく、多くの場合、マルウェアやセキュリティメカニズムが弱いオペレーティングシステムのハッキング。したがって、ファイアウォールが発明され、それ以降、一部の設定ではNATデバイス(「ホームルーター」と呼ばれることが多い)に取って代わられました。
NATデバイスは、原則として、多くのコンピューターがローカルネットワークからインターネットを介してインターネットにアクセスできるようにしますが、ポートがローカルネットワーク上の特定のコンピューターに明示的に転送されない限り、通常、トラフィックを反対方向に通過させません。
特定のIPアドレスには有限数(iirc 2 ^ 16-1)の{tcp、udp}ポートがあるため、ルーターのファイアウォール部分が不要であっても、ルーター上のすべてのコンピューターのすべてのポートを開くことができない可能性があります。接続されているコンピューターが1台しかない場合を除き、ローカルネットワーク(原則として10.0.0.0/8ネットワークの場合は2 ^ 24-1デバイス)。デフォルト設定では、事実上常にポートを転送しません。