IEを FTPクライアントとして使用するときの問題と対策
作成日:2006.6.2
FTPクライアントとして IEを使用する必然性は何もないのだが、クライアントソフトを新規インストールしなくても、(Windowsユーザなら)誰でも簡単に FTPサーバにアクセスできるというメリットがあり、IEを FTPクライアントとして使用することがしばしばある。
しかしながら、FFFTPなどの専用 FTPクライアントと比較すると IEは細かい設定ができない上に、いろいろな問題も抱えている。しかし Microsoftが IEを改良してくれることも期待できないので、上手に使いこなすよりなく、そのための方法をまとめた。
この情報は、サーバ管理者あるいはホームページ作成者など情報提供側の立場のときだけでなく、サーバにアクセスして情報を取得する一般ユーザ側の立場でも重要と思う。
- IEの設定
FTPの場合に限らないが、ブラウザとして IEを使用するときには、インターネットオプション -> 詳細設定の
「HTTP エラー メッセージを簡易表示する」
の設定を必ず Off にする。これが On のままだと、サーバからのメッセージが IE固有の決まり文句に置き換わってしまい、サーバがどういうメッセージを出したのかが分からなくなってしまうという大問題が起きる(参考)。
FTPクライアントとして使用時に、パスワード入力が必要な場面で以下のようなエラーメッセージが出るのはその設定がデフォルトの Onのままだからである。
タイトル欄に「サーバが見つかりません」
最上部に「ページを表示できません」
最下部に「サーバが見つからないか、DNS エラーです」
ところが FTPアクセス時にこのメッセージが出るのは上記の場合だけではないので始末が悪い。
インターネットオプションの「FTP サイト用のフォルダ ビューを使用する」が Offの場合にも出る。
さらに他の場合として、例えば以下のようにファイルへのリンクを作成し、IEでアクセスしたときにも起こりうる。
ftp://example.com/hoge/xxx.zip
このケースで、上記の「簡易表示」Off、「フォルダ ビュー」Onであったとしても、以下のような場合には、やはり上記と同じエラーメッセージが出る。
(a)anonykous FTP可能なサーバで、リンクしたファイル(xxx.zip)が存在しないとき
(b)anonymous FTP不可なサーバで、ユーザ&パスワードを指定せず、ファイルにリンクしたとき
(a)についてはファイル名を間違えているので正しく修正すれば解決するが、(b)については、
ftp://dummy@example.com/hoge/
のように、ファイルではなくディレクトリにリンクし、しかもダミーなユーザ名を付けるという対策をしないといけない。そうすれば、以下のようなパスワード入力画面が表示されるようになる。
ディレクトリではなくファイルにリンクしてしまうと、上記の「簡易表示」の設定を Offにしても「ページを表示できません」のエラーになり、パスワードの入力ができないので要注意である。
要は、anonymousでないときはファイルではなく必ずディレクトリにリンクすることである(ルートディレクトリから辿っていくのが最善かと思う)。
anonymous FTPであれば、リンク先はファイルでもディレクトリでも構わない。
また場合によっては(anonymous FTPが不可で、ユーザ&パスワードなしでディレクトリにリンクしている場合など)、以下のような「FTP フォルダ エラー」(メッセージ:「このフォルダにアクセスできません。ファイル名を正しく入力したことと、フォルダにアクセスするためのアクセス許可があることを確認してください。」)のアラートが表示されることがある(図で「詳細」以下は FTPサーバに依存したメッセージなのでこの通りであるとは限らない)。
これが出たときは、「OK」ボタンを押し、IEのメニューバーで、ファイル -> ログイン方法 を開けば、上記のログオン方法の画面が現れる。
- 転送モードとインターネットオプションの関係
FTPは制御ポート(通常 21番)とデータポートの 2つのポートを使用して送受信する。
データポートの番号は FTPの 2つの転送モード(PORTモードと PASVモード)によって異なる。
・PORTモード(アクティブ・モードともいう)
もともと FTPで標準のモードである。サーバ側のデータポートは通常20番である。
クライアント側がデータ待ち受け用ポート(任意番号)を開き、それをサーバに通知し、サーバからクライアントに接続してデータ転送を開始する。
サーバ側のルータやファイアウォールの21番ポートは開放する必要があるが、20番ポートの開放は不要である(サーバ -> クライアントの方向なので)。
・PASVモード(パッシブ・モードともいう)
サーバ側でデータ待ち受け用ポートを開き、それをクライアントに通知し、クライアントからサーバに接続してデータ転送を開始する。
サーバ側のルータやファイアウォールの21番ポートとデータポートとして使用するポート(通常ある範囲のポート番号を準備する)を開放する必要がある。
ファイアウォール越えに適し、通常はこの転送モードで使用するのが無難である。
転送モードは PORTで開始し、PASVと PORTの切り替えはクライアント側の設定(コマンド)で決まる。ただし、PASVモードの転送が可能かどうかはサーバソフト自身とその設定に依存する。
転送モードの説明は例えば以下のページを参考に。
http://web.kuicr.kyoto-u.ac.jp/~hattori/non-research/memo/tools/ftp.html
インターネットオプションの設定状況によって FTPの転送モードは以下のように変化する。
FTP サイト用のフォルダ ビューを使用する On On Off Off パッシブ FTP を使用する On Off On Off ディレクトリリスト アイコン表示 アイコン表示 一覧表示 一覧表示 ファイルダウンロード PASVモード PORTモード PASVモード PORTモード ファイルアップロード PASVモード PORTモード 不可 不可
- FTPのレスポンスコード
FTPのレスポンスコードは RFC969 などで定められている。以下のページなどを参考に。
・http://hp.vector.co.jp/authors/VA002682/rfc959j.htm
・http://www.atmarkit.co.jp/fnetwork/rensai/netpro10/ftp-responsecode.html
- まとめ
・IEを FTPクライアントとして使用するときは、インタネットオプションを以下のように設定する。この設定は必須である。
On :「FTP サイト用のフォルダ ビューを使用する」
Off:「HTTP エラー メッセージを簡易表示する」
※ :「パッシブ FTP(ファイアウォールおよびDSL モデム互換用)を使用する」
(※)On:PASVモード, Off:PORTモード。通常は Onにするとよい。
・パスワード入力画面を表示させるには、アクセス先アドレス(リンク)にダミーなユーザ名を付け、ファイルではなくディレクトリまでとする。
ftp://dummy@example.com/hoge/
- 参考ページ