FTP通信が「150 Opening ASCII mode data connecton」で止まる場合の解決方法

アリスです。

前回Windows10でFTPサーバを立てる方法を書きました。

Windows10でFTPサーバーを構築する手順とファイアーウォールの設定
こんにちは、アリスです。 Windows10でWindowsの機能を使ってFTPサーバを構築する方法を紹介します。 FTPとはファイルトランスファープロトコルの略で、直訳すればファイル転送ルールのことです。インターネット...

 

しかし、他のWindows PCから、コマンドプロンプト経由でWindowsPCからFTPサーバにログイン後、例えばdirやcd等のコマンドを打つと「150 Opening ASCII mode data connecton.」で止まります。

スポンサーリンク
スポンサーリンク

ブラウザ経由であればアクセス可能

コマンドプロンプト経由のアクセスで失敗するだけで、ブラウザ経由なら問題なくアクセスできます。

ブラウザのURLに「ftp://IPアドレス」と入れてアクセスしてみてください。

IPアドレスの調べ方ですが、FTPサーバのPCでコマンドプロンプトを開き「ipconfig」と打てばわかります。(※FTPサーバにアクセスしたいので、FTPサーバのIPが必要)

スポンサーリンク

「150 Opening ASCII…」で通信が止まる場合の解決方法

理由は後で説明するとして、とりあえず解決方法を書きます。

1.FTPサーバにアクセスしたいクライアントPCで、コントロールパネルを開きWindowsファイアーウォールの設定を開きます。

 

2.画面左メニューから詳細設定を開きます。

 

3.画面左メニューで「受信の規則」を選択した状態で、画面右メニューから「新しい規則」をクリックします。

 

4.プログラムを選択して次へボタンをクリックします。

 

5.このプログラムのパスを選択して、参照ボタンをクリックすると「C:\Windows\System32」のフォルダが開かれます。

フォルダ内にある「ftp.exe」を選択します。選択できたら、次へボタンをクリックします。

 

6.「接続を許可する」を選択し、次へボタンをクリックします。

 

7.ドメイン、プライベート、パブリックにチェックが入っていることを確認して、次へボタンをクリックします。

 

8.任意の名前を付けます。FTP Clientでいいでしょう。

 

コマンドプロンプトを再起動して、再度FTPサーバにログインすれば、コマンドが使えるようになります。

スポンサーリンク

FTP通信が止まった理由

FTPサーバにログインできたにも関わらず、その後コマンドを打つと通信が止まる理由は、コマンドプロンプトでのFTP通信がアクティブモードで行われるからです。

FTP通信にはアクティブモードとパッシブモードがあります。

 

アクティブモードではデータ転送用の線をFTPサーバからクライアントPCに投げますが、このときにクライアントPC側のファイアーウォールで通信が阻止されてしまうのです。

 

阻止されないように、クライアントPCのファイアーウォールの受信規則を追加し、FTPの通信を解除してあげたわけです。

 

ちなみに、ブラウザ経由でのFTPアクセスはパッシブモードで行われているから問題なくアクセスできました。

パッシブモードとは、データ転送用の線をクライアントPCからFTPサーバに投げる方法です。

ファイアーウォールは外からのアクセスは防いでくれますが、中からのアクセスは基本的に素通りさせます。

パッシブモードでは、クライアントPCの中から、FTPサーバにデータ線を投げるので、大丈夫であったのです。

スポンサーリンク
スポンサーリンク
プログラミング、IT技術



アリスと奇妙な仲間たち
タイトルとURLをコピーしました