FTP主動模式與被動模式

最近FTP的項目作得比較深刻,也就進一步把FTP主動和被動模式熟悉一下,須要知道的事,FTP是基於TCP服務的,不支持UDP。FTP,File Transfer Protocol,文件傳輸協議,通常人瞭解FTP,是經過他的一些相關客戶端如CuteFTP(大學時經常使用),Fillzilla,WinSCP等。

通常這些軟件默認FTP鏈接模式爲PASV,被動鏈接。即FTP客戶端向服務端口(默認是21)發出鏈接請求,服務端接到請求後創建命令鏈路。而後服務端經過命令鏈路發消息告訴客戶端,服務端XXXX端口,位於(1025—65535)之間,開放,與客戶端創建起數據鏈路,從而客戶端能夠進行數據上傳與下載。這個被動指的是客戶端被動收到服務端的消息,才能開始傳輸。通常這樣的話,可能會收到服務端防火牆的阻隔。

而主動模式,PORT,即FTP客戶端向服務端口(默認是21)發出鏈接請求,服務端接到請求後創建命令鏈路,這個過程與被動鏈接同樣。而後客戶端經過命令鏈路發消息告訴服務端,客戶端通常是20端口開放,服務端收到消息後鏈接該端口,創建起數據鏈路,從而進行數據的上傳下載。這個主動是指客戶端主動開放20端口,併發起與服務端創建數據傳輸的請求。這種模式,可能受限於客戶端防火牆的限制,另外也不能用與代理上網時的FTP服務,由於服務端收到客戶端請求後,他鏈接的代理服務器的端口。


主動模式(PORT)和被動模式(PASV)。主動模式是從服務器端向客戶端發起鏈接;被動模式是客戶端向服務器端發起鏈接。二者的共同點是都使用21端口進行用戶驗證及管理,差異在於傳送數據的方式不一樣,PORT模式的FTP服務器數據端口固定在20,而PASV模式則在1025-65535之間隨機 服務器

專業介紹以下:
主動FTP對FTP服務器的管理有利,但對客戶端的管理不利。由於FTP服務器企圖與客戶端的高位隨機端口創建鏈接,而這個端口頗有可能被客戶端的防火牆阻塞掉。被動FTP對FTP客戶端的管理有利,但對服務器端的管理不利。由於客戶端要與服務器端創建兩個鏈接,其中一個連到一個高位隨機端口,而這個端口頗有可能被服務器端的防火牆阻塞掉。

幸運的是,有折衷的辦法。既然FTP服務器的管理員須要他們的服務器有最多的客戶鏈接,那麼必須得支持被動FTP。咱們能夠經過爲FTP服務器指定一個有 限的端口範圍來減少服務器高位端口的暴露。這樣,不在這個範圍的任何端口會被服務器的防火牆阻塞。雖然這沒有消除全部針對服務器的危險,但它大大減小了危 險。

簡而言之:

主動模式(PORT)和被動模式(PASV)。主動模式是從服務器端向客戶端發起鏈接;被動模式是客戶端向服務器端發起鏈接。二者的共同點是都使用21端口進行用戶驗證及管理,差異在於傳送數據的方式不一樣,PORT模式的FTP服務器數據端口固定在20,而PASV模式則在1025-65535之間隨機


FTP主動模式與被動模式的解決與原理

FTP是File Transfer Protocol(文件傳輸協議)的縮寫,用來在兩臺計算機之間互相傳送文件。相比於HTTP,FTP協議要複雜得多。複雜的緣由,是由於FTP協議要用到兩個TCP鏈接,一個是命令鏈路,用來在FTP客戶端與服務器之間傳遞命令;另外一個是數據鏈路,用來上傳或下載數據。

FTP協議有兩種工做方式:PORT方式和PASV方式,中文意思爲主動式和被動式。

PORT(主動)方式的鏈接過程是:客戶端向服務器的FTP端口(默認是21)發送鏈接請求,服務器接受鏈接,創建一條命令鏈路。當須要傳送數據時,客戶端在命令鏈路上用PORT命令告訴服務器:「我打開了XXXX端口,你過來鏈接我」。因而服務器從20端口向客戶端的XXXX端口發送鏈接請求,創建一條數據鏈路來傳送數據。

PASV(被動)方式的鏈接過程是:客戶端向服務器的FTP端口(默認是21)發送鏈接請求,服務器接受鏈接,創建一條命令鏈路。當須要傳送數據時,服務器在命令鏈路上用PASV命令告訴客戶端:「我打開了XXXX端口,你過來鏈接我」。因而客戶端向服務器的XXXX端口發送鏈接請求,創建一條數據鏈路來傳送數據。
併發

歸納:
--------------------------------------------------------------------------------
主動模式:服務器向客戶端敲門,而後客戶端開門
被動模式:客戶端向服務器敲門,而後服務器開門
因此,若是你是若是經過代理上網的話,就不能用主動模式,由於服務器敲的是上網代理服務器的門,而不是敲客戶端的門
並且有時候,客戶端也不是輕易就開門的,由於有防火牆阻擋,除非客戶端開放大於1024的高端端口

--------------------------------------------------------------------------------


要用主動模式來下載,請您把下載工具的被動模式(PASV)都不要打勾,用主動模式來下載就OK了,若是在出錯,那就被動主動相互轉換一下

常見的FTP客戶端軟件的PASV方式的關閉方法

大部分FTP客戶端默認使用PASV方式,PASV模式的意式是被動模式。 在大部分FTP客戶端的設置裏,常見到的字眼都是「PASV」或「被動模式」。

IE: 工具 -> Internet選項 -> 高級 -> 「使用被動FTP」(須要IE6.0以上才支持)。

CuteFTP: Edit -> Setting -> Connection -> Firewall -> 「PASV Mode」
或 File -> Site Manager,在左邊選中站點 -> Edit -> 「Use PASV mode」

FlashGet: 工具 -> 選項 -> 代理服務器 -> 直接鏈接 -> 編輯 -> 「PASV模式」

FlashFXP: 選項 -> 參數選擇 -> 代理/防火牆/標識 -> 「使用被動模式」
或 站點管理 -> 對應站點 -> 選項 -> 「使用被動模式」
或 快速鏈接 -> 切換 -> 「使用被動模式」

LeapFTP: Option ->Preferences -> General->Proxy->Use Pasv Mode

從上面能夠看出,兩種方式的命令鏈路鏈接方法是同樣的,而數據鏈路的創建方法就徹底不一樣。而FTP的複雜性就在於此。
工具

相關文章
相關標籤/搜索