FTPとは?ファイル転送に便利。仕組みや使い方を徹底解説します!

みなさんは「FTP」を使ったことがありますか?

FTPとは、サーバーなどにファイルを送信したり、逆にサーバーなどからファイルを受信したりすることのできるファイル転送の仕組みです。

このFTPは、どういったもので、どのような仕組みになっているのでしょうか。

また、どのような方法で使うことができるのでしょうか。

今回はFTPについてのさまざまな疑問にお答えします。

Winserver共用サーバーなら
Windows Server 2019・2016業界最高のコスパ!
\月額990円~ 2週間無料トライアル中!/
2週間無料で試してみる

ftp

FTPとは

まずFTPとはどういったものなのでしょうか。

FTPの仕組みや、ファイル転送の2つのモードを紹介し、それぞれの違いについて解説します。

FTPの仕組み

FTPは、File Transfer Protocol(ファイル転送プロトコル)の略で、ネットワークを介してファイルを送受信するためのプロトコル(約束事)です。

プロトコルとは、異なるコンピューター同士が互いに通信するために定められた手順や規格を指します。

FTPはどのような時に利用されるのか、簡単な例を挙げて説明します。

たとえば、Webサイトを公開する時には、Webサイトに表示する画像やテキストといった「ファイル」をWebサーバーに転送する必要があります。

このようなファイル転送を行えるのがFTPです。

後述するFTPソフトを用いてFTPサーバーに接続することで、ファイルをサーバーに送信することができます。

同様に、ファイルをサーバーから受信することもできます。

FTPでファイルを転送するためには、以下の2つの要素が必要となります。

FTPサーバー

FTPサーバーとは、FTPを利用してファイルの送受信を受け付けるサーバーソフトウェアのことです。

FTPサーバーの利用者は、ユーザー名とパスワードを入力することで認証を実施し、認証された場合のみ利用できます。

ただ、利用用途によっては不特定多数の利用者へファイルを配布したい場合もあるでしょう。

その場合は、anonymous FTP(匿名FTP)という仕組みを利用し、認証を行わずに誰でもログインできるようにすることもあります。

FTPクライアント

FTPクライアントとは、FTPに接続し、ファイルを送受信するパソコンやソフトのことです。

実際にFTPを使う場合

それでは、実際にFTPを使う際の流れを確認しましょう。

簡単に説明すると、「FTPクライアントからFTPサーバーに接続してファイルのやりとりをする」という流れになります。

通信の実際の流れの概要は以下のようになっています。

  • クライアント→サーバーへの接続とユーザー認証

まずは、FTPクライアントで、FTPサーバーに接続します。

接続の際は、ユーザーIDとパスワードを入力し、認証を行います。

  • サーバーのファイル一覧を取得

FTPサーバーはインターネット側に接続しており、ファイルを保管しているWebサーバーと繋がっています。

認証されたユーザーは、FTPサーバーへの接続を通して、Webサーバーに保管されているファイルの一覧を取得することができます。

  • 送信(PUT)もしくは受信(GET)

ファイルの一覧を取得後は、送信(PUT)や受信(GET)などでファイルのやり取りを行います。

FTPクライアント側にあるファイルをFTPサーバー上に送信し、サーバー上に追加・上書きすることができます。

反対に、FTPサーバーのデータをFTPクライアント側に受信することもできます。

FTPでは、上記のような流れでファイルのやり取りが行われています。

コントロールコネクションとデータコネクション

FTPでは、「コントロールコネクション」と「データコネクション」という、2種類のコネクションが使用されています。

そもそもコネクションとはどのようなものでしょうか。

コネクションとは、「通信を行う機器やソフトウェアなどが、仮想的に接続状態を確立すること」を指します。

「仮想的な接続」の例として、電話のやり取りを考えてみましょう。

普段電話を掛けるときは、①電話番号を電話機に入力して相手を呼び出す→②相手と会話する→③電話を切るという手順が行われますよね。

このように、通信路を用いてメッセージを相互に伝達し、通信が終わったら通信路を切断するということをコネクションと言います。

では、FTPで使用される2つのコネクションについて確認しておきましょう。

コントロールコネクション

コントロールコネクションは、制御コネクションとも呼ばれます。

制御の名前の通り、コントロールコネクションはログインするためのユーザー名やパスワード情報、ファイルの転送方法などの命令と応答などのためだけに使用される通信経路です。

データコネクション

データコネクションは、転送されるデータの送受信のために使用されます。

FTPでは、この2つのコネクションを使用することで、大量のデータの送受信をスムーズに行うことができます。

バイナリーモードとアスキーモード

FTPでファイルをやり取りする場合の転送モードには2種類あります。

「バイナリーモード」と「アスキーモード」です。

実際にはこれら2つのモードはどのように違うのでしょうか?

それぞれの詳細について説明します。

バイナリーモード

バイナリモードでは、データを転送する際に、内容を修正せずそのまま転送されます。

アスキーモード

アスキーモードでは、データを転送する際に、改行コードを自動で修正して転送されます。

このように、FTPには転送データの修正の有無で2つのモードがあります。

一般的には、プログラムなどの実行ファイルはバイナリーモード、テキストファイルなどはアスキーモードと使い分けることが多いです。

過去には、Windowsで開発したプログラムをLinuxで動作させる場合に、改行コードを自動で修正してくれるアスキーモードが利用されていました。

ただ、最近ではエディタや開発環境の進化により、改行コードを整備できるようになってきています。

そのため、アスキーモードで転送すると余計な改行コードの変換が行われてしまい、意図せずファイルが破損することもあります。

ファイルの破損や意図しないデータ転送を防ぐため、改行コードを修正する必要がないファイルに関しては、バイナリモードで転送する方が良いでしょう。

FTPの使い方

ここまで、FTPの概要について説明しました。

実際にFTPを使うにはどのようにすれば良いのでしょうか。

次に、FTPクライアントソフトの紹介や、ファイル転送の方法を解説します。

よく使われるFTPクライアントソフトとは

FTPを操作するためには2種類の方法があります。

コマンドラインから使う方法と、FTPクライアントソフトを使う方法です。

コマンドラインとは、コマンドと呼ばれる文字列をコマンドプロンプトに入力し、命令を出す方法です。

コマンドラインから利用する方法は初心者にとってはハードルが高いため、今回はFTPクライアントソフトについて説明します。

Windows、Macでよく利用されるソフトウェアを紹介します。

<Windows>

Windows版のFTPクライアントソフトには以下のようなものがあります。

FFFTP

ffftp

https://ja.osdn.net/projects/ffftp/

対応OS:Windows 2000/XP/Vista/7/8/8.1/10

セキュリティ:FTPSのみ対応

長い歴史がある人気のFTPクライアントソフト

2017年に開発終了との発表もあったが、2018年に有志が引き継ぎ、現在も開発を継続中。

https://www.itmedia.co.jp/news/articles/1804/05/news088.html

WinSCP

WinSCP

https://ja.osdn.net/projects/winscp/

対応OS:Windows XP/Vista/7/8/8.1/10、Windows Server 2003/2008/2012/2016

セキュリティ:SFTP/SCP/FTPSに対応

こちらもWindowsで利用できるFTPクライアントソフト。根強い人気を誇ります。

<Mac>

Mac版のFTPクライアントソフトには以下のようなものがあります。

Cyberduck

Cyberduck

https://cyberduck.io/

対応OS:Windows/Mac OS

セキュリティ:SFTPに対応

Mac向けのFTPクライアントソフトとして定番ソフトといえば「Cyberduck(サイバーダック)」です。

シンプルで操作しやすいことが特徴です。Windowsにも対応しています。

FileZilla

filezilla

https://filezilla-project.org/

対応OS:複数のOSで利用可能(Windows / Mac OS / Linux)

セキュリティ:SFTP/FTPSに対応

初心者向けとして人気の「FileZilla(ファイルジラ)」。Macでも利用可能です。

FTPでのダウンロードとアップロード

紹介したようにFTPクライアントソフトにはいろいろなものがありますが、いずれのソフトにおいても基本的な使い方は以下の通りです。

    1. ソフトを起動する
    2. 接続先のサーバー名もしくはIPアドレスを設定する
    3. 接続するとユーザ名、パスワードを聞かれるので入力する
    4. 接続

このように接続を行うと、ファイルのダウンロードやアップロードが自由に行えます。

なお、接続の際の認証方法にはパスワードの他に、暗号鍵を使う方法などもあります。

FTPとセキュリティ

ftp-security

「FTPはセキュリティに問題がある」というイメージを持っている方もいるかもしれません。

最後に、FTPのデメリットとしてよく挙げられる、セキュリティについて取り上げます。

FTPの持つ課題

まず、FTPがどういった問題を抱えているか考えてみましょう。

FTPが持つ課題とは、以下のようなものです。

      • 通信が暗号化されていない
      • ゲスト接続が可能な場合がある
        など

つまり、悪意のある第三者が介入することで、通信内容が外部に漏洩する可能性があります。

これらは、すべてセキュリティ上の問題です。

こうした問題を抱えるために、「FTPは利用すべきでない」といったことが言われるのです。

セキュリティを向上させたFTP

FTPにはセキュリティに問題があると言われていますが、ファイルの送受信のためFTPを使用する機会が多いのも事実です。

こうしたFTPのデメリットを解決するために、SCPやSFTPといった仕組みを利用することもあります。

最後に、これらのプロトコルについて解説します。

SCP(Secure Copy Protocol)

SCPSecure Copy Protocol)とは、SSHSecure Shell)を用いた暗号化通信です。

SSHとは、遠隔のサーバーを操作する際に、転送される情報を暗号化する仕組みです。

SCPは転送の中断や再開は行えませんが、通信速度が高速であるという特徴があります。

SFTP(SSH File Transfer Protocol)

SSHSecure Shell)を用いた暗号化通信です。

SCPと違って転送の中断や再開が行えますが、その分通信速度がSCPより遅くなります。

Windowsサーバーでは、CygwinやWinSCPがインストールされており、SFTPを利用できるようになっています。

これらは、いずれもSSHと呼ばれる通信情報を暗号化するプロトコルを使っており、安全性が高いと言えるでしょう。

以下のように、SSHを利用しないものもあります。

FTPS(File Transfer Protocol over SSL/TLS)

FTPの脆弱性をカバーするために、転送される情報を「SSL/TLS」を用いた暗号化通信です。

公開鍵暗号と共通鍵暗号という暗号化技術の組み合わせで、暗号化された安全な通信を確保する仕組みです。

サーバーへのファイルの転送を行う場合は、可能な限りFTPではなく、こうした安全性の高い方法を使いましょう。

まとめ

Webサイトの制作などでは、サーバーへのファイルの送受信を行うことがよくあります。

こうしたときに使われるのがFTPです。

FTPは非常に便利で長く使われてきた仕組みですが、実は暗号化できていないなどの問題も抱えています。

こうしたセキュリティ上の問題を解消したファイル転送の仕組みとして利用が広がっているのがSCPやSFTP、FTPSといったものです。

これからWeb制作などでファイル転送を行う場合には、こうしたセキュリティの高い仕組みが用いられたFTPクライアントソフトの利用をおすすめします。

ftp-image

NVIDIA製GPU搭載
高性能・高火力の専用サーバー!
「Tesla V100」「RTX-5000」「RTX-4000」

▶ プランを見る

関連記事

サーバー移行など、ご相談ください◎

Windows環境を利用するなら!

Winserver TOPページへ

クラシックASPの移行事例をご紹介!

TOP