com.enterprisedt.net.ftp.ftpclient ftp元件的使用:
ftp.getconnectmode()
ftp.isautopassiveipsubstitution()預設》預設ftp伺服器需要被動連線
ftp連線方式分為兩種:active & pasv
port模式的連線過程是:在開始乙個ftp的連線時,客戶端程式首先會為自己隨機分配乙個tcp埠,使用這個埠向伺服器的ftp埠(預設為21)發出連線請求,伺服器接受請求之後會建立一條控制鏈路,然後客戶程式發出port命令(通常格式為port a, a, a, a, i,i,其中a,a,a,a為客戶端ip位址,i,i為隨機的乙個資料連線埠號)告訴伺服器它的資料通道的埠開啟了。在傳送資料的時候,伺服器端通過自己的tcp20埠連線至客戶端的指定埠傳送資料。ftpserver必須和客戶端建立乙個新的連線用來傳送資料。
---------------
所謂pasv模式也就是被動模式。隨著網路的不斷發展,出現了防火牆。老的ftp協議在遇到防火牆的時候就束手無策了,這是因為20埠往往是防火牆的重點封堵物件,因此資料也就不能傳送出去了,於是pasv模式就誕生了。
pasv 模式的連線過程是:在開始乙個ftp的連線時,客戶端程式首先為自己隨機分配乙個tcp埠,它使用這個埠向伺服器的ftp埠(預設為21)發出連線請求,伺服器接受請求之後會建立一條控制鏈路,然後客戶端程式發出pasv命令,代替原來port命令告訴伺服器它的資料連線埠,於是伺服器便為自己隨機分配乙個資料通道埠,並將這個埠號告訴客戶端程式。當需要傳送資料時,客戶端程式會向伺服器的資料通道埠傳送連線請求,請求被接受之後便開始傳輸資料,資料鏈路通道也就開啟了。
兩者之間有什麼不同:
不同之處是由於port這個方式需要在接上tcp 21埠後,伺服器通過自己的tcp 20來發出資料。並且需要建立乙個新的連線來傳送檔案。而port的命令包含一些客戶端沒用的資料,所以有了pasv的出現。
而pasv模式就當然擁有port模式的優點及去掉一些port的缺點。pasv執行方式就是當伺服器接收到pasv命令時,就會自動從埠1024到5000中隨機選擇,而且還會使用同乙個埠來傳送資料,不用建立新的連線。
,兩種方式的命令鏈路連線方法是一樣的,而資料鏈路的建立方法就完全不同。
很多防火牆的設定都是不允許接受外部連線的,所以active模式在很多時候內部網路的機器通過防火牆出去時候收到限制,因為伺服器的tcp20 無法和內部網路的客戶端建立乙個新的連線,無法工作。
所以遇到了防火牆的話或者怕配置麻煩採用pasv 但是真的對安全的需求很高則用active
很多防火牆在設定的時候都是不允許接受外部發起的連線的,所以許多位於防火牆後或內網的ftp伺服器不支援pasv模式,因為客戶端無法穿過防火牆開啟ftp伺服器的高階埠;而許多內網的客戶端不能用port模式登陸ftp伺服器,因為從伺服器的tcp20無法和內部網路的客戶端建立乙個新的連線,造成無法工作。
FTP兩種連線模式
ftp是有兩種傳輸的模式的,主動模式和被動模式,之前一直沒怎麼去搞明白之,現在找了下資料,重新整理了下 乙個完整的ftp檔案傳輸需要建立兩種型別的連線,一種為檔案傳輸下命令,稱為控制連線,另一種實現真正的檔案傳輸,稱為資料連線。1.控制連線 2.資料連線 ftp控制連線建立之後,即可開始傳輸檔案,傳...
ftp的兩種模式
常用ftp的人都知道,ftp在傳輸檔案的時候分為兩種模式 ascii模式 和 二進位制模式 1 ascii模式是一般是用來傳輸文字檔案的 2 二進位制模式是用來傳輸二進位制檔案的 一般我們使用ftp工具進行檔案傳輸的時候,工具內部應該會識別檔案型別,而如果我們使用windows內建的ftp,在命令列...
FTP 兩種連線模式
當ftp客戶端需要登陸到ftp伺服器上的時候,伺服器與客戶端需要進行一系列的身份驗證過程,這個過程就叫做命令連線。如在客戶端向伺服器發起連線請 求的時候,客戶端會隨即的選擇某個tcp埠來跟ftp伺服器的21號埠進行連線,這主要是通過tcp三方握手來實現的。當三方握手完成之後,客戶端與 伺服器之間便建...