當前位置:首頁 » 文件傳輸 » ftp主動模式和被動模式防火牆
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

ftp主動模式和被動模式防火牆

發布時間: 2022-07-06 14:19:47

㈠ 關於FTP被動模式與主動模式中防火牆過濾情況!

主動模式和被動模式是針對伺服器而言。ftp需要建立兩個連接(命令連接和數據連接),主動方式的命令連接由客戶機發起,數據連接由伺服器發起,這樣客戶端的防火牆可能會阻攔;被動連接的兩個連接都由客戶機發起,客戶機的防火牆不會阻攔(就像設置一個門不是為了關自己)。這是主體思想,具體的怎麼連接你上網搜一下,很多的。

回答問題:

  1. 不會,一般伺服器都是先前設置好的。

  2. 這里考慮的防火牆主要是在建立連接時的作用。

  3. 見上。

㈡ 什麼是ftp主動模式和被動模式

一、什麼是主動FTP
主動模式的FTP工作原理:客戶端從一個任意的非特權埠N連接到FTP伺服器的命令埠,也就是21埠。然後客戶端開始監聽埠N+1,並發送FTP命令「port N+1」到FTP伺服器。接著伺服器會從它自己的數據埠(20)連接到客戶端指定的數據埠(N+1)。
針對FTP伺服器前面的防火牆來說,必須允許以下通訊才能支持主動方式FTP:
1、 任何大於1024的埠到FTP伺服器的21埠。(客戶端初始化的連接)
2、 FTP伺服器的21埠到大於1024的埠。 (伺服器響應客戶端的控制埠)
3、 FTP伺服器的20埠到大於1024的埠。(伺服器端初始化數據連接到客戶端的數據埠)
4、 大於1024埠到FTP伺服器的20埠(客戶端發送ACK響應到伺服器的數據埠)

二、什麼是被動FTP
為了解決伺服器發起到客戶的連接的問題,人們開發了一種不同的FTP連接方式。這就是所謂的被動方式,或者叫做PASV,當客戶端通知伺服器它處於被動模式時才啟用。
在被動方式FTP中,命令連接和數據連接都由客戶端發起,這樣就可以解決從伺服器到客戶端的數據埠的入方向連接被防火牆過濾掉的問題。
當開啟一個 FTP連接時,客戶端打開兩個任意的非特權本地埠(N > 1024和N+1)。第一個埠連接伺服器的21埠,但與主動方式的FTP不同,客戶端不會提交PORT命令並允許伺服器來回連它的數據埠,而是提交 PASV命令。這樣做的結果是伺服器會開啟一個任意的非特權埠(P > 1024),並發送PORT P命令給客戶端。然後客戶端發起從本地埠N+1到伺服器的埠P的連接用來傳送數據。
對於伺服器端的防火牆來說,必須允許下面的通訊才能支持被動方式的FTP:
1、 從任何大於1024的埠到伺服器的21埠(客戶端初始化的連接)
2、 伺服器的21埠到任何大於1024的埠(伺服器響應到客戶端的控制埠的連接)
3、 從任何大於1024埠到伺服器的大於1024埠(客戶端初始化數據連接到伺服器指定的任意埠)
4、 伺服器的大於1024埠到遠程的大於1024的埠(伺服器發送ACK響應和數據到客戶端的數據埠)
以上關於主動和被動FTP的解釋,可以簡單概括為以下兩點:
1、主動FTP:
命令連接:客戶端 >1024埠 -> 伺服器 21埠
數據連接:客戶端 >1024埠 <- 伺服器 20埠
2、被動FTP:
命令連接:客戶端 >1024埠 -> 伺服器 21埠
數據連接:客戶端 >1024埠 -> 伺服器 >1024埠
三、主動模式ftp與被動模式FTP優點和缺點:
主動FTP對FTP伺服器的管理和安全很有利,但對客戶端的管理不利。因為FTP伺服器企圖與客戶端的高位隨機埠建立連接,而這個埠很有可能被客戶端的防火牆阻塞掉。被動FTP對FTP客戶端的管理有利,但對伺服器端的管理不利。因為客戶端要與伺服器端建立兩個連接,其中一個連到一個高位隨機埠,而這個埠很有可能被伺服器端的防火牆阻塞掉。

㈢ 獨家:主動模式FTP與被動模式FTP該如何選擇

FTP是一種文件傳輸協議,主要用來在不同的主機之間實現文件的傳送。通常情況下完成一個文件的傳輸需要有命令連接通道與數據連結通道兩個通道。而建立這些通道的方法不同,又有主動模式與被動模式的區分。在Linux操作系統上,vsFTPd是最常用的一個FTP軟體,其支持這兩種模式。為此系統管理員需要了解這兩種連接模式的不同點,並在實際工作中根據企業的應用情況來選擇合適的模式。一、主動模式的實現與特點。 無論是主動模式還是被動模式,其要進行文件傳輸都必須依次建立兩個連接,分別為命令連接與數據連結。而主動模式與被動模式的差異主要體現在數據連結通道上。為了說明兩者的差異,我將主要對這個數據連結進行比較詳細的說明。 當FTP客戶端需要登陸到FTP伺服器上的時候,伺服器與客戶端需要進行一系列的身份驗證過程,這個過程就叫做命令連接。如在客戶端向伺服器發起連接請求的時候,客戶端會隨即的選擇某個TCP埠來跟FTP伺服器的21號埠進行連接,這主要是通過TCP三方握手來實現的。當三方握手完成之後,客戶端與伺服器之間便建立了命令連接通道。不過這個通道的用途是非常有限的,其主要用來傳輸FTP的相關指令。如查看文件列表、刪除文件等等,而不能夠用來在客戶端與服務端進行文件傳輸。為此這個通道就被稱之為命令通道。而跟數據傳輸相關的為數據通道。 到客戶端與伺服器建立了連接之後,可能客戶端暫時不需要進行數據傳輸。如只是需要查看目錄下的文件或則其他相關的動作。此時之需要命令連接通道就可以完成了。如果此時客戶端需要往FTP伺服器上上傳或者下載文件的話,就需要在客戶端與伺服器端再建立一條額外的數據傳輸連接。當客戶端發出數據傳輸的指令之後(如上傳數據或者下載文件),客戶端會啟用另外一個埠監聽等待連接,並利用先前建立的命令連接通道告訴FTP伺服器其監聽的埠號。然後FTP伺服器會利用埠20和剛才的FTP客戶端所告知的埠再次進行三方握手。三次握手成功後便建立了一條數據傳輸通道。注意此時數據連結通道建立的過程中,是FTP伺服器的20號埠主動連接FTP客戶端的,為此這種連接方式就叫做主動模式。 二、被動模式的實現與特點。 被動操作模式在建立命令連接通道的時候,跟主動操作模式是相同的。兩者主要的差異就在於數據傳輸通道的建立上面。但是如果用戶需要進行數據傳輸的時候,則FTP客戶端會通過命令通道告訴FTP伺服器,如會向伺服器發出一個PASV指令。這個指令就是告訴服務期,要採用被動模式建立連接。如果採用被動操作模式,服務期會選擇自身的一個埠來進行監聽連接(而在主動操作模式下是利用客戶端的一個埠來進行監聽連接),並再次利用命令連接通道告訴客戶端「我為你開啟了哪個埠,你要建立數據連接的話就跟我的哪個埠聯系」。客戶端在接到這個信息後,就會在自己操作系統上選擇一個數據連接的通信埠,與伺服器提供的埠進行三方握手,並最終建立起可以進行數據傳輸的通道。 當企業的網路環境不同,兩個操作模式的應用效果是不同的。這主要是主動操作模式與被動操作模式在數據的傳輸通道建立上有一定的差異。從以上的分析中我們可以看出,在主動操作模式下,FTP伺服器的20號埠是主動同客戶端聯系,建立數據傳輸通道的。而在被動操作模式下,則FTP伺服器是被動的等待,等待客戶段與其的20號埠建立連接。不要小看這個細小的差異,這個差異卻決定了兩者應用環境的不同。 一般來說,如果這個FTP伺服器只對企業的內部區域網客戶提供文件傳輸的服務,那麼基本上兩者的應用效果沒有很大的差異。但是如果企業網路外部的用戶也需要通過互聯網與FTP伺服器進行文件傳輸的話,就會有很大的不同。這主要是因為,在數據通道建立的過程中,客戶端會在另一個埠上監聽等待連接,並利用命令連接通道告訴伺服器其監聽的埠好。然後企業的邊界路由器會將FTP的IP地址轉換為合法的公網IP地址(假設企業由於公網IP地址有限,在邊界路由器上通過NAT服務向外部用戶提供FTP連接)。如果此時採用的是自動操作模式的話,則在連接這個數據通道的過程中FTP伺服器會主動跟邊界路由器的埠進行通信(因為FTP伺服器認為這台邊界路由器,其實就是NAT伺服器,就是FTP客戶段)。但是實際上不是,而且也有可能沒有啟用這個埠。為此客戶端與FTP伺服器之間的連接最終沒有建立起來。所以說,如果採用主動操作模式的話,當FTP伺服器部署在NAT等伺服器後面的時候,則FTP伺服器與客戶端之間只能夠建立命令連接通道,而無法建立起數據傳輸通道。如果FTP伺服器與客戶端之間還有防火牆的話,在連接的過程中也會出現以上類似的情況。 而如果是採用被動操作模式的話,是客戶端主動跟服務期的20號埠進行連接的。為此在數據傳輸通道建立的過程中,即使中間有NAT伺服器或者防火牆,也會准確無誤的連接到FTP伺服器的數據傳輸介面。所以說,如果在客戶端與FTP伺服器之間存在防火牆或者NAT伺服器等類似設備的話,那麼在FTP伺服器部署的時候,最好採用被動操作模式。否則的話,很可能只能夠建立命令連接通道,而無法進行數據傳輸。

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

FTP是僅基於TCP的服務,不支持UDP。與眾不同的是FTP使用2個埠,一個數據埠和一個命令埠(也可叫做控制埠)。通常來說這兩個埠是21(命令埠)和20(數據埠)。但FTP工作方式的不同,數據埠並不總是20。這就是主動與被動FTP的最大不同之處。

(一)主動FTP
主動方式的FTP是這樣的:客戶端從一個任意的非特權埠N(N&gt;1024)連接到FTP伺服器的命令埠,也就是21埠。然後客戶端開始監聽埠N+1,並發送FTP命令「port
N+1」到FTP伺服器。接著伺服器會從它自己的數據埠(20)連接到客戶端指定的數據埠(N+1)。

針對FTP伺服器前面的防火牆來說,必須允許以下通訊才能支持主動方式FTP:

  1. 任何大於1024的埠到FTP伺服器的21埠。(客戶端初始化的連接)

  2. FTP伺服器的21埠到大於1024的埠。 (伺服器響應客戶端的控制埠)

  3. FTP伺服器的20埠到大於1024的埠。(伺服器端初始化數據連接到客戶端的數據埠)

  4. 大於1024埠到FTP伺服器的20埠(客戶端發送ACK響應到伺服器的數據埠)

(二)被動FTP
為了解決伺服器發起到客戶的連接的問題,人們開發了一種不同的FTP連接方式。這就是所謂的被動方式,或者叫做PASV,當客戶端通知伺服器它處於被動模式時才啟用。在被動方式FTP中,命令連接和數據連接都由客戶端發起,這樣就可以解決從伺服器到客戶端的數據埠的入方向連接被防火牆過濾掉的問題。

當開啟一個 FTP連接時,客戶端打開兩個任意的非特權本地埠(N &gt;
1024和N+1)。第一個埠連接伺服器的21埠,但與主動方式的FTP不同,客戶端不會提交PORT命令並允許伺服器來回連它的數據埠,而是提交PASV命令。這樣做的結果是伺服器會開啟一個任意的非特權埠(P &gt; 1024),並發送PORT

P命令給客戶端。然後客戶端發起從本地埠N+1到伺服器的埠P的連接用來傳送數據。
對於伺服器端的防火牆來說,必須允許下面的通訊才能支持被動方式的FTP:

  1. 從任何大於1024的埠到伺服器的21埠(客戶端初始化的連接)

  2. 伺服器的21埠到任何大於1024的埠(伺服器響應到客戶端的控制埠的連接)

  3. 從任何大於1024埠到伺服器的大於1024埠(客戶端初始化數據連接到伺服器指定的任意埠)

  4. 伺服器的大於1024埠到遠程的大於1024的埠(伺服器發送ACK響應和數據到客戶端的數據埠)


以上關於主動和被動FTP的解釋,可以簡單概括為以下兩點:

1、主動FTP:

命令連接:客戶端 &gt;1024埠 -&gt; 伺服器 21埠

數據連接:客戶端 &gt;1024埠 <- 伺服器 20埠

2、被動FTP:

命令連接:客戶端 >1024埠 -&gt; 伺服器 21埠

數據連接:客戶端 &gt;1024埠 -&gt; 伺服器 &gt;1024埠

(三)主動與被動FTP優缺點:

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

㈤ ftp的兩種模式

一種是模式是一種主動連接,被動則相反.

㈥ Linux裡面FTP主被動模式區別是什麼

題主你好,

首先要說的是FTP的通信是由兩部分組成的: 發送命令 + 傳輸數據.

換種說法就是: 發送命令 與 傳輸數據 是走的兩條道(不同的tcp連接).

發送命令 這條道方向是固定的, 總是由客戶端向服務端發起請求把這條道鋪起來.

傳輸數據 這條道方向就不是固定的了, 可能與 發送命令 一樣, 也是由客戶端向服務端發起請求, 還可能是反向的,即由服務端向客戶端發起請求來鋪起傳輸數據的這條道.

而題主的問題里所說的FTP主動被模式其實指的就是 傳輸數據 這條道的鋪設到底是 誰向誰發起請求? 這里的主被動是根據 服務端 來說的, 即 服務端主動向客戶端發起的就是所謂的主動模式, 反之, 客戶端向服務端發起的(服務端連接),即是被動模式

最後再說下區別: 一開始的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需要打開如下交互中使用到的埠:
l FTP伺服器命令(21)埠接受客戶端任意埠(客戶端初始連接)
l FTP伺服器命令(21)埠到客戶端埠(>1023)(伺服器響應客戶端命令)
l FTP伺服器數據(20)埠到客戶端埠(>1023)(伺服器初始化數據連接到客戶端數據埠)
l FTP伺服器數據(20)埠接受客戶端埠(>1023)(客戶端發送ACK包到伺服器的數據埠)
用圖表示如下:

在第1步中,客戶端的命令埠與FTP伺服器的命令埠建立連接,並發送命令「PORT 1027」。然後在第2步中,FTP伺服器給客戶端的命令埠返回一個"ACK"。在第3步中,FTP伺服器發起一個從它自己的數據埠(20)到客戶端先前指定的數據埠(1027)的連接,最後客戶端在第4步中給伺服器端返回一個"ACK"。
主動方式FTP的主要問題實際上在於客戶端。FTP的客戶端並沒有實際建立一個到伺服器數據埠的連接,它只是簡單的告訴伺服器自己監聽的埠號,伺服器再回來連接客戶端這個指定的埠。對於客戶端的防火牆來說,這是從外部系統建立到內部客戶端的連接,這是通常會被阻塞的。

主動FTP的例子:
下面是一個主動FTP會話的實際例子。當然伺服器名、IP地址和用戶名都做了改動。在這個例子中,FTP會話從 testbox1.slacksite.com (192.168.150.80),一個運行標準的FTP命令行客戶端的Linux工作站,發起到testbox2.slacksite.com (192.168.150.90),一個運行ProFTPd 1.2.2RC2的Linux工作站。debugging(-d)選項用來在FTP客戶端顯示連接的詳細過程。紅色的文字是 debugging信息,顯示的是發送到伺服器的實際FTP命令和所產生的回應信息。伺服器的輸出信息用黑色字表示,用戶的輸入信息用粗體字表示。
仔細考慮這個對話過程我們會發現一些有趣的事情。我們可以看到當 PORT 命令被提交時,它指定了客戶端(192.168.150.80)上的一個埠而不是伺服器的。當我們用被動FTP時我們會看到相反的現象。我們再來關注PORT命令的格式。就象你在下面的例子看到的一樣,它是一個由六個被逗號隔開的數字組成的序列。前四個表示IP地址,後兩個組成了用於數據連接的埠號。用第五個數乘以256再加上第六個數就得到了實際的埠號。下面例子中埠號就是((14*256) + 178) = 3762。我們可以用netstat來驗證這個埠信息。

testbox1: {/home/p-t/slacker/public_html} % ftp -d testbox2
Connected to testbox2.slacksite.com.
220 testbox2.slacksite.com FTP server ready.
Name (testbox2:slacker): slacker
---> USER slacker
331 Password required for slacker.
Password: TmpPass
---> PASS XXXX
230 User slacker logged in.
---> SYST
215 UNIX Type: L8
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> ls
ftp: setsockopt (ignored): Permission denied
---> PORT 192,168,150,80,14,178
200 PORT command successful.
---> LIST
150 Opening ASCII mode data connection for file list.
drwx------ 3 slacker users 104 Jul 27 01:45 public_html
226 Transfer complete.
ftp> quit
---> QUIT
221 Goodbye.

㈧ FTP協議當中的主動模式和被動模式怎麼理解

主動就是你鏈接伺服器。被動就是伺服器鏈接你

㈨ 如何設置FTP的主動模式和被動模式

設置FTP的主動模式和被動模式,用到的工具:8uftp,步驟如下:

  1. 打開8uftp軟體,點擊編輯菜單--選項:

注意事項:適用於8uftp.

㈩ ftp的主動模式和被動模式的區別

FTP協議有兩種工作方式:PORT方式和PASV方式,中文意思為主動式和被動式。 PORT(主動)方式的連接過程是:客戶端向伺服器的FTP埠(默認是21)發送連接請 求,伺服器接受連接,建立一條命令鏈路。當需要傳送數據時,客戶端在命令鏈路上用PORT 命令告訴伺服器:「我打開了XXXX埠,你過來連接我」。於是伺服器從20埠向客戶端的 XXXX埠發送連接請求,建立一條數據鏈路來傳送數據。 PASV(被動)方式的連接過程是:客戶端向伺服器的FTP埠(默認是21)發送連接請 求,伺服器接受連接,建立一條命令鏈路。當需要傳送數據時,伺服器在命令鏈路上用PASV 命令告訴客戶端:「我打開了XXXX埠,你過來連接我」。於是客戶端向伺服器的XXXX埠 發送連接請求,建立一條數據鏈路來傳送數據。 從上面可以看出,兩種方式的命令鏈路連接方法是一樣的,而數據鏈路的建立方法就完 全不同。而FTP的復雜性就在於此。