1. 程式人生 > >FTP的主動模式和被動模式工作原理

FTP的主動模式和被動模式工作原理

 1.FTP的PORT(主動模式)和PASV(被動模式)

 (1) PORT(主動模式)

       在主動模式下,FTP客戶端隨機開啟一個大於1024的埠N向伺服器的21號埠發起連線,傳送FTP使用者名稱和密碼,然後開放N+1號埠進行監聽,並向伺服器發出PORT N+1命令,高速服務端客戶端採用主動模式並開放了埠。FTP伺服器接收到PORT命令後,會用其本地的FTP資料埠(通常是20)來連線客戶端指定的埠N+1,進行資料傳輸。

 (2) PASV(被動模式)

       在被動模式下,FTP客戶端隨機開啟一個大於1024的埠N向伺服器的21號埠發起連線,傳送使用者名稱和密碼進行登陸,同時會開啟N+1埠。然後向伺服器傳送PASV命令,通知伺服器自己處於被動模式。伺服器收到命令後,會開放一個大於1024的埠P進行監聽,然後用PORT P命令通知客戶端,自己的資料埠是P。客戶端收到命令後,會通過N+1號埠連線伺服器的埠P,然後在兩個埠之間進行資料傳輸。

 2.兩種模式的比較

 主動模式和被動模式的不同簡單概述為: 主動模式傳送資料時是“伺服器”連線到“客戶端”的埠(客戶端開啟資料埠);被動模式傳送資料是“客戶端”連線到“伺服器”的埠(服務端開啟資料埠)。

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

    被動模式只需要伺服器端開放埠給客戶端連線就行了,如果服務端在防火牆內,也需要做埠對映才行。

參考: