FTP「425 データ接続を開けません」はコマンドプロンプトを使用している場合にのみ発生します

FTP「425 データ接続を開けません」はコマンドプロンプトを使用している場合にのみ発生します

私のコンピューターはすべて 1 台のルーターの背後にあります。そのうちの 1 台で FileZilla サーバーを実行しています。

バッチ スクリプトと Windows の組み込み ftp.exe を使用して、サーバーへのアップロードを自動化しようとしています。ルーターの外部からサーバーにアクセスできるようにダイナミック DNS サービスを設定し、ルーターでサーバーへのポート転送を設定しました。Google Chrome、Windows エクスプローラー、FileZilla クライアントを使用して、問題なく接続して転送できます。

ただし、ftp.exe を使用しようとすると (手動またはバッチ スクリプトで) サーバーに接続できますが、データ接続を開く操作 ( LIST、、STORまたはRETR) を実行しようとすると、次のエラーが発生します。425 Can't open data connection.

両方のコンピューターのファイアウォールで ftp.exe を許可しました。何が起こっているのか、またはこれを修正する方法はありますか? ポータブルで独立した (他のファイルがない exe のみの) コマンド ライン クライアントを知っている方がいれば、ftp.exe を使用する必要はありません。

編集私の ISP は、21 番ポートやその範囲内の他のポートを含む多くのポートをブロックしていることを知っています。これはすべてポート 2121 に設定されており、パッシブ ポートは 2122 ~ 2142 に設定されており、これらすべてがルーターで転送されています。ftp.exe
は、データ接続に特定のポートのみを使用するため、ISP がそれをブロックしている可能性があります。もしそうなら、これをどのように変更すればよいでしょうか。

答え1

通常のアクティブ FTP は、転送にサーバーが開始する別のデータ接続を使用し、通常のポート 21 接続のみを制御チャネルとして使用します。ただし、クライアントがファイアウォールの背後にある場合、ファイアウォールはこの接続をブロックする可能性があります。Chrome、Explorer、FireZilla などは、元のクライアントが開始した接続が制御チャネルとデータ チャネルの両方として使用されるパッシブ モードを試すほど賢いのではないかと思います。

WindowsのデフォルトのCLI FTPクライアントはパッシブモードをサポートしていないようです。そのため、FTPサーバあるいは、おそらくより良い選択肢は、代わりにSFTPを使用することです。FTPは安全ではなく、実際にはLANでのみ使用できます。SFTPは完全に暗号化されており、データとコマンドに1つのチャネルのみを使用します。CLI SFTPクライアントが必要な場合は、FTPサーバー良い選択肢です。

答え2

私も同じ問題を抱えていました。解決策は、アンチウイルス (私の場合は McAfee) のファイアウォールを停止することでした。ファイアウォールが FTP のポートをブロックしていたのです。

答え3

Windows FTP CLI はパッシブ モードをサポートしています。パッシブ モードに入るには、「quote pasv」を使用します。

関連情報