インターネットへ接続_________ |
FTPリファレンス |
FTP(File Transfer Protocol)は、インターネット上でファイルを転送する手段として用いられています。慣習としてFTPと大文字で書くとFTPプロトコル(通信手段)を意味し、ftpと小文字で書くとFTPを使うためのソフトウエアを指すのが一般的です。
現在のWindows環境では、GUI(グラフィカルユーザーインターフェイス)によるFTP専用ソフトの充実により、意識することなくファイル転送を行えるようになりました。ここでは、FTPの基本的な使い方と応用を見ていくことにしましょう。
FTPには、バイナリモードとテキストのASCIIモードの2つのモードがあります。バイナリモードの場合はまったく同じファイルとして転送するのを目的としますが、テキストのASCIIモードの場合はOS側で異なる改行コードを自動的に修正してくれる機能を持っています。(改行コードについては後述)
FTPには、アカウントとパスワードを使用したユーザー指定で行うものと、anonymous(匿名)という不特定ユーザーにサービスするものの2種類が提供されています。
FTPのコネクションには制御用(21番ポート)とデータ用(20番ポート)の2つを使い、まず21番ポートを使って接続が確立するとサーバーは「220」OKの応答コードを返します。準備ができたら、クライアントはユーザー名とパスワードを送信します。それに対し、正しいユーザーであると認証すると、サーバーは「230」OKの応答コードを返します。その後PORTコマンドによりファイル一覧を取得し「226」OKの応答コマンドが返ってくればこれでファイル転送の準備が完了します。実際のファイル転送には20番ポートを使います。
パッシブFTPとは? FTPのコネクションには制御用(21番ポート)とデータ用(20番ポート)の2つを使うことは説明しましたが、インターネット上のFTPサーバが何らかの事情で20番ポートからのコネクション確立を許可するようにファイアウォールの設定を行っていない場合でもデータコネクションが確立できるようにするための方法を、パッシブFTPといいます。この場合、クライアントはPORTコマンドの代わりにPASVコマンドを送信します。このときのポート番号は20番ではなくランダムポートが選ばれるため通常のFTPよりもセキュリティが向上するといわれています。よく聞く話ですが、自宅でブロードバンドルーターとDDNSを使ってサーバーを立てたはいいが、FTPが使えないという方はこのPASVコマンドを使った方法を試してみてください。パッシブFTPに対して、通常のFTPのことをアクティブFTPと呼びます。 |
anonymous FTP
anonymous FTPのサービスは、クライアント側から見るととても便利なサービスです。通常なら、アカウントのないホスト上のファイルを入手することなど考えられないことですが、これを使うことによって世界中のサーバーからファイルが入手できます。これらは専用のディレクトリ以下だけを公開し、それより上のディレクトリにはアクセスできないようになっているため、/etc/passwdなどの重要なファイルにアクセスされる心配もありません。
anonymous FTPは、ログインユーザー名としてanonymousを用い、パスワードに自分のメールアドレスを使用するのが一般的です。また、接続するFTPサーバーがUNIXの場合、ログインユーザー名を「anonymous」の代わりに「ftp」で代用できることも多く、公開用のファイルは、通常/pubに置かれていることが多いようです。
IE(Internet Explorer)などのブラウザでは、URL入力欄に、
ftp://ホスト名/
とすると、自動的にanonymousでログインできて簡単です。
ftpのコマンド
ここでは、一般的に使用されるFTPクライアントソフトのコマンドを紹介しましょう。
open | リモートホストへの接続を開始する。[open 接続ホスト名]のように、引数として接続するホスト名を記述する。 | |
user | 接続したFTPサーバーに対して指定したユーザー名でログインする。 userコマンドは[user ユーザー名]という一連のコマンドだけでなく、userコマンド単体でも使える。 |
|
status | FTPクライアントソフトの状態を表示する。 | |
bin(binary) | ファイルの転送モードをバイナリモードに設定する。 ほとんどの場合、ファイル転送はバイナリモードで行って問題ありません。というより、バイナリモードでは、FTPはファイルをバイナリイメージで持ってくるため、画像ファイルやコンパイル済みのコマンドファイルは、必ずこのモードを使わなければなりません。また、UNIX同士であれば、テキストファイルであっても、改行コードが等しいため、バイナリで送っても問題はありません。 (What's UNIXのページへ) |
|
ascii | ファイルの転送モードをアスキー(テキスト)モードに設定する。 テキストはOSによって行の終わりを意味する改行コードが異なっています。代表的なものとしては、 Win95/98・・・・・・・・ <CR><LF> 従って、同じテキストであってもこの改行コードを考慮しないでファイルを転送してしまうと、エディタで開いても文字化け等が発生してしまいます。FTPでは、このasciiコマンドを用いることによって、OS間の改行コードを変換する機能を持たせています。 |
|
hash | 転送サイズに合わせて「#」というハッシュマークを表示する。 コマンドラインでFTPを使っている場合、転送するファイルサイズが大きいといつ終わるのか不安になることがあります。そのとき役立つのが、このhashコマンドです。なお、hashコマンドはトグルになっており、最初のhashで「on」、次のhashで「off」となります。 |
|
ls | カレントディレクトリのファイルリストを表示する。UNIXのlsコマンドと同じ。 同仕様のコマンドとして、dirコマンドがある。(lsコマンドのls -lと同じ表示を行う) |
|
cd | 接続しているFTPサーバー上のカレントディレクトリを移動する。 使用方法はWinのMS-DOS、UNIXでの場合と同じ。カレントディレクトリ名を確認するには、pwdコマンドを使用する。 |
|
lcd | FTPクライアントソフトウエアを起動しているローカル側のディレクトリを移動する。 ファイル転送を行う場合、目的のファイルがどこにあるのか見つけることも必要ですが、どこに落とすのかということも重要です。落としたことは確かだが、どこに落としたか判らなくなったというのは、結構聞く話です。 FTPは必要になった時点で起動するため、接続したら明示的にlcdコマンドで自分のホームディレクトリを指定しておくのが無難でしょう。 |
|
get | ファイルをgetする。ただし、getコマンドではワイルドカードを指定することはできない。 | |
mget | ファイルをgetする。ワイルドカードを指定することによって複数のファイルを一括getしたい場合は、このコマンドを使用する。デフォルトでは、転送するファイルごとに確認が表示されるが、promptコマンドを使うことによって確認なしの一括getも可能。 | |
put | ファイルをputする。(getコマンドの反対) | |
mput | ファイルをputする。(mgetコマンドの反対) mputでは、ワイルドカードを使用することができる。複数のファイルを一括でputしたい場合は、このmputを使用する。 |
|
prompt | インタラクティブの処理を行うかどうかを設定する。デフォルトは、インタラクティブオン。 hashコマンド同様、このコマンドもトグルになっています。最初のpromptコマンドの発行で、インタラクティブがオフになり、次のコマンドでオンに復帰します。 |
|
mkdir | ディレクトリを作成する。 | |
delete | ファイルを削除する。 | |
site | FTPサーバーに標準で用意されていないコマンドを実行できるようにするためのコマンド。 FTPサーバー側でコマンドを制限している場合、転送したファイルのモードを変更する事ができません。このことは、例えば自分のホームページ内にCGIを転送しても、実行権が付かなくなってしまうケースが考えられます。chmodやumaskコマンドといったFTPの標準でないコマンドを実行することもできますが、FTPクライアントソフトにはsiteコマンドを実装していないものもあります。 |
FTPの基本は、もちろんコマンドラインですが、GUIによる便利なツールとしてはFFFTP http://www2.biglobe.ne.jp/~sota/ 等のフリーソフトウエアがあるので、お試し頂きたい。
しかし、コマンドラインでの使い方を覚えておけばどのツールにも対応することができるので、まずはコマンドラインを覚えておきたいものです。FTPのコマンドラインでの使い方は、UNIXでもWindowsでもほどんど同じです。
CopyRight (C) 2000-2013 by T.Shiraishi All right reserved 無断転載禁止/リンクフリー |