FTP 兩種連線模式

2022-03-01 18:02:21 字數 1001 閱讀 4705

當ftp客戶端需要登陸到ftp伺服器上的時候,伺服器與客戶端需要進行一系列的身份驗證過程,這個過程就叫做命令連線。如在客戶端向伺服器發起連線請 求的時候,客戶端會隨即的選擇某個tcp埠來跟ftp伺服器的21號埠進行連線,這主要是通過tcp三方握手來實現的。當三方握手完成之後,客戶端與 伺服器之間便建立了命令連線通道。不過這個通道的用途是非常有限的,其主要用來傳輸ftp的相關指令。如檢視檔案列表、刪除檔案等等,而不能夠用來在客戶 端與服務端進行檔案傳輸。為此這個通道就被稱之為命令通道。到客戶端與伺服器建立了連線之後,可能客戶端暫時不需要進行資料傳輸。如只是需要檢視目錄下的檔案或則其他相關的動作。此時之需要命令連線通道就可以完 成了。

主動模式下,ftp客戶端從任意的非特殊的埠(n > 1024)連入到ftp伺服器的命令埠--21埠。然後客戶端在n+1(n+1 >= 1024)埠監聽,並且通過n+1(n+1 >= 1024)埠傳送命令給ftp伺服器。伺服器會反過來連線使用者本地指定的資料埠,比如20埠。

在被動方式ftp中,命令連線和資料連線都由客戶端發起,這樣就可以解決從伺服器到客戶端的資料埠的入方向連線被防火牆過濾掉的問題。

對於被動模式ftp,最好選擇埠》 = 50000。

主動模式傳送資料時是「伺服器」連線到「客戶端」的埠;被動模式傳送資料是「客戶端」連線到「伺服器」的埠。

在實際專案中碰到的問題是,ftp的客戶端和伺服器分別在不同網路,兩個網路之間有至少4層的防火牆,伺服器端只開放了21埠, 客戶端機器沒開放任何埠。ftp客戶端連線採用的被動模式,結果客戶端能登入成功,但是無法list列表和讀取資料。很明顯,是因為伺服器端沒開放被動模式下的隨機埠導致。

由於被動模式下,伺服器端開放的埠隨機,但是防火牆要不能全部開放,解決的方案是,在ftp伺服器配置被動模式下開放隨機埠在 50000-60000之間(範圍在ftp伺服器軟體設定,可以設定任意1024上的埠段),然後在防火牆設定規則,開放伺服器端50000-60000之間的埠端。

主動模式下,客戶端的ftp軟體設定主動模式開放的埠段,在客戶端的防火牆開放對應的埠段。

FTP兩種連線模式

ftp是有兩種傳輸的模式的,主動模式和被動模式,之前一直沒怎麼去搞明白之,現在找了下資料,重新整理了下 乙個完整的ftp檔案傳輸需要建立兩種型別的連線,一種為檔案傳輸下命令,稱為控制連線,另一種實現真正的檔案傳輸,稱為資料連線。1.控制連線 2.資料連線 ftp控制連線建立之後,即可開始傳輸檔案,傳...

關於FTP的兩種連線模式

我對於ftp這方面的知識比較薄弱,最近在實習的時候剛好有需要去了解,所以想寫下來整理一下,如果有不對的地方望指正。ftp服務一般執行在20和21兩個埠。一次完整的 ftp 會話,包含有兩個連線,乙個稱之為命令通道 控制連線,通過21埠 乙個稱之為資料通道 資料連線,通過20埠 其中資料連線有兩種傳輸...

FTP 兩種模式 總結

com.enterprisedt.net.ftp.ftpclient ftp元件的使用 ftp.getconnectmode ftp.isautopassiveipsubstitution 預設 預設ftp伺服器需要被動連線 ftp連線方式分為兩種 active pasv port模式的連線過程是 ...