一文了解FTP/FTPS/SFTP檔案傳輸協議

2023.11.20

一文了解FTP/FTPS/SFTP檔案傳輸協議

要使用SFTP進行檔案傳輸,需要一個SFTP客戶端軟體(如FileZilla、WinSCP等)和一個SFTP伺服器。連接SFTP伺服器時,需要提供伺服器的位址、連接埠號碼、使用者名稱和密碼(或使用SSH金鑰進行驗證)。

FTP介紹

FTP(File Transfer Protocol)是一種用於在電腦網路上進行檔案傳輸的協定。它允許用戶透過網路將檔案從一個電腦傳輸到另一個電腦。FTP使用客戶端-伺服器模型,其中客戶端透過FTP客戶端軟體連接到伺服器,並使用使用者名稱和密碼進行身份驗證。

FTP支援多種操作,包括上傳檔案到伺服器、從伺服器下載檔案、刪除伺服器上的檔案、重新命名檔案等。使用者可以透過FTP客戶端軟體進行這些操作,也可以透過命令列介面使用FTP指令進行操作。

使用FTP上傳檔案的範例指令:

  1. 連接到FTP伺服器:
ftp <服务器地址>
  • 1.
  1. 輸入使用者名稱和密碼進行登入:
<用户名>
<密码>
  • 1.
  • 2.

例如:

myusername
mypassword
  • 1.
  • 2.
  1. 切換到要上傳檔案的目錄:
cd <目录路径>
  • 1.

例如:

cd /path/to/upload/directory
  • 1.
  1. 設定傳輸模式為二進位模式:
binary
  • 1.
  1. 開始上傳文件:
put <本地文件路径>
  • 1.

例如:

put /path/to/local/file.txt
  • 1.
  1. 上傳完成後,斷開與FTP伺服器的連線:
bye
  • 1.

FTP工作原理

FTP協定基於客戶端-伺服器模型,其中客戶端透過FTP客戶端軟體與伺服器建立連接,並透過該連接發送和接收檔案。

  1. 建立連線:客戶端使用FTP客戶端軟體與伺服器建立連線。通常使用TCP協定的預設連接埠號碼21進行連線。
  2. 身份驗證:客戶端在連線建立後,需要提供使用者名稱和密碼進行身份驗證。這些憑證用於驗證用戶端是否有權限存取伺服器上的檔案。
  3. 目錄導航:一旦驗證成功,客戶端可以使用FTP指令來導覽伺服器上的目錄結構。常用的指令包括CD(改變目錄)、LS(列出目錄內容)等。
  4. 檔案傳輸:客戶端可以使用FTP指令來上傳和下載檔案。上傳檔案時,用戶端將本機檔案傳送到伺服器;下載檔案時,用戶端會從伺服器取得檔案。
  5. 資料傳輸模式:FTP支援兩種資料傳輸模式:主動模式和被動模式。在主動模式下,伺服器主動連接客戶端的資料連接埠進行資料傳輸;在被動模式下,用戶端主動連接伺服器的資料連接埠進行資料傳輸。
  6. 斷開連線:當檔案傳輸完成或不再需要連線時,用戶端可以透過發送QUIT命令來中斷與伺服器的連線。

FTP的工作原理是透過建立連線、驗證、目錄導航和檔案傳輸等步驟,來實現在電腦網路上進行檔案傳輸的功能。

FTP資料傳輸模式區別

在FTP中,有兩種​​不同的資料傳輸模式:主動模式(Active Mode)和被動模式(Passive Mode)。

  1. 主動模式(Active Mode): 在主動模式下,客戶端首先建立一個控制連線(Control Connection)到伺服器的FTP控制連接埠(預設為21)。當需要傳輸資料時,用戶端會隨機選擇一個連接埠(稱為N)並通知伺服器,然後伺服器會透過控制連線告知用戶端使用新的資料連線(Data Connection)來傳輸資料。在主動模式下,資料連線是由伺服器主動發起的,客戶端則充當資料接收方。
  2. 被動模式(Passive Mode): 在被動模式下,客戶端首先建立一個控制連接到伺服器的FTP控制連接埠。當需要傳輸資料時,伺服器會隨機選擇一個連接埠(稱為N)並通知客戶端,然後客戶端會透過控制連線告知伺服器使用新的資料連線來傳輸資料。在被動模式下,資料連線是由客戶端主動發起的,伺服器則充當資料接收方。

主動模式和被動模式的差異在於資料連線的建立方式。在主動模式下,伺服器主動啟動資料連接,而在被動模式下,用戶端主動啟動資料連線。這兩種模式的選擇取決於網路環境和防火牆的配置。在某些情況下,主動模式可能會受到防火牆的限制,而被動模式則可以更好地適應各種網路環境。因此,在使用FTP進行資料傳輸時,需要根據具體情況選擇合適的模式。

FTPS介紹

FTPS(File Transfer Protocol Secure)是一種安全的檔案傳輸協議,它是在FTP(File Transfer Protocol)的基礎上添加了SSL/TLS加密層來保護資料傳輸的安全性。

使用FTPS可以實現在客戶端和伺服器之間進行加密的檔案傳輸。它使用SSL/TLS協定對資料進行加密和身份驗證,確保傳輸過程中的資料安全性和完整性。

FTPS可以透過兩種模式進行傳輸:顯式模式和隱式模式。在明確模式下,客戶端和伺服器之間的通訊始終是明文的,但在建立資料連線時會使用SSL/TLS進行加密。而在隱式模式下,整個通訊過程都是加密的。

使用FTPS可以有效保護檔案傳輸過程中的敏感數據,防止資料被竊取或竄改。它廣泛應用於需要保護資料安全的場景,如網站檔案上傳、備份和遠端檔案管理等。

SFTP介紹

SFTP(Secure File Transfer Protocol)是一種安全的檔案傳輸協議,用於在電腦網路上安全地傳輸檔案。它透過SSH(Secure Shell)協定進行加密和身份驗證,確保文件傳輸的機密性和完整性。

使用SFTP可以實現以下功能:

  • 檔案上傳和下載:可以將檔案從本機上傳到遠端伺服器,或從遠端伺服器下載到本機。
  • 檔案和目錄管理:可以建立、刪除、重新命名和移動檔案和目錄。
  • 權限控制:可以設定檔案和目錄的權限,限制使用者對檔案的存取和操作。
  • 斷點續傳:如果檔案傳輸過程中斷,SFTP可以恢復傳輸,從中斷的地方繼續傳輸。

要使用SFTP進行檔案傳輸,需要一個SFTP客戶端軟體(如FileZilla、WinSCP等)和一個SFTP伺服器。連接SFTP伺服器時,需要提供伺服器的位址、連接埠號碼、使用者名稱和密碼(或使用SSH金鑰進行驗證)。

使用SFTP上傳檔案的範例指令:

sftp username@hostname
put local_file remote_file
  • 1.
  • 2.

其中,username是遠端伺服器的使用者名,hostname是遠端伺服器的位址,local_file是本機上的檔案路徑,remote_file是遠端伺服器上保存檔案的路徑。

FTP常用工具

  1. FileZilla:FileZilla是一個免費的開源FTP客戶端,支援Windows、Mac和Linux作業系統。它具有直覺的用戶介面,可以輕鬆管理和傳輸文件。
  2. WinSCP:WinSCP是一個Windows平台上的免費開源SFTP、SCP和FTP客戶端。它提供了圖形化介面和命令列介面,支援檔案傳輸、檔案管理和遠端執行命令等功能。
  3. CuteFTP:CuteFTP是功能強大的商業FTP客戶端,支援Windows作業系統。它具有直覺的使用者介面和豐富的功能,如檔案傳輸、資料夾同步、檔案編輯等。
  4. Cyber​​duck:Cyber​​duck是一個免費的FTP和雲端儲存用戶端,支援Windows和Mac作業系統。它支援多種協議,包括FTP、SFTP、WebDAV、Amazon S3等,可以方便地管理和傳輸檔案。

這些工具都提供了簡單易用的介面和豐富的功能,可以滿足大多數FTP操作的需求。