FTPは、パソコンとサーバーの間でファイルを送ったり受け取ったりするための通信ルールです。読み方は「エフティーピー」。CCNAの学習では、FTPはTCPを使うことと、命令用・データ用の接続が分かれていることを押さえると、ポート番号の暗記が仕組みの理解につながります。
たとえば、FTPソフトでログインはできたのに、フォルダーの中身が表示されないことがあります。これは矛盾した動きではありません。ログインに使う接続と、一覧やファイルを運ぶ接続が別だからです。この記事では、その2本を図で追っていきます。
図のクライアントは172.27.81.15、FTPサーバーは172.27.92.25です。クライアントはサービスを使う側、サーバーは提供する側と読んでください。IPや一部のポート番号は説明用の値です。

FTPには制御接続とデータ接続がある
FTPでは、ユーザー名やパスワード、取得するファイルの指定などを制御接続でやり取りします。「何をしてほしいか」を伝える接続です。通常、クライアントからサーバーのTCPポート21へ接続を始めます。
一方、ファイルの中身やフォルダーの一覧はデータ接続で運びます。ログインができた時点で確認できたのは、制御接続の側です。データ接続を通す条件が足りなければ、その後の一覧表示や転送が失敗します。
図を見るときは、まず共通の制御接続を見てください。その次に、下側のアクティブとパッシブを比べます。この2方式を続けて実行する図ではなく、データ接続の始め方を比較した図です。
アクティブとパッシブは、誰がデータ接続を始めるかが違う
アクティブとパッシブの違いは、データ接続をどちらから始めるかです。どちらもファイルを送受信できます。「ダウンロードはパッシブ、アップロードはアクティブ」という分け方ではありません。
アクティブでは、クライアントが「ここで受け取る」とIPとポートを伝え、サーバーから接続を始めます。パッシブでは、サーバーがデータ用のポートを用意して伝え、クライアントから接続を始めます。表の矢印は、ファイルの移動方向ではなく、接続を始める方向です。
| 方式 | 接続を始める側 | データ接続の例 |
|---|---|---|
| アクティブ | サーバー | サーバー:20 → クライアント:51001 |
| パッシブ | クライアント | クライアント:51001 → サーバー:50000 |
アクティブのサーバー側送信元ポートは通常20です。ただし相手側は、そのときクライアントが指定したポートです。図の51001は説明用なので、両側とも20番になるわけではありません。
パッシブの50000も固定番号ではありません。サーバーに設定された範囲などから選ばれたデータ用ポートを使います。制御用の21番だけを許可しても、そのポートへ接続できなければファイルは運べません。
ログに出るPORTはクライアントが受け口を知らせる命令、PASVやEPSVはパッシブ用の受け口をサーバーに求める命令です。最初は文字を丸暗記するより、「誰が受け口を知らせ、誰が接続するか」で読んでください。
仕様の確認:RFC 959:FTPの制御・データ接続。
仕様の確認:RFC 2428:EPRTとEPSV。
ログインできるのに転送できないときの確認順
ログインできたのに転送できない場合は、最初にFTPソフトがアクティブ・パッシブのどちらを使っているか確認します。次にログから、データ接続に使うIPとポートを探します。「FTPだから20番の問題」と決めて調べると、パッシブで使う別のポートを見落とします。
| 観測したこと | 次に確認すること |
|---|---|
| 制御のTCP/21が成立しない | 経路、FW、サーバーの待ち受け |
| 制御は成立しデータ側のSYNだけ再送 | 通知ポート、FWの許可、NAT後の宛先 |
| データ側も接続できるが転送失敗 | 権限、保存先、容量、FTP応答コード |
| パッシブ通知が内部IPになっている | PASV通知設定、NAT、FTP補助機能の対応 |
たとえばパッシブで50000番が通知されたなら、クライアントからサーバーの50000番へ接続を試しているかを確認します。通知されたIPが、クライアントから届かない別のネットワークのIPになっている場合もあります。NATを使う構成では、この通知内容も確認対象です。
パケットを取得できるなら、接続を始めるSYNが出ているか、サーバーまで届くか、応答が戻るかを順に見ます。取得は「キャプチャ」と呼ばれます。FWのログも試験時刻を合わせて読むと、別の通信と取り違えにくくなります。
検証するときは、方式・送信元・宛先・時刻を控えてから一つずつ条件を変えます。FWを全面的に無効にした結果だけでは、どの許可条件が不足していたかを説明できません。
FTP・FTPS・SFTP・TFTPを区別する
FTP、FTPS、SFTP、TFTPは名前が似ていますが、同じ仕組みではありません。とくにSFTPは「FTPをそのままSSHで暗号化したもの」と覚えないようにしてください。SSHの上で動く別のファイル転送の仕組みです。下の表は、それぞれの入口を比べたものです。
| 名前 | 通信の特徴 | 代表的な入口 |
|---|---|---|
| FTP | 制御とデータが別のTCP接続 | TCP/21 |
| FTPS | FTPをTLSで保護。データ接続も別に確認 | 明示的TLSは通常TCP/21、暗黙的TLSは通常TCP/990 |
| SFTP | SSH上のファイル転送。FTPとは別の仕組み | 通常TCP/22 |
| TFTP | 簡易転送。FTPのUDP版という扱いはしない | 初回要求はUDP/69 |
FTPは標準では認証情報やデータを暗号化しません。FTPSはFTPにTLSによる保護を加える方式ですが、制御とデータを分ける考え方は残ります。SFTPは通常SSHのTCP/22を使い、TFTPはUDPを使います。
仕様の確認:RFC 1350:TFTPの転送識別子。
ネットワーク用語の正式名と読み方
機器の説明や現場の会話では略語がよく出ます。最初から正式名を全部言える必要はありませんが、読み方と役割がつながっていると話を追いやすくなります。FTPの学習で出た用語を、下の表で確認してください。
| 略語 | 読み方 | 役割 |
|---|---|---|
| TCP | ティーシーピー | Transmission Control Protocol。接続・順序・再送を扱う |
| UDP | ユーディーピー | User Datagram Protocol。データグラムを運ぶ |
| FTP | エフティーピー | File Transfer Protocol。ファイル転送 |
| DNS | ディーエヌエス | Domain Name System。名前解決など |
| ARP | アープ | Address Resolution Protocol。IPv4隣接機器のMAC解決 |
| VLAN | ブイラン | Virtual LAN。L2ネットワークの論理的な分割 |
| ACL | エーシーエル | Access Control List。通信などの許可条件 |
| NAT | ナット | Network Address Translation。アドレス変換 |
表の「L2」はOSI参照モデルの第2層、つまり同じLAN内でMACアドレスを使って転送する範囲です。VLANはスイッチの中で、そのLANのグループを論理的に分ける仕組みです。「MAC解決」は、IPから同じLAN内の相手のMACを調べることを指します。
機器の設定はconfig(コンフィグ)、CiscoのOSはIOS(アイオーエス)、光ケーブルをつなぐ小型モジュールはSFP(エスエフピー)と呼ばれます。読み方に現場差がある用語は、英字も見せて確認すると取り違えを減らせます。
確認したいポイント
ここまで読んだら、「FTPサーバーの21番へログインできた。これでパッシブのファイル転送も確認できたか」と考えてみてください。答えは、まだ確認できていません。データ用ポートへの別の接続が必要だからです。
次は紙に、制御接続とデータ接続を別の矢印で描いてみてください。アクティブではデータ接続をサーバーから、パッシブではクライアントから始めます。各矢印にTCP、送信元ポート、宛先ポートを書ければ、番号だけを覚えた状態から一歩進めています。
実際のFW条件を読むときも、この図に通知されたIPとポートを入れて確認します。接続が始まる方向とファイルを送る方向を分けて考えるのが、この仕組みを理解するコツです。
