10

私は現在執筆中の 2 人用ゲームで使用するネットワークを調査してきましたが、外部と通信するためにいつデバイスがポートを転送しなければならないかについてはまだ明確ではありません。

私が他のゲームで見たものから、サーバーをホストするにはポート転送が常に必要ですが、クライアントでは必要ありません。さらに、スカイプ (私の理解では最終的にはクライアントからクライアントへ) など、どちらの側もポートを転送してはならない状況もあります。

だから私の質問は、インターネット通信で、ポート転送が必要な場合と必要でない場合、およびユーザーが心配する必要がないようにするには、開発者としてどのような手順を実行できるかということです。前もって感謝します!

4

3 に答える 3

16

インターネット上のマシンが、ファイアウォールまたは NAT ルーターの背後にあるマシンへの接続を開始する必要がある場合、ポート転送が必要です。接続がファイアウォールの背後にあるマシンによって開始された場合、ファイアウォール/ルーターは自動的に応答トラフィックを認識し、接続を開いたマシンに送信します。

しかし、パケットが外部インターフェイスに到着し、それがそのような接続の一部ではない場合、ルーターはそれをどう処理するかを知る必要があります。デフォルトでは、拒否されます。ただし、ポートに転送が構成されている場合は、どの内部マシンに送信するかを指定します。

別の言い方をすれば、NAT ファイアウォール/ルーターの背後でサーバーを実行する場合はポート転送が必要ですが、クライアントを実行しているだけの場合は必要ありません。

于 2012-09-05T23:33:08.250 に答える
2

ポート フォワーディング (発生) は、NATファイアウォール、またはその他のデバイスがすべてまたは一部のポートで通信をブロックする場合です。

例としてあなたの質問に答えると、ほとんどの商用ルーターはNATを使用して、ISPが提供する同じIP(外界から見た場合)を複数の人が使用できるようにします。ほとんどの ISP は NAT を使用して、複数の顧客が同じ IP を使用できるようにします (外部から見た場合)。これを機能させるために、NAT は通信の内部 IP とポート番号を、外部 IP と新しいポート番号 (サブネットワーク全体で 1 つのみ) に変更します。これにより、ルーター/ISP/ect は、各外部通信がどの内部 IP とポートに向かうかを知ることができます。

インターネット経由で通信するコンピューターの 1 つが NAT の背後にある場合は常に、ポート転送が必要です。これよりもはるかに多くの状況があると確信しており、それぞれの解決策は非常に複雑になる可能性があります. しかし、これは大部分をカバーしています。

于 2012-09-05T22:16:51.750 に答える
2

Skypeがポート フォワーディングの手動設定を必要としない (常にではない) のには理由があります。

Skype をインストールすると、着信接続用のポートとして1024を超えるポートがランダムに選択されます。必要に応じて、着信接続に別のポートを使用するように Skype を構成できます が、その場合は、別のポートを手動で開く必要があります。

着信接続用に選択されたポートが使用できなくなった場合、デフォルトでポート 80 および 443 が代替として使用されます。別のアプリケーション (Apache HTTP サーバーや IIS など) がこれらのポートを使用する場合は、アプリケーションが他のポートを使用するように構成するか、これらのポートを使用しないように Skype を構成することができます。

サーバーをホストする場合、ポート転送は必須です。Skype と同じ手法を使用できます...他にオプションがあるかどうかわかりません...

于 2012-09-05T22:08:10.193 に答える