FTP、FTPS和SFTP

FTPS==>FTP over ssl數據庫

SFTP==>ssh  + ftp;安全

 

FTP
1、兩種傳輸方式
ASCII傳輸方式
假定用戶正在拷貝的文件包含的簡單ASCII碼文本,若是在遠程機器上運行的不是UNIX,當文件傳輸時ftp一般會自動地調整文件的內容以便於把文件解釋成另外那臺計算機存儲文本文件的格式。
可是經常有這樣的狀況,用戶正在傳輸的文件包含的不是文本文件,它們多是程序,數據庫,字處理文件或者壓縮文件。在拷貝任何非文本文件以前,用binary 命令告訴ftp逐字拷貝。服務器

二進制傳輸方式
在二進制傳輸中,保存文件的位序,以便原始和拷貝的是逐位一一對應的。ssh

如在ASCII方式下傳輸二進制文件,即便不須要也仍會轉譯。這會損壞數據。(ASCII方式通常假設每一字符的第一有效位無心義,由於ASCII字符組合不使用它。若是傳輸二進制文件,全部的位都是重要的。)加密

2、兩種工做模式
主動模式(PORT)
1.FTP 客戶端首先和服務器的TCP 21端口創建鏈接,用來發送命令;設計

2.客戶端須要接收數據的時候在這個通道上給服務器發送PORT命令。PORT命令包含了客戶端用來接收數據的端口號;server

3.在傳送數據的時候,服務器端經過本身的TCP 20端口鏈接至客戶端的指定端口發送數據。(FTP server必須和客戶端創建一個新的鏈接用來傳送數據。)ssl

被動模式(PASV)
1.FTP 客戶端首先和服務器的TCP 21端口創建鏈接,用來發送命令(創建控制通道和Standard模式相似);class

2.創建鏈接後發送Pasv命令。登錄

3.服務器收到Pasv命令後,打開一個臨時端口(端口號大於1023小於65535)而且通知客戶端在這個端口上傳送數據的請求;

4.客戶端鏈接FTP服務器此端口,而後FTP服務器將經過這個端口傳送數據。

簡而言之,主動模式的FTP是指服務器主動鏈接客戶端的數據端口,被動模式的FTP是指服務器被動地等待客戶端鏈接本身的數據端口。
被動模式的FTP一般用在處於防火牆以後的FTP客戶端訪問外界FTP服務器的狀況,由於在這種狀況下,防火牆一般配置爲不容許外界訪問防火牆以後主機,而只容許由防火牆以後的主機發起的鏈接請求經過。所以,在這種狀況下不能使用主動模式的FTP傳輸,而被動模式的FTP能夠良好的工做。(相反,客戶端訪問處於防火牆以後的FTP服務器則要用到主動模式)

FTPS與SFTP的對比
1.都是爲ftp鏈接加密,協議很是類似。

2.FTPS是藉助ssl協議加密,SFTP是藉助ssh加密。ssl是爲http/smtp等加密設計的,ssh是爲telnet/ftp等加密、創建傳輸通道而設計的。

3.其實ssh創建傳輸通道就是爲了加密和傳輸,並且這個通道是能夠用來遠程登陸。

4.若是隻說它們的功能,通俗的講,ssh就像鋪管子,ssl就像打包裹,鋪管子和打包裹都會使數據安全,都是一個製做密鑰的過程,而由於ssh是一個管子因此它很適合ftp的安全傳輸。

簡單的講:sftp協議是ssh中的一條獨立的協議,利用sftp服務器就能夠傳輸數據。 而ftps是ftp-over-ssl的意思,即ftp藉助ssl協議加密傳輸,不但要用ftp服務器還要用ssl協議加密。(若是是ftp-over-ssh,就是徹底不一樣於sftp的傳輸方式了,就是利用ftp服務器和ssh協議加密傳輸數據。 ) 

相關文章
相關標籤/搜索