1. ホーム
  2. networking

[解決済み】アクティブFTPとパッシブFTPの違いは何ですか?

2022-03-26 11:42:47

質問

アクティブFTPとパッシブFTPの違いについて教えてください。

どちらが良いのでしょうか?

解決方法は?

FTPが実行できるモードは、アクティブとパッシブの2つです。

背景として、FTPは実際には クライアントとサーバーの間のチャンネル、コマンドチャンネルとデータチャンネル、これらは実際には セパレート TCPコネクション

コマンドチャンネルはコマンドとレスポンス、データチャンネルは実際にファイルを転送するためのチャンネルです。

このようにコマンド情報とデータを別々のチャンネルに分けることで、現在のデータ転送が終了するのを待たずに、サーバーにコマンドを送信することができる優れた方法です。RFCによると、これは終了、現在の転送の中止、ステータスの取得といったコマンドの一部に対してのみ義務付けられています。


アクティブ モードでは、クライアントはコマンドチャネルを確立しますが サーバー はデータチャネルの確立を担当します。例えば、クライアントマシンがファイアウォールで保護されており、外部からの不正なセッション要求を許可しない場合、これは実際に問題となることがあります。

パッシブ モードでは、クライアントは 両方 チャネルを使用します。アクティブモードではコマンドチャネルを確立することは既に知っていますが、ここでも同じことをします。

しかし、その後、(コマンドチャンネルで)サーバーに リスニング のポートで、クライアントとの接続を確立しようとするのではなく、(サーバーの判断で)接続を確立します。

この一環として、サーバーはクライアントにリッスン先として選択したポート番号を返し、クライアントが接続方法を知ることができるようにします。

クライアントがそれを知れば、データチャネルを正常に作成し、続行することができます。

詳細はRFCに掲載されています。 https://www.ietf.org/rfc/rfc959.txt