FTP (File Transfer Protocol,檔案傳輸協定) 是 TCP/IP 協定族中實現**跨異構系統檔案雙向傳輸**的基石應用層協定。本文從定義、架構、匿名機制、搜尋工具、客戶端操作五大面向,為初學者建立完整 FTP 基礎知識體系。
定義與地位
- 全稱:File Transfer Protocol,中文「檔案傳輸協定」。
- 層級:TCP/IP 協定族**應用層**協定,埠號 21 (控制) / 20 (主動模式資料)。
- 目標:提升檔案共享性、屏蔽存儲介質差異、提供可靠高效傳輸、支援非互動式遠端檔案存取。
- 本質:完成兩台電腦之間的**檔案複製** —— 下載、上傳。
C/S 架構運作流程
- 用戶啟動 **FTP 客戶端程式** (CLI/GUI)。
- 客戶端向 **FTP 服務端程式** (Daemon) 發起 TCP 連線 (Port 21)。
- 用戶透過客戶端送出指令 (USER、PASS、CWD、LIST、RETR、STOR 等)。
- 服務端執行指令,回應狀態碼 (2xx/3xx/4xx/5xx) 與資料。
- 資料傳輸時建立**第二條 TCP 連線** (Port 20 主動 / 隨機高埠被動)。
- 客戶端接收資料存入本地檔案系統。
核心概念:下載 vs 上傳
| 術語 | 英文 | 動作方向 |
| 下載 | Download | 遠端主機 → 本地電腦 |
| 上傳 | Upload | 本地電腦 → 遠端主機 |
登入與授權機制
實名登入
- 需擁有遠端主機有效 **用戶 ID + 密碼**。
- 獲得相應權限後方可上傳/下載/刪除/建立目錄。
匿名 FTP (Anonymous FTP) — 解決開放共享難題
- 機制:系統建立特殊帳號
anonymous (或 ftp),**任何人可用此帳號登入**。
- 密碼:慣例填入 **使用者 Email 位址**,供管理員審計追蹤。
- 限制:
❌ 通常**僅允許下載,禁止上傳**。
✅ 若允許上傳,**僅限指定上傳目錄** (Incoming),管理員審核/掃毒後移至公開下載區。
❌ 系統其餘目錄對匿名用戶隱藏 (chroot 隔離)。
- 前提:遠端主機**必須在 /etc/passwd 建立 ftp 用戶**,並啟用匿名服務。
Archie 搜尋服務 — 海量匿名 FTP 索引
- 痛點:Internet 上成千上萬匿名 FTP 主機、海量檔案,**如何找到目標檔案位置?**
- 解決:Archie 服務器 自動巡檢 FTP 主機,建立**全文檔案目錄資料庫**。
- 用法:查詢 Archie → 取得檔案所在主機 + 目錄路徑 → 直接 FTP 連線下載。
- 現狀:早期關鍵工具,現多被 Web 搜尋引擎、專門檔案索引站取代。
客戶端程式分類與操作要點
| 類型 | 代表 | 特點 | 操作要點 |
| 字元介面 (CLI) | 系統內建 ftp.exe、lftp, ncftp | 指令多、可腳本化、無圖形依賴 | 熟記核心指令:open、user、pass、bin/ascii、cd/lcd、dir/ls、get/mget、put/mput、bye |
| 圖形介面 (GUI) | FileZilla, WinSCP, FlashFXP, CuteFTP | 拖曳、多線程、隊列、站台管理、編碼偵測 | 站台管理器新增:主機/帳密/埠/協定(FTPS/SFTP) → 連線 → 拖曳傳輸 |
| 瀏覽器 | IE/Edge/Chrome/Firefox | 零安裝、僅支援基本匿名下載 | 網址列輸入 ftp://host/path 或 ftp://user:pass@host |
實用操作建議
- 非文字檔務必用 Binary 模式,否則檔案損毀。
- 大量傳輸關閉互動提示 (CLI:
prompt;GUI: 隊列模式)。
- 斷點續傳:支援
REST/APPE 的客戶端與服務端配合使用。
- 安全性:生產環境**強制 FTPS (SSL/TLS) 或 SFTP (SSH)**,淘汰明文 FTP (帳密/資料裸奔)。
- 被動模式 (PASV) 為現代預設,客戶端/防火牆/伺服器三方需協同開放被動埠範圍。
總結
FTP 以標準化協定跨越作業系統、硬體架構差異,構建了 Internet 早期最龐大的檔案共享生態。雖然 Web、雲端儲存、P2P 等新技術分流了大量場景,FTP/FTPS/SFTP 在伺服器自動化備份、大檔案跨網段傳輸、嵌入式設備固件升級、企業級資料交換等領域仍不可替代。掌握其協定本質、架構模型、匿名機制與客戶端操作,是每位 IT 從業者的必修基礎功。