FTP (File Transfer Protocol) 是 TCP/IP 協定族中專責**雙向檔案傳輸**的應用層協定,採 **Client/Server (C/S) 架構**。本文說明 FTP 核心作用、雙程序運作模式、圖形/字元介面差異、標準操作流程與常用工具,建立完整基礎認知。
啟動 FTP 傳輸時,實際運行兩個程式:
| 端點 | 程式角色 | 職責 |
|---|---|---|
| 本地 (Client) | FTP 客戶端程式 | 發起連線、送出指令 (USER、PASS、LIST、RETR、STOR 等)、接收/儲存檔案、顯示進度與狀態 |
| 遠端 (Server) | FTP 服務端程式 | 監聽埠 (預設 21)、驗證身分、執行指令、讀取/寫入檔案系統、回應狀態碼與資料 |
| 類型 | 特點 | 適用場景 |
|---|---|---|
| 字元介面 (CLI) | 指令豐富複雜、可腳本化、無圖形依賴 | 伺服器管理、自動化備份、嵌入式裝置、滲透測試 |
| 圖形介面 (GUI) | 拖曳操作、多線程、隊列管理、站台管理器、編碼自動偵測 | 日常檔案管理、大量傳輸、非技術使用者 |
ftp://host 快速匿名下載,功能極簡。| 模式 | 控制連線 | 資料連線發起方 | 適用場景 |
|---|---|---|---|
| 主動 | Client → Server:21 | Server:20 → Client:隨機高埠 | Client 無防火牆/NAT,Server 公網 IP |
| 被動 | Client → Server:21 | Client → Server:隨機高埠 (PASV 回應) | Client 在 NAT/防火牆後 (最常見) |
現代網路環境 **被動模式 (PASV) 為預設**,伺服器需在防火牆開放被動埠範圍 (如 50000-51000) 並設定對外 IP。
FTP 雖歷經數十年仍是檔案傳輸基石,理解其 C/S 架構、雙連線模式、傳輸模式差異、標準操作流程,能幫助您選擇適合工具、快速排除連線/傳輸故障、撰寫可靠自動化腳本。安全性方面,生產環境**強制建議改用 FTPS (SSL/TLS) 或 SFTP (SSH)**,淘汰明文 FTP。