【道勤網(wǎng)】- bmrsportswear.com 軟件視頻自學教程|免費教程|自學電腦|3D教程|平面教程|影視動畫教程|辦公教程|機械設計教程|網(wǎng)站設計教程!【道勤網(wǎng)】

標題: FTP主動模式與被動模式 [打印本頁]

作者: 學習NO.1    時間: 2015-3-1 08:44
標題: FTP主動模式與被動模式
本帖最后由 學習NO.1 于 2015-3-1 08:55 編輯

最近FTP的項目做得比較深入,也就進一步把FTP主動和被動模式熟悉一下,需要知道的事,F(xiàn)TP是基于TCP服務的,不支持UDP。FTP,F(xiàn)ile Transfer Protocol,文件傳輸協(xié)議,一般人了解FTP,是通過他的一些相關客戶端如CuteFTP(大學時常用),Fillzilla,WinSCP等。

一般這些軟件默認FTP連接模式為PASV,被動連接。即FTP客戶端向服務端口(默認是21)發(fā)出連接請求,服務端接到請求后建立命令鏈路。然后服務端通過命令鏈路發(fā)消息告訴客戶端,服務端XXXX端口,位于(1025—65535)之間,開放,與客戶端建立起數(shù)據(jù)鏈路,從而客戶端可以進行數(shù)據(jù)上傳與下載。這個被動指的是客戶端被動收到服務端的消息,才能開始傳輸。一般這樣的話,可能會收到服務端防火墻的阻隔。

而主動模式,PORT,即FTP客戶端向服務端口(默認是21)發(fā)出連接請求,服務端接到請求后建立命令鏈路,這個過程與被動連接一樣。然后客戶端通過命令鏈路發(fā)消息告訴服務端,客戶端一般是20端口開放,服務端收到消息后連接該端口,建立起數(shù)據(jù)鏈路,從而進行數(shù)據(jù)的上傳下載。這個主動是指客戶端主動開放20端口,并發(fā)起與服務端建立數(shù)據(jù)傳輸?shù)恼埱。這種模式,可能受限于客戶端防火墻的限制,另外也不能用與代理上網(wǎng)時的FTP服務,因為服務端收到客戶端請求后,他連接的代理服務器的端口。


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

專業(yè)介紹如下:
主動FTP對FTP服務器的管理有利,但對客戶端的管理不利。因為FTP服務器企圖與客戶端的高位隨機端口建立連接,而這個端口很有可能被客戶端的防火墻阻塞掉。被動FTP對FTP客戶端的管理有利,但對服務器端的管理不利。因為客戶端要與服務器端建立兩個連接,其中一個連到一個高位隨機端口,而這個端口很有可能被服務器端的防火墻阻塞掉。

幸運的是,有折衷的辦法。既然FTP服務器的管理員需要他們的服務器有最多的客戶連接,那么必須得支持被動FTP。我們可以通過為FTP服務器指定一個有 限的端口范圍來減小服務器高位端口的暴露。這樣,不在這個范圍的任何端口會被服務器的防火墻阻塞。雖然這沒有消除所有針對服務器的危險,但它大大減少了危 險。

簡而言之:

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


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

FTP是File Transfer Protocol(文件傳輸協(xié)議)的縮寫,用來在兩臺計算機之間互相傳送文件。相比于HTTP,F(xiàn)TP協(xié)議要復雜得多。復雜的原因,是因為FTP協(xié)議要用到兩個TCP連接,一個是命令鏈路,用來在FTP客戶端與服務器之間傳遞命令;另一個是數(shù)據(jù)鏈路,用來上傳或下載數(shù)據(jù)。

FTP協(xié)議有兩種工作方式:PORT方式和PASV方式,中文意思為主動式和被動式。

PORT(主動)方式的連接過程是:客戶端向服務器的FTP端口(默認是21)發(fā)送連接請求,服務器接受連接,建立一條命令鏈路。當需要傳送數(shù)據(jù)時,客戶端在命令鏈路上用PORT命令告訴服務器:“我打開了XXXX端口,你過來連接我”。于是服務器從20端口向客戶端的XXXX端口發(fā)送連接請求,建立一條數(shù)據(jù)鏈路來傳送數(shù)據(jù)。

PASV(被動)方式的連接過程是:客戶端向服務器的FTP端口(默認是21)發(fā)送連接請求,服務器接受連接,建立一條命令鏈路。當需要傳送數(shù)據(jù)時,服務器在命令鏈路上用PASV命令告訴客戶端:“我打開了XXXX端口,你過來連接我”。于是客戶端向服務器的XXXX端口發(fā)送連接請求,建立一條數(shù)據(jù)鏈路來傳送數(shù)據(jù)。

概括:
--------------------------------------------------------------------------------
主動模式:服務器向客戶端敲門,然后客戶端開門
被動模式:客戶端向服務器敲門,然后服務器開門
所以,如果你是如果通過代理上網(wǎng)的話,就不能用主動模式,因為服務器敲的是上網(wǎng)代理服務器的門,而不是敲客戶端的門
而且有時候,客戶端也不是輕易就開門的,因為有防火墻阻擋,除非客戶端開放大于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: 選項 -> 參數(shù)選擇 -> 代理/防火墻/標識 -> “使用被動模式”
或 站點管理 -> 對應站點 -> 選項 -> “使用被動模式”
或 快速連接 -> 切換 -> “使用被動模式”
如下圖:
(, 下載次數(shù): 115)

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

從上面可以看出,兩種方式的命令鏈路連接方法是一樣的,而數(shù)據(jù)鏈路的建立方法就完全不同。而FTP的復雜性就在于此。










歡迎光臨 【道勤網(wǎng)】- bmrsportswear.com 軟件視頻自學教程|免費教程|自學電腦|3D教程|平面教程|影視動畫教程|辦公教程|機械設計教程|網(wǎng)站設計教程!【道勤網(wǎng)】 (http://bmrsportswear.com/) Powered by Discuz! X3.4