NATの背後にあるFTPサーバーに接続しようとしています。サーバーのローカルIPは172.23.11.41、パブリックIPは194.239.61.58で、パブリックIPに接続しています。
パッシブモードに入ると、サーバーは役に立たないローカルIPアドレスを返します。例:
227パッシブモードに入る(172,23,11,41,234,113)。
これが発生すると、Linuxコマンドラインftpクライアントはデータチャネルを確立できません。
パッシブモード(PASV)によって返されるIPアドレスを無視するか、代わりに拡張パッシブモード(EPSV)を使用するようにftpクライアントを取得する必要があります。例:
229拡張パッシブモードに入る(||| 64607 |)。
これを行う方法はありますか?
編集:Sudo yum install ftp
を呼び出してインストールされたftp.x86_64を使用していると言われています。
マルティン・プリクリル:
「サーバーを修正してください。外部IPアドレスを報告するように構成する必要があります。または、PASV応答でIPを変換するようにNATを構成する必要があります。」
私は主要な機関のFTP管理者であり、4ノードのHAクラスター化FTP環境を使用しています。 2つはアクティブ、2つはスタンバイで、すべて負荷分散され、NAT処理されています。この問題は必ずしも「サーバーの修正」ではありません。当社のサーバーはすべて、PASV接続のローカルIPで応答します。ただし、LBとNATが正しく構成されている場合、クライアントはPASV IPを無視し、LBを介して接続するときにその制御接続IPを使用する必要があります。実際の問題は、Linux FTP/Sクライアントの障害です。私たちの構成は通常の標準的な構成であり、FTPシステムに接続する他のすべてのクライアントとうまく連携します。この問題は、LinuxボックスまたはメインフレームでFTP/Sを使用している場合にのみ発生します。 LinuxおよびIBMz/OSでは、PASVが制御チャネルIPと異なる場合、FTP/SクライアントはPASV接続を許可しません。
それを説明したかっただけです。
元の投稿者へ:そうは言っても、ftp:ignore-pasv-addressを試して、データチャネル接続が可能かどうかを確認してください。