1. 程式人生 > >FTP主動模式和被動模式的區別

FTP主動模式和被動模式的區別

基礎知識:

  FTP只通過TCP連線,沒有用於FTP的UDP元件.FTP不同於其他服務的是它使用了兩個埠, 一個數據埠和一個命令埠(或稱為控制埠)。通常21埠是命令埠,20埠是資料埠。當混入主動/被動模式的概念時,資料埠就有可能不是20了。

主動模式FTP:

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

  以伺服器端防火牆為立足點,要支援主動模式FTP需要開啟如下互動中使用到的埠:

  • FTP伺服器命令(21)埠接受客戶端任意埠(客戶端初始連線)
  • FTP伺服器命令(21)埠到客戶端埠(>1023)(伺服器響應客戶端命令)
  • FTP伺服器資料(20)埠到客戶端埠(>1023)(伺服器初始化資料連線到客戶端資料埠)
  • FTP伺服器資料(20)埠接受客戶端埠(>1023)(客戶端傳送ACK包到伺服器的資料埠)

  用圖表示如下:

  在第1步中,客戶端的命令埠與FTP伺服器的命令埠建立連線,併發送命令“PORT 1027”。然後在第2步中,FTP伺服器給客戶端的命令埠返回一個"ACK"。在第3步中,FTP伺服器發起一個從它自己的資料埠(20)到客戶端先前指定的資料埠(1027)的連線,最後客戶端在第4步中給伺服器端返回一個"ACK"。

  主動方式FTP的主要問題實際上在於客戶端。FTP的客戶端並沒有實際建立一個到伺服器資料埠的連線,它只是簡單的告訴伺服器自己監聽的埠號,伺服器再回來連線客戶端這個指定的埠。對於客戶端的防火牆來說,這是從外部系統建立到內部客戶端的連線,這是通常會被阻塞的。

被動模式FTP

  為了解決伺服器發起到客戶的連線的問題,人們開發了一種不同的FTP連線方式。這就是所謂的被動方式,或者叫做PASV,當客戶端通知伺服器它處於被動模式時才啟用。

  在被動方式FTP中,命令連線和資料連線都由客戶端,這樣就可以解決從伺服器到客戶端的資料埠的入方向連線被防火牆過濾掉的問題。當開啟一個FTP連線時,客戶端開啟兩個任意的非特權本地埠(N >; 1024和N+1)。第一個埠連線伺服器的21埠,但與主動方式的FTP不同,客戶端不會提交PORT命令並允許伺服器來回連它的資料埠,而是提交PASV命令。這樣做的結果是伺服器會開啟一個任意的非特權埠(P >; 1024),併發送PORT P命令給客戶端。然後客戶端發起從本地埠N+1到伺服器的埠P的連線用來傳送資料。

  對於伺服器端的防火牆來說,必須允許下面的通訊才能支援被動方式的FTP:

  • FTP伺服器命令(21)埠接受客戶端任意埠(客戶端初始連線)
  • FTP伺服器命令(21)埠到客戶端埠(>1023)(伺服器響應客戶端命令)
  • FTP伺服器資料埠(>1023)接受客戶端埠(>1023)(客戶端初始化資料連線到伺服器指定的任意埠)
  • FTP伺服器資料埠(>1023)到客戶端埠(>1023)(伺服器傳送ACK響應和資料到客戶端的資料埠)

  用圖表示如下:

  在第1步中,客戶端的命令埠與伺服器的命令埠建立連線,併發送命令“PASV”。然後在第2步中,伺服器返回命令"PORT 2024",告訴客戶端(伺服器)用哪個埠偵聽資料連線。在第3步中,客戶端初始化一個從自己的資料埠到伺服器端指定的資料埠的資料連線。最後伺服器在第4 步中給客戶端的資料埠返回一個"ACK"響應。

  被動方式的FTP解決了客戶端的許多問題,但同時給伺服器端帶來了更多的問題。最大的問題是需要允許從任意遠端終端到伺服器高位埠的連線。幸運的是,許多FTP守護程式,包括流行的WU-FTPD允許管理員指定FTP伺服器使用的埠範圍。詳細內容參看附錄1。

  第二個問題是客戶端有的支援被動模式,有的不支援被動模式,必須考慮如何能支援這些客戶端,以及為他們提供解決辦法。例如,Solaris提供的FTP命令列工具就不支援被動模式,需要第三方的FTP客戶端,比如ncftp。

  隨著WWW的廣泛流行,許多人習慣用web瀏覽器作為FTP客戶端。大多數瀏覽器只在訪問ftp://這樣的URL時才支援被動模式。這到底是好還是壞取決於伺服器和防火牆的配置。

備註:

  有讀者指出,當NAT(Network Address Translation)裝置以主動模式訪問FTP伺服器時,由於NAT裝置不會聰明的變更FTP包中的IP地址,從而導致無法訪問伺服器。

總結

  下面的圖表會幫助管理員們記住每種FTP方式是怎樣工作的:

  主動FTP:
     命令連線:客戶端 >1023埠 -> 伺服器 21埠
     資料連線:客戶端 >1023埠 <- 伺服器 20埠 

  被動FTP:
     命令連線:客戶端 >1023埠 -> 伺服器 21埠
     資料連線:客戶端 >1023埠 -> 伺服器 >1023埠 

  下面是主動與被動FTP優缺點的簡要總結:

  主動FTP對FTP伺服器的管理有利,但對客戶端的管理不利。因為FTP伺服器企圖與客戶端的高位隨機埠建立連線,而這個埠很有可能被客戶端的防火牆阻塞掉。被動FTP對FTP客戶端的管理有利,但對伺服器端的管理不利。因為客戶端要與伺服器端建立兩個連線,其中一個連到一個高位隨機埠,而這個埠很有可能被伺服器端的防火牆阻塞掉。

  幸運的是,有折衷的辦法。既然FTP伺服器的管理員需要他們的伺服器有最多的客戶連線,那麼必須得支援被動FTP。我們可以通過為FTP伺服器指定一個有限的埠範圍來減小伺服器高位埠的暴露。這樣,不在這個範圍的任何埠會被伺服器的防火牆阻塞。雖然這沒有消除所有針對伺服器的危險,但它大大減少了危險。詳細資訊參看附錄1。

參考資料

  O'Reilly出版的《組建Internet防火牆》(第二版,Brent Chapman,Elizabeth Zwicky著)是一本很不錯的參考資料。裡面講述了各種Internet協議如何工作,以及有關防火牆的例子。

  最權威的FTP參考資料是RFC 959,它是FTP協議的官方規範。RFC的資料可以從許多網站上下載,例如:ftp://nic.merit.edu/documents/rfc/rfc0959.txt 。

相關推薦

ftp主動模式被動模式的配置區別

ive line ip 地址 也會 邊界 操作模式 技術分享 上進 text   原文鏈接: https://blog.csdn.net/zhangyuan12805/article/details/71425385    ftp模式分為主動模式(active mode)和

FTP主動模式被動模式區別

基礎知識:   FTP只通過TCP連線,沒有用於FTP的UDP元件.FTP不同於其他服務的是它使用了兩個埠, 一個數據埠和一個命令埠(或稱為控制埠)。通常21埠是命令埠,20埠是資料埠。當混入主動/被動模式的概念時,資料埠就有可能不是20了。 主動模式FTP:   主

FTP協議的主動模式被動模式區別

最近準備做一個《FtpCopy系列教程》,主要講解Ftp協議主動模式和被動模式的區別、以及FTP伺服器的安裝部署,然後通過幾個常用例項演示,詳細講解如何使用FtpCopy進行資料自動備份。 什麼是FTP協議? FTP的中文名稱是“檔案傳輸協議”,是File Transfer Pro

【轉】FTP主動模式被動模式的比較

edit 兩個 int cti 了解 選擇 監聽端口 通訊 mod 總是記不住FTP主動和被動模式的區別。放在這裏,以備日後查閱。 FTP是僅基於TCP的服務,不支持UDP。與眾不同的是FTP使用2個端口,一個數據端口和一個命令端口(也可叫做控制端口)。通常來說這兩個端

FTP主動模式被動模式,你應該用那種?

FTP 原理 主動模式 被動模式 FTP文件傳輸分為兩種模式,主動(PORT)模式和被動(Passive)模式,用戶應該用哪種? - 簡單粗暴,直接上答案 1)如果不是必須需要,不要使用FTP服務,主動/被動模式,命令/數據端口,初學者很容易一下子就被搞蒙。 2)如果一定要使用FTP服務,

FTP主動模式被動模式的相關知識

nag ado 圖片 主動模式和被動模式 客戶端和服務器 ftp 明顯 port 運行 FTP的主動模式和被動模式的相關知識。 在使用FTP時,如果客戶端機器和FTP服務器雙方之間的所有端口都是開放的,那連接不存在問題。如果客戶端與服務器之間有防火墻,如果沒配置好防火策略和

FTP主動模式被動模式在VRP上實現(實驗、報文理論解析)

理解 客戶 warning 簡述 查看 inf 要求 sep mac 嗯~點關註不迷路 1.簡述主動模式的FTP建立連接的主要步驟 圖1-19 FTP主動模式示意圖基本原理FTP(文件傳輸協議)的特殊性: 大多數的TCP服務是使用單個的連接,一般是客戶向服務器的一個周知端口

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

 1.FTP的PORT(主動模式)和PASV(被動模式)  (1) PORT(主動模式)        在主動模式下,FTP客戶端隨機開啟一個大於1024的埠N向伺服器的21號埠發起連線,傳送FTP使用者名稱和密碼,然後開放N+1號埠進行監聽,並向伺服器發出PORT N+

FTP主動模式被動模式以及java的連線FTP模式設定

FTP主動模式和被動模式以及java的連線FTP模式設定 (1)PORT(主動模式) PORT中文稱為主動模式,工作原理:FTP客戶端連線到FTP伺服器的21埠,傳送使用者名稱和密碼登入,登入成功後要列表列表或者讀取資料時,客戶端隨機開放一個埠(1024以上) ,傳送PORT命令到FTP伺服

重溫FTP主動模式被動模式

    最近做一個專案用到FTP和其它系統進行檔案傳輸,結果在FTP網路連線的問題上花了很多時間,由於太久沒搞多FTP,忘記了FTP不單單開放21埠,客戶端採用不同連線模式對網路有不同。在此重溫一下FTP的主動模式和被動模式的相關知識。     在使用FTP時,如果客戶端

如何選擇FTP主動模式被動模式

FTP檔案傳輸分為兩種模式,主動(PORT)模式和被動(Passive)模式,使用者應該用哪種?簡單粗暴,直接上答案1)如果不是必須需要,不要使用FTP服務,主動/被動模式,命令/資料埠,初學者很容易一下子就被搞蒙。2)如果一定要使用FTP服務,在今天的網際網路環境裡面,使用

FTP檔案傳輸協議兩種模式-主動模式被動模式

TCP/IP協議中,FTP標準命令TCP埠號為21,Port方式資料埠為20。FTP協議的任務是從一臺計算機將檔案傳送到另一臺計算機,它與這兩臺計算機所處的位置、聯接的方式、甚至是是否使用相同的作業系統無關。假設兩臺計算機通過ftp協議對話,並且能訪問Internet, 你可以用ftp命令來傳輸檔案。每種作

FTP主動模式被動模式學習筆記

關於FTP,有被動模式和主動模式兩種,有人說是驗證模式,我不太認同,但懶得查資料,不想咬文嚼字,糾結這種事情。下面簡單從自己理解的角度來記錄一下兩種模式的學習筆記。 1、被動模式 程式碼流程: 客戶端:發PASV\r\n命令到21埠 伺服器:通過21埠向客戶端發資料通道埠(

如何設定FTP主動模式被動模式

在使用ftp得時侯,經常遇到ftp連結後出現檔案列表錯誤得情況,只是因為ftp得模式不正確,如何設定ftp得工做模式,什麼是主動模式,什麼又是被動模式,主動模式和被動模式有什麼區別,今天蒐集了相關資料和常用ftp軟體工做模式得設定得方法: 一、什麼是PASV和PORT方式 (1)PORT其實是Standar

主動模式被動模式與zabbix的web管理界面使用

linux監控平臺 zabbix linux 操作系統 筆記內容:19.7 主動模式和被動模式19.8 添加監控主機19.9 添加自定義模板19.10 處理圖形中的亂碼19.11 自動發現筆記日期:19.7 主動模式和被動模式所謂主動就是客戶端主動上報數據,被動則是客戶端被動去提供數據。主動模

19.7-19.11 主動模式被動模式

19.7-19.11 主動模式和被動模式19.7 主動模式和被動模式19.8 添加監控主機19.9 添加自定義模板19.10 處理圖形中的亂碼19.11 自動發現擴展zabbix監控交換機(思科) http://tryrus.blog.51cto.com/10914693/1789847zabbix遠程執行命

zabbix的主動模式被動模式、添加監控主機、添加自定義模板、處理圖形中的亂碼、自動發現

roo 清理 瀏覽器 間隔 原型 fin 監測 9.png sim 主動模式和被動模式 主動或者被動是相對客戶端來講的 被動模式,服務端會主動連接客戶端獲取監控項目數據,客戶端被動地接受連接,並把監控信息傳遞給服務端 主動模式,客戶端會主動把監控數據匯報給服務端,服務

主動模式被動模式、添加監控主機、添加自定義模板、自動發現

自定義模板 上傳 點擊 中文 path face pla interface 文字 19.7 主動模式和被動模式 主動或被動是相對客戶端來講的 被動模式,服務端會主動連接客戶端獲取監控項目數據,客戶端被動地接收連接,並把監控信息傳遞給服務端 主動模式,客戶端會主動把監控數

19.7 主動模式被動模式;19.8 添加監控主機;19.9 添加自定義模板19.10處理圖形中的

處理圖形中的亂碼 添加監控主機 主動模式和被動模式 19.7 主動模式和被動模式1. 主動或者被動是相對客戶端來講的2. 被動模式,服務端會主動連接客戶端獲取監控項目數據,客戶端被動地接受連接,並把監控信息傳遞給服務端3. 主動模式,客戶端會主動把監控數據匯報給服務端,服務端只負責接收即可。4.

19.7 主動模式被動模式 19.8 添加監控主機 19.9 添加自定義模板 19.10 處理圖形

19.7 主動模式和被動模式 19.819.7 主動模式和被動模式 19.8 添加監控主機 19.9 添加自定義模板 19.10 處理圖形中的亂碼 19.11 自動發現 19.7 主動模式和被動模式 19.8 添加監控主機 19.9 添加自定義模板 19.10 處理圖形