アクティブモード/パッシブモード
アクティブモードとパッシブモードとは?
FTP 通信では 2 つのポートを使用して通信します。1 つは「制御用」、もう 1 つは「データ転送用」です。FTP 通信を行う際にクライアントとサーバでコネクションを確立します。
アクティブモードとパッシブモードでは、このコネクションの張り方・向きに違いがあります。
コネクションの向きの違い
データ転送用のコネクションの向きに違いがあります。アクティブモードはサーバーからですが、パッシブモードはクライアントからになります。
- アクティブモード
- 制御(FTP/FTPS 通信の開始):クライアント →→→ サーバー
- データ転送:クライアント ←←← サーバー
- パッシブモード
- 制御(FTP/FTPS 通信の開始):クライアント →→→ サーバー
- データ転送:クライアント →→→ サーバー
ポート番号の違い
データ転送用のポート番号に違いがあります。アクティブモードは 22 番ポートですが、パッシブモードは任意のポート番号を使用します。
- アクティブモード
- 制御(FTP/FTPS 通信の開始):クライアント →→ 21 番ポート →→ サーバー
- データ転送:クライアント ←← 22 番ポート ←← サーバー
- パッシブモード
- 制御(FTP/FTPS 通信の開始):クライアント →→ 21 番ポート →→ サーバー
- データ転送:クライアント →→ (任意のポート番号) →→ サーバー
任意のポート番号の指定方法
任意のポート番号を指定するには /etc/proftps/proftps.conf ファイル を下のように変更します。パッシブモードのポートを有効にして、使用するポート番号の範囲を指定します。
# PassivePorts 49152 65634 ↓ PassivePorts 49152 65634
注:クライアントアプリの設定がパッシブモードになっている場合、上記の設定をしていないとデータ転送が行えません。(私の環境では Cyberduck のデフォルトはパッシブモードでした。)