區別:1.連結方式不同,FTP使用TCP連接埠21上的「控制連接」建立連接,而SFTP透過SSH協定(TCP連接埠22)建立連接;2、SFTP使用加密解密技術來傳輸數據,安全性比FTP高;3、SFTP的傳輸效率比FTP低。
本教學操作環境:linux5.9.8系統、Dell G3電腦。
在linux實際專案開發中最常使用的檔案傳輸的方式有ftp和sftp兩種,但這兩個傳輸方式各有什麼特點呢?本文接下來將討論SFTP、FTP的區別。
一、FTP協定
FTP是TCP/IP協定群組中的協定之一,TP協定由兩個部分組成:
FTP伺服器(用來儲存檔案)
FTP客戶端(使用者可以使用FTP客戶端透過FTP協定存取位於FTP伺服器上的資源)
預設情況下FTP協定使用TCP連接埠中的20和21這兩個連接埠。 21連接埠用於傳輸控制訊息,而是否使用20作為傳輸資料的連接埠與FTP所使用的傳輸模式有關,如果採用被動模式則具體使用哪個連接埠要伺服器端和客戶端協商決定。 FTP傳輸模式分為以下兩種:
主動模式(Port)
#被動模式(Passive)
#1、主動模式
FTP客戶端首先和FTP伺服器的TCP21連接埠建立連接,透過這個通道發送命令,客戶端需要接收資料的時候在這個頻道上發送PORT命令。 PORT指令包含了客戶端用什麼連接埠接收資料。在傳送資料的時候,伺服器端透過自己的TCP 20連接埠連接至客戶端的指定連接埠傳送資料。
2、被動模式
#在建立控制通道與主動模式相似,但建立連線後是Pasv指令。 FTP伺服器收到Pasv指令後便隨機打開一個高階埠(埠號大於1024)並且通知客戶端在這個埠上傳送資料的請求,客戶端連接FTP伺服器此端口,透過三次握手建立通道,然後FTP伺服器將透過這個連接埠進行資料的傳送。
注意:很多防火牆在設定的時候都是不允許接受外部發起的連線的,所以許多位於防火牆後或內網的FTP伺服器不支援PASV模式,因為客戶端無法穿過防火牆開啟FTP伺服器的高階連接埠;而許多內網的客戶端不能用PORT模式登陸FTP伺服器,因為從伺服器的TCP 20無法和內部網路的客戶端建立一個新的連接,造成無法運作。
SFTP協定
SFTP是SSH File Transfer Protocol的縮寫,安全文件傳送協定。 SFTP與FTP有著幾乎一樣的語法與功能。 SFTP為SSH的其中一部分,是一種傳輸檔案至 Blogger 服務器的安全方式。其實在SSH軟體包中,已經包含了一個叫作SFTP的安全文件資訊傳輸子系統,SFTP本身沒有單獨的守護進程,它必須使用sshd守護程序(埠號預設是22)來完成對應的連線與答覆操作,所以從某種意義上來說,SFTP並不像伺服器程序,而更像是客戶端程式。
SFTP和FTP的主要差異
#連結方式:FTP使用TCP埠21上的控制連線建立連線。而,SFTP是在客戶端和伺服器之間透過SSH協定(TCP埠22)建立的安全連線來傳輸檔案。
安全性:SFTP使用加密傳輸認證資訊和傳輸的數據,所以使用SFTP相對於FTP是非常安全。
效率:SFTP這種傳輸方式使用了加密解密技術,所以傳輸效率比普通的FTP低很多。
相關推薦:《Linux影片教學》
以上是linux中FTP與sftp的差別是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!