EPSVもFTPのデータ接続を別途開きます。変わるのはエンドポイントの情報であり、接続の本数ではありません。

従来のPASV応答はアドレスとポートを返します。そのアドレスはサーバーのネットワーク外では使えないことがあります。EPSVはポートを返し、制御接続に対応するサーバーアドレスを使います。

プロキシ経由ではFTPサーバーの論理的な同一性を保ちます。中継機器の待ち受けアドレスが、返されたデータポートを所有するサーバーとは限りません。

データ接続には想定したプロキシ経路と、選択したポートへ到達する許可も必要です。FTP制御ポートへのCONNECTを受け入れても、その後のすべてのデータ接続が許可されるわけではありません。

EPSVを無効化する前に、パッシブ応答と、転送のために要求されたサーバーアドレスおよびポートを確認します。FTPログインの成功は制御接続を確立するだけで、データ接続は確認対象として残ります。Python ftplibでは、PySocksの既定値だけに頼らず両方のソケットコンストラクターを追跡してください。

関連記事