mysql 主動 被動模式 ftp主動模式被動模式

2021-10-18 20:55:31 字數 1317 閱讀 7771

在使用ftp時,如果客戶端機器和ftp伺服器雙方之間的所有埠都是開放的,那連線不存在問題。如果客戶端與伺服器之間有防火牆,如果沒配置好防火策略和採用合適的連線模式,會導致登入成功,但無法list列表的問題。要避免出現這樣的問題,首先要了解ftp的工作模式。

1.ftp的port(主動模式)和pasv(被動模式)

(1)port(主動模式)

port中文稱為主動模式,工作的原理:ftp客戶端連線到ftp伺服器的21埠,傳送使用者名稱和密碼登入,登入成功後要list列表或者讀取資料時,客戶端隨機開放乙個埠(1024以上),傳送port命令到ftp伺服器,告訴伺服器客戶端採用主動模式並開放埠;ftp伺服器收到port主動模式命令和埠號後,通過伺服器的20埠和客戶端開放的埠連線,傳送資料,原理如下圖:

(2)pasv(被動模式)

pasv是passive的縮寫,中文成為被動模式,工作原理:ftp客戶端連線到ftp伺服器的21埠,傳送使用者名稱和密碼登入,登入成功後要list列表或者讀取資料時,傳送pasv命令到ftp伺服器,伺服器在本地隨機開放乙個埠(1024以上),然後把開放的埠告訴客戶端,客戶端再連線到伺服器開放的埠進行資料傳輸,原理如下圖:

2.兩種模式的比較

從上面的執行原來看到,主動模式和被動模式的不同簡單概述為:主動模式傳送資料時是「伺服器」連線到「客戶端」的埠;被動模式傳送資料是「客戶端」連線到「伺服器」的埠。

主動模式需要客戶端必須開放埠給伺服器,很多客戶端都是在防火牆內,開放埠給ftp伺服器訪問比較困難。

被動模式只需要伺服器端開放埠給客戶端連線就行了。

3.不同工作模式的網路設定

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

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

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

4.如何設定工作模式?

哈哈,有人可能會問ftp伺服器如何設定工作模式?實時上ftp伺服器一般都支援主動和被動模式,連線採用何種模式是有ftp客戶端軟體決定。

FTP主動與被動模式

首先要知道ftp只支援tcp協議,不支援udp協調的。ftp主動模式與被動模式 主動模式 port 客戶端向服務端的ftp埠 預設是21 傳送請求,服務端ftp守護程序 執行緒收到請求後,建立一條命令鏈結。當需要傳輸資料時,客戶端通過這個命令鏈結傳送命令給服務端port命令,告訴服務端 我建立了乙個...

FTP主動模式及被動模式

起初,ftp並不是應用於ip網路上的協議,而是arpanet網路中計算機間的檔案傳輸協議,arpanet是美國國防部組建的老網路,於1960 1980年使用。在那時,ftp的主要功能是在主機間高速可靠地傳輸檔案。目前ftp仍然保持其可靠性,即使在今天,它還允許檔案遠端訪問。這使得使用者可以在某個系統...

FTP主動模式及被動模式

ftp主動模式及被動模式 ftp的特殊性 大多數的tcp服務是使用單個的連線,一般是客戶向伺服器的乙個周知埠發起連線,然後使用這個連線進行通訊。但是,ftp協議卻有所不同,它使用雙向的多個連線,而且使用的埠很難預計。一般,ftp連線包括 乙個控制連線 control connection 這個連線用...