この内容は古いバージョンです。最新バージョンを表示するには、戻るボタンを押してください。
バージョン:3
ページ更新者:atom
更新日時:2026-05-13 08:13:48

タイトル: FTP

本稿は FTP (File Transfer Protocol) に関する記事です。クライアントとサーバ間でファイルを転送するためのプロトコルで、1970 年代に策定されて以来、長らくファイル転送の定番として使われてきました。

ただし、FTP は通信内容を暗号化しないため、現在は SFTP (SSH File Transfer Protocol) や FTPS (FTP over TLS) への移行が推奨されています。

FTPの基本

項目内容
正式名File Transfer Protocol
RFCRFC 959 (1985年)
プロトコルTCP
標準ポート21 (制御)、20 (アクティブモードのデータ)
動作モデルクライアント/サーバー
認証ユーザ名/パスワード (平文)、Anonymous
セッション制御コネクション + データコネクション (別TCPセッション)

アクティブモードとパッシブモードの違い

モード動作向き
アクティブモードクライアントが待ち受け、サーバ→クライアントへデータ接続クライアント側にグローバルIP・受信可能ポートが必要。NAT 配下では失敗しやすい
パッシブモード (PASV)サーバが待ち受け、クライアント→サーバへデータ接続クライアントが NAT 配下でも動作。現在の主流

主なコマンド (FTPプロトコル)

コマンド用途
USER / PASSユーザ・パスワード認証
PWDカレントディレクトリ表示
CWDディレクトリ変更
LIST / NLSTファイル一覧
RETRファイルダウンロード
STORファイルアップロード
DELEファイル削除
MKD / RMDディレクトリ作成・削除
PASV / EPSVパッシブモードへ切替 (IPv4/IPv6)
TYPE A / TYPE IASCIIモード / Binaryモード
QUIT切断

FTP / FTPS / SFTP の違い

プロトコル暗号化ポート位置づけ
FTPなし (平文)21 / 20レガシー。本番運用での新規利用は非推奨
FTPS (FTP over TLS)TLS21 (Explicit) / 990 (Implicit)FTPに TLS を被せたもの。CA証明書が必要
SFTPSSH22名前は似ているが FTPとは別物。SSH 上のファイル転送
HTTPSダウンロードTLS443Web経由配信。CDN との相性が良い

主なFTPクライアント

ソフトウェア環境備考
FileZillaWindows / Mac / LinuxOSS。FTP/FTPS/SFTP 対応
WinSCPWindowsFTP/FTPS/SFTP/SCP 対応
CyberduckMac / Windows多数プロトコル対応
OS標準 ftp コマンドLinux / Windows制限多。学習・スクリプト向け
curl / wgetLinux / WindowsFTP URL 直指定で取得可能

主なFTPサーバ

  • vsftpd — Linux で広く使われる軽量FTPサーバ。FTPS 対応
  • ProFTPD — 機能豊富、設定が Apache 風
  • Pure-FTPd — シンプルで管理しやすい
  • IIS FTP — Windows サーバ標準

セキュリティ上の注意

  • 平文 FTP は盗聴可能。ID・パスワード・ファイル内容がそのまま流れる
  • 外部公開する場合はFTPS または SFTP を必須化する
  • Anonymous FTP は限定された公開配布用途以外で使わない
  • パッシブモードのデータポート範囲をファイアウォールで穴あけする際は、可能な限り狭く設定
  • クライアント/サーバ共に古い実装はBuffer Overflow 等の既知脆弱性がある

関連