アクティブ FTP とパッシブ FTP の違いを教えてください。
どちらが好ましいでしょうか?
ベストアンサー1
FTP が実行できるモードはアクティブとパッシブの 2 つです。
背景として、FTP は実際にはクライアントとサーバーの間でコマンド チャネルとデータ チャネルという2 つのチャネルを使用しますが、これらは実際には別々のTCP 接続です。
コマンド チャネルはコマンドと応答用であり、データ チャネルは実際にファイルを転送するために使用されます。
コマンド情報とデータを別々のチャネルに分離することは、現在のデータ転送が完了するのを待たずにサーバーにコマンドを送信できる便利な方法です。RFC によると、これは終了、現在の転送の中止、ステータスの取得などのコマンドのサブセットに対してのみ義務付けられています。
アクティブモードでは、クライアントはコマンド チャネルを確立しますが、データ チャネルを確立するのはサーバーの役割です。たとえば、クライアント マシンがファイアウォールで保護されていて、外部からの不正なセッション要求を許可しない場合、これは実際に問題になる可能性があります。
パッシブモードでは、クライアントは両方のチャネルを確立します。アクティブ モードではコマンド チャネルが確立されることはすでにわかっていますが、ここでも同じことを行います。
ただし、その後、クライアントへの接続を確立しようとするのではなく、(サーバーの判断により) ポートでリッスンを開始するようにサーバー (コマンド チャネル上) に要求します。
この一環として、サーバーは、クライアントが接続方法を認識できるように、リッスンするために選択したポート番号もクライアントに返します。
クライアントがそれを認識すると、データ チャネルを正常に作成して続行できるようになります。
詳細については、RFC を参照してください。出典: IETF.org