FTP(檔案傳輸協議)提供兩種截然不同的傳輸模式,選擇正確的模式關係到檔案完整性與傳輸效率。
適用於純文字檔案(如 .txt、.html、.css、原始碼)。此模式下,FTP 會自動轉換換行符與字元編碼,使檔案在不同作業系統(Windows、Linux、macOS)間正常顯示。若遠端主機非 Unix 系統,FTP 會自動調整檔案格式以符合目標系統的文字儲存慣例。
適用於所有非純文字檔案:執行檔(.exe)、資料庫、壓縮檔(.zip、.tar.gz)、文書檔(.docx、.pdf)、圖片、影音檔等。此模式下,FTP 逐位元複製,不做任何轉換,確保來源與目的端檔案位元序列完全一致。切記:用 ASCII 模式傳輸二進位檔案會導致檔案損毀、無法執行或資料遺失。
FTP 使用兩條通道:命令通道(控制連線,預設 TCP 21)與資料通道(資料傳輸)。兩者的建立方式決定了主動/被動模式。
PORT 命令,告知伺服器「我開啟了本地端口 X,請連過來」。缺點:客戶端若在防火牆/NAT 後方,伺服器無法主動連入,導致資料通道建立失敗。
PASV 命令。優勢:客戶端主動發起所有連線,易於穿越客戶端防火牆/NAT。挑戰:伺服器需開放大範圍高位埠,且若伺服器在防火牆後方,外部客戶端無法連入資料埠。