主動方式:在通過21號埠連線好控制通道後,客戶端傳送給伺服器port命令,port命令包含了客戶端用什麼埠接收資料,就是給ftp伺服器說咱們倆通訊你可以和我的這個埠進行,於是ftp伺服器端通過自己的tcp 20埠連線至客戶端的指定埠傳送資料,傳送資料需要建立乙個新的連線。
被動方式:在通過21號埠連線好控制通道後,客戶端傳送給伺服器pasv命令,就是給伺服器說咱們倆通訊的埠號你選擇,然後伺服器隨機選擇乙個埠(埠號大於1024小於65535),ftp客戶端連線至此埠,進行通訊。不需要建立乙個新的連線。
從上面的解釋中我們能夠看到,兩種模式基本的不同是資料連線建立的不同。對於port模式,是client在本地開啟乙個port等ftp伺服器去連線建立資料連線,而pasv模式就是server開啟乙個port等待client去建立乙個資料連線。
很多防火牆在設定的時候都是不允許接受外部發起的連線的,所以許多位於防火牆後或內網的ftp伺服器不支援pasv模式,因為客戶端無法穿過防火牆開啟ftp伺服器的高階埠;而許多內網的客戶端不能用port模式登陸ftp伺服器,因為從伺服器的tcp 20無法和內部網路的客戶端建立乙個新的連線,造成無法工作。
2、傳輸方式
ftp的傳輸有兩種方式:ascii、二進位制。
ascii傳輸方式
假定使用者正在拷貝的檔案包含的簡單ascii碼文字,如果在遠端機器上執行的不是unix,當檔案傳輸時ftp通常會自動地調整檔案的內容以便於把檔案解釋成另外那台計算機儲存文字檔案的格式。
但是常常有這樣的情況,使用者正在傳輸的檔案包含的不是文字檔案,它們可能是程式,資料庫,字處理檔案或者壓縮檔案。在拷貝任何非文字檔案之前,用binary 命令告訴ftp逐字拷貝。
二進位制傳輸模式
在二進位制傳輸中,儲存檔案的位序,以便原始和拷貝的是逐位一一對應的。即使目的地機器上包含位序列的檔案是沒意義的。例如,macintosh以二進位制方式傳送可執行檔案到windows系統,在對方系統上,此檔案不能執行。
如在ascii方式下傳輸二進位制檔案,即使不需要也仍會轉譯。這會損壞資料。(ascii方式一般假設每一字元的第一有效位無意義,因為ascii字元組合不使用它。如果傳輸二進位制檔案,所有的位都是重要的。)
二、ftps (一種多傳輸協議)
ssl/tls協議在傳輸層(tcp/ip)之上、但是在應用層之下工作的。因此,它可以很容易在諸如http,telnet,pop3,imap4,smtp和ftp等應用層協議上實現。ssl安全擴充套件至少有兩種不同的初始化方法:顯式安全和隱式安全。
顯示安全:為了建立ssl連線,顯式安全要求ftp客戶端在和ftp伺服器建立連線後傳送乙個特定的命令給ftp伺服器。客戶端使用伺服器的預設埠。
隱式安全: 當ftp客戶端連線到ftp伺服器時,隱式安全將會自動和ssl連線一起開始執行。在隱式安全中伺服器定義了乙個特定的埠(tcp埠990)讓客戶端來和其建立安全連線。
三、sftp(安全檔案傳送協議)
sftp是secure file transfer protocol的縮寫,安全檔案傳送協議。可以為傳輸檔案提供一種安全的加密方法。sftp 與 ftp 有著幾乎一樣的語法和功能。sftp 為 ssh的一部分,是一種傳輸檔案至 blogger 伺服器的安全方式。其實在ssh軟體包中,已經包含了乙個叫作sftp(secure file transfer protocol)的安全檔案傳輸子系統,sftp本身沒有單獨的守護程序,它必須使用sshd守護程序(埠號預設是22)來完成相應的連線操作,所以從某種意義上來說,sftp並不像乙個伺服器程式,而更像是乙個客戶端程式。sftp同樣是使用加密傳輸認證資訊和傳輸的資料,所以,使用sftp是非常安全的。但是,由於這種傳輸方式使用了加密/解密技術,所以傳輸效率比普通的ftp要低得多,如果您對網路安全性要求更高時,可以使用sftp代替ftp。
四、sftp 和ftps的區別
sftp 和ftps都是提供安全的鏈結,協議非常相似。
乙個是借助ssl協議加密,乙個時借助ssh加密。
ssl是為http/smtp等加密設計的,ssl證書是http明文協議公升級https加密協議的重要渠道,是網路安全傳輸的加密到通道。ssh是為telnet/ftp等加密、建立傳輸通道而設計的。
其實ssh建立傳輸通道就是為了加密和傳輸,而且這個通道是可以用來遠端登入。如果只說它們的功能,通俗的講,ssh就像鋪管子,ssl就像打包裹,鋪管子和打包裹都會使資料安全,都是乙個製作金鑰的過程,而因為ssh是乙個管子所以它很適合ftp的安全傳輸。
簡單的講:sftp協議是ssh中的一條獨立的協議,利用sftp伺服器就可以傳輸資料。而ftps是ftp-over-ssl的意思,即ftp借助ssl協議加密傳輸,不但要用ftp伺服器還要用ssl協議加密。(如果是ftp-over-ssh,就是完全不同於sftp的傳輸方式了,就是利用ftp伺服器和ssh協議加密傳輸資料。 )
這兩種協議是不同的。sftp是ssh內含的協議,僅僅要sshdserver啟動了,它就可用,它本身不須要ftpserver啟動。ftp over ssh2則象乙個二傳手。
sftp和ftp的區別
1 ftp架構 2 ftp通訊埠知識 ftp伺服器和客戶端要進行檔案傳輸,就需要通過埠來進行。ftp協議需要的埠一般包括兩種 控制鏈路 tcp埠21 控制器端。用於傳送指令給伺服器以及等待伺服器響應。所有你發往ftp伺服器的命令和伺服器反饋的指令都是通過伺服器上的21埠傳送的。資料鏈路 tcp埠20...
FTP和SFTP的區別
檔案傳送協議ftp file transfer protocol 是tcp ip協議簇中的乙個成員,也是現在網際網路上最廣泛的檔案傳送協議。ftp協議包括兩個部分,乙個是ftp客戶端,另乙個是ftp伺服器。當然,ftp伺服器是用來儲存檔案資源的,ftp客戶端通過訪問ftp伺服器來獲得資源的。一般情況...
SFTP和FTP的區別
可以不用額外安裝任何伺服器端程式 會更省系統資源 sftp 使用加密傳輸認證資訊和傳輸資料,相對來說會更安全 也不需要單獨配置,對新手來說比較簡單 開啟 ssh 預設就開啟了 stfp a ftp 是一種檔案傳輸協議,一般是為了方便資料共享的。包括乙個 ftp 伺服器和多個 ftp 客戶端。b c ...