WindowsのFTPを使用している時、ログインはできるのにgetコマンドやdirコマンドを打つと
「150 Opening ASCII mode data connecton.」というメッセージが表示され、
以降の結果が返ってこない場合の対処法です。
(↓このような感じで止まってしまうパターンです。)
- コマンドプロンプト
- ftp> get test.txt 200 PORT command successful. 150 Opening ASCII mode data connection.
原因
これは、WindowsのFTPがアクティブモードのFTPを使用しているためです。
アクティブモードだと、クライアント→FTPサーバという通信だけでなく、
FTPサーバ→クライアントという通信が発生するため、
この時点のものがファイアウォールで弾かれてしまっていることが原因です。
なので、ファイアウォールの設定を修正すればこの問題は解決できます。
手順
①「セキュリティが強化されたWindows Defenderファイアウォール」画面を開く
Windowsアイコンを右クリック→「ファイル名を指定して実行」で「wf.msc」を指定して開けます。
②画面左側にある「受信の規則」を選択したうえで、画面右側にある「新しい規則」をクリックする
③「プログラム」を選択して「次へ」をクリックする
④「このプログラムのパス」を選択して、パスに「%SystemRoot%\System32\ftp.exe」を指定して「次へ」をクリックする
⑤「接続を許可する」を選択して、「次へ」をクリックする
⑥適用したい範囲にチェックを付けて、「次へ」をクリックする
とりあえず全てチェックを付けておけば問題ありません。
⑦この設定に任意の名前を付けて「完了」をクリックする
上記設定を行ったあと再度FTPコマンドを実行すれば、結果が返ってくるはずです。
コメント