FTP(File Transfer Protocol,檔案傳輸協定)是一種應用層通訊協定,用於在「用戶端」與「伺服器」之間透過網路傳輸檔案,支援上傳、下載、刪除、重新命名與移動檔案等操作。它採用主從式架構,由用戶端主動連線 FTP 伺服器,廣泛用於網站檔案上傳、伺服器備份與大型檔案交換。
FTP 的運作原理
FTP 特點之一是同時使用兩條 TCP 連線通道:
-
命令通道(Control Channel):負責登入、變更目錄、列出檔案等指令與回應,例如
USER、PASS、LIST、RETR等。 -
資料通道(Data Channel):專門用來傳輸實際檔案內容或清單資料,例如下載檔案或傳回目錄列表時使用。
基本流程:
-
用戶端連線 FTP 伺服器的控制埠(預設 21),傳送帳號密碼登入。
-
登入成功後,下達指令(如切換目錄、列出檔案)。
-
當需要傳輸檔案或列表時,伺服器與用戶端再建立一條資料連線,傳送完畢後關閉資料通道,但控制通道仍保持連線。
主動模式與被動模式
為因應防火牆與 NAT 設定,FTP 有兩種資料連線模式:
-
主動模式(Active Mode):用戶端開啟埠、告訴伺服器位址與埠,伺服器主動回連該埠建立資料通道。若客戶端在防火牆後方,常被阻擋。
-
被動模式(Passive Mode):伺服器提供一個可用埠與 IP,用戶端主動連線過去,此模式較不受防火牆限制,也是現代預設常用方式。
FTP 的用途與典型場景
FTP 主要應用在:
-
網站管理:將 HTML、CSS、JavaScript、圖片等檔案上傳到虛擬主機或雲端伺服器。
-
系統備份:在伺服器之間傳輸大量日誌或備份檔案,如 DB Dump 或影像資料。
-
企業檔案交換:跨部門或跨公司共享大容量檔案,比電子郵件更適合處理 GB 級別資料。
常見用戶端工具有 FileZilla、WinSCP 以及各類 IDE 內建的 FTP 部署功能,用戶透過圖形介面拖拉檔案即可完成上傳下載。
FTP 的安全性與衍生協定
傳統 FTP 的安全性較弱:
-
帳號、密碼與資料都以明文傳輸,容易被攔截與竊聽(如在公共 Wi‑Fi)。
-
無內建加密與完整性保護,需額外手段強化安全。
因此衍伸出更安全的替代方案:
-
FTPS(FTP over SSL/TLS):在 FTP 上加入 SSL/TLS 加密,可分為 Explicit(FTPES)與 Implicit 模式。
-
SFTP(SSH File Transfer Protocol):建立在 SSH 之上的檔案傳輸協定,與 FTP 完全不同協定,但用途相似,提供加密、認證與完整性保護,是現代較推薦使用的方案。
FTP 的優點與限制
優點:
-
支援大檔與批次傳輸,適合大量檔案搬移與自動化腳本操作。
-
協定成熟、工具眾多、相容性高,許多老舊系統仍大量依賴。
限制與缺點:
-
明文傳輸導致重大安全風險,需改用 FTPS 或 SFTP 彌補。
-
使用多埠、多通道,容易被防火牆阻擋,設定較複雜。
-
協定本身無使用者體驗層的權限與版本控管,需要搭配其他系統管理。
總結來說,FTP 是歷史悠久的檔案傳輸協定,適合用於批量、大型檔案傳輸與網站部署,但在現代網路環境中,安全性與防火牆相容性是主要考量,實務上多以 FTPS 或 SFTP 作為更安全的替代方案。