ftp 主動模式(PORT)和被動模式(PASV)

2021-10-02 22:03:39 字數 4105 閱讀 2649

簡介

命令連線

當ftp客戶端需要登陸到ftp伺服器上的時候,伺服器與客戶端需要進行一系列的身份驗證過程,這個過程就叫做命令連線

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

資料連線

主動模式

主動模式的ftp是指伺服器主動連線客戶端的資料埠

standard、active

主動模式是指伺服器主動連線客戶端的資料埠

在主動模式下,ftp客戶端隨機開啟乙個大於1024的埠n向伺服器的21號埠發起連線,然後開放n+1號埠進行監聽,並向伺服器發出port n+1命令。伺服器接收到命令後,會用其本地的ftp資料埠(通常是20)來連線客戶端指定的埠n+1,進行資料傳輸。

port(主動)這個方式需要在接上tcp 21埠後,伺服器通過自己的tcp 20來發出資料。並且需要建立乙個新的連線來傳送檔案。而port的命令包含一些客戶端沒用的資料,所以有了pasv的出現。

工作過程:

客戶端以隨機非特權埠n,就是大於1024的埠,對server端21埠發起連線

客戶端開始監聽 n+1埠;

服務端會主動以20埠連線到客戶端的n+1埠。

優點:服務端配置簡單,利於伺服器安全管理,伺服器只需要開放21埠

缺點:如果客戶端開啟了防火牆,或客戶端處於內網(nat閘道器之後), 那麼伺服器對客戶端埠發起的連線可能會失敗

被動模式

被動模式的ftp是指伺服器被動地等待客戶端連線自己的資料埠。

在被動操作模式下,則ftp伺服器是被動的等待,等待 客戶段與其的20號埠建立連線

被動模式是指伺服器被動地等待客戶端連線自己的資料埠

在被動模式下,ftp庫戶端隨機開啟乙個大於1024的埠n向伺服器的21號埠發起連線,同時會開啟n+1號埠。然後向伺服器傳送pasv命令,通知伺服器自己處於被動模式。伺服器收到命令後,會開放乙個大於1024的埠p進行監聽,然後用portp命令通知客戶端,自己的資料埠是p。客戶端收到命令後,會通過n+1號埠連線伺服器的埠p,然後在兩個埠之間進行資料傳輸。

(在vsftpd.conf中指定被動埠範圍為4000-4500)

被動模式通常用在處於防火牆之後的ftp客戶訪問外界ftp伺服器的情況,因為在這種情況下,防火牆通常配置為不允許外界訪問防火牆之後主機,而只允許由防火牆之後的主機發起的連線請求通過。因此,在這種情況下不能使用主動模式的ftp傳輸,而被動模式的ftp可以良好的工作。

pasv執行方式就是當伺服器接收到客戶端連線請求時,就會自動從埠1024到5000中隨機選擇乙個和客戶端建立連線傳遞資料。由於被動且自動建立連線,容易受到攻擊,所以安全性差。

被動模式的ftp通常用在處於防火牆之後的ftp客戶訪問外界ftp伺服器的情況,因為在這種情況下,防火牆通常配置為不允許外界訪問防火牆之後主機,而只允許由防火牆之後的主機發起的連線請求通過。因此,在這種情況下不能使用主動模式的ftp傳輸,而被動模式的ftp可以良好的工作。

被動操作模式在建立命令連線通道的時候,跟主動操作模式是相同的。

使用者需要進行資料傳輸的時候, 則ftp客戶端會通過命令通道告訴ftp伺服器,如會向伺服器發出乙個pasv指令。

服務期會選擇自身的乙個埠來進行監聽連線(而在主動操作模式下是利用客戶端的乙個埠來進行監聽連線),並再次利用命令連線通道告訴客戶端「我為 你開啟了哪個埠,你要建立資料連線的話就跟我的哪個埠聯絡」

客戶端在接到這個資訊後,就會在自己作業系統上選擇乙個資料連線的通訊埠,與伺服器提供的埠進行三方握手,並最終建立起可以進行資料傳輸的通道。

工作過程:

客戶端以隨機非特權埠連線服務端的21埠

服務端開啟乙個非特權埠為被動埠,並返回給客戶端

客戶端以非特權埠+1的埠主動連線服務端的被動埠

缺點:伺服器配置管理稍顯複雜,不利於安全,伺服器需要開放隨機高位埠以便客戶端可以連線,因此大多數ftp服務軟體都可以手動配置被動埠的範圍

優點:對客戶端網路環境沒有要求

選擇策略

在資料通道建立的過程中,客戶端會在另乙個埠上監聽等待連線,並利用命令連線通道告訴伺服器其監聽的埠號。然後企業的邊界路由器會將ftp的ip位址轉換為合法的公網ip位址(假設企業由於公網ip位址有限,在邊界路由 器上通過nat服務向外部使用者提供ftp連線)。

採用的是主動操作模式的話,則在連線這個資料通道的過程中ftp伺服器會主動跟邊界路由器的埠 進行通訊(因為ftp伺服器認為這台邊界路由器,其實就是nat伺服器,就是ftp客戶段)。

但是實際上不是,而且也有可能沒有啟用這個埠。為此客戶端 與ftp伺服器之間的連線最終沒有建立起來。

所以說,如果採用主動操作模式的話,當ftp伺服器部署在nat等伺服器後面的時候,則ftp伺服器與客戶端 之間只能夠建立命令連線通道,而無法建立起資料傳輸通道。

如果ftp伺服器與客戶端之間還有防火牆的話,在連線的過程中也會出現以上類似的情況。

被動操作模式的話,是客戶端主動跟服務期的20號埠進行連線的。為此在資料傳輸通道建立的過程中,即使中間有nat伺服器或者防火牆,也 會準確無誤的連線到ftp伺服器的資料傳輸介面。

所以說,如果在客戶端與ftp伺服器之間存在防火牆或者nat伺服器等類似裝置的話,那麼在ftp伺服器 部署的時候,最好採用被動操作模式。否則的話,很可能只能夠建立命令連線通道,而無法進行資料傳輸。

在如果一些出差在外的員工或者員工在家庭辦公時也需要訪問企業內部的ftp伺服器,而此時出於安全的考慮或者公網ip 位址數量的限制,企業往往會把ftp伺服器部署在防火牆或者nat伺服器的後面,此時這個主動操作模式就不行了。

如果企業中通過網際網路來訪問企業內部ftp伺服器的員工比較多的時候,那麼最好能夠一勞永逸的解決這個問題,即在ftp伺服器上進行設定,強制客戶端在連線的時候採用被動操作模式。

使用者比較少的話,而且使用者又具有一定的計算機知識,那麼可以不在伺服器上進行設定。而是在連線的過程中,通過ftp客戶端來設定。如在某些ftp客戶端 上,會有乙個passive transfers等類似的選項。選中這個選項就表示以被動操作方式進行傳輸。而沒有選中這個選項的客戶端則仍然採用主動操作模式來進行連線。

常見客戶端設定

ftp伺服器部署的時候,其預設採用的是主動操作模式。如果企業ftp伺服器的使用者都是在內部網路中的,即不用像外部網路的使用者提供ftp連線的需求,那 麼採用這個預設操作方式就可以了。

大部分ftp客戶端預設使用pasv方式。ie預設使用port方式。在大部分ftp客戶端的設定裡,常見到的字眼都是「pasv」或「被動模式」,極少見到「port」或「主動模式」等字眼。因為ftp的登入方式只有兩種:port和pasv,取消pasv方式,就意味著使用port方式。

(1)ie:工具 -> internet選項 -> 高階 -> 「使用被動ftp」(需要ie6.0以上才支援)。

(2)cuteftp:edit -> setting -> connection -> firewall -> 「pasv mode」 或file -> site manager,在左邊選中站點 -> edit -> 「use pasv mode」 。

(4)flashfxp:選項 -> 引數選擇 -> **/防火牆/標識 -> 「使用被動模式」 或站點管理 -> 對應站點 -> 選項 -> 「使用被動模式」或快速連線 -> 切換 -> 「使用被動模式」。

ftp 主動模式(PORT)和被動模式(PASV)

簡介 命令連線 當ftp客戶端需要登陸到ftp伺服器上的時候,伺服器與客戶端需要進行一系列的身份驗證過程,這個過程就叫做命令連線 當ftp客戶端需要登陸到ftp伺服器上的時候,伺服器與客戶端需要進行一系列的身份驗證過程,這個過程就叫做命令連線。如在客戶端向伺服器發起連線請 求的時候,客戶端會隨即的選...

ftp中主動模式 port 與被動模式 PASV

ftp是僅基於tcp的服務,不支援udp。與眾不同的是ftp使用2個埠,乙個資料埠和乙個命令埠 也可叫做控制埠 通常來說這兩個埠是21 命令埠和20 資料埠。但當我們發現根據 ftp工作 方式的不同資料埠並不總是20時,混亂產生了。主動方式的ftp是這樣的 客戶端從乙個任意的非特權埠n n 1024...

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

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