ftp被動伺服器
A. ftp主動模式和被動模式!
FTP(File Transfer Protocol,文件傳輸協議) 是 TCP/IP 協議組中的協議之一。FTP協議包括兩個組成部分,其一為FTP伺服器,其二為FTP客戶端。其中FTP伺服器用來存儲文件,用戶可以使用FTP客戶端通過FTP協議訪問位於FTP伺服器上的資源。在開發網站的時候,通常利用FTP協議把網頁或程序傳到Web伺服器上。此外,由於FTP傳輸效率非常高,在網路上傳輸大的文件時,一般也採用該協議。
默認情況下FTP協議使用TCP埠中的 20 和 21 這兩個埠,其中20用於傳輸數據,21用於傳輸控制信息。但是,是否使用20作為傳輸數據的埠與FTP使用的傳輸模式有關,如果採用主動模式,那麼數據傳輸埠就是20;如果採用被動模式,則具體最終使用哪個埠要伺服器端和客戶端協商決定。
FTP支持兩種模式,它在工作運行時也主要是這兩種模式,一種模式叫作Standard也被稱為PORT方式和 主動方式 ,另一種模式叫作Passive也叫作PASV, 被動方式 。Standard模式FTP的客戶端發出PORT命令到伺服器,Passive模式FTP的客戶端發送PASV命令到FTP Server中,從而保證文件相互傳輸正常。
我們使用華為的模擬器Ensp來做一個小實驗。
FTP三次握手有兩次,第一次的TCP三次握手是控制層的握手,第二次是數據層的TCP三次握手
(1)伺服器打開埠 21,等待連接;
(2)客戶端(100.1.12.1)發起控制連接的建立請求,伺服器響應連接,控制連接建立,使用TCP 三次握手(第一次TCP三次握手);
隨機埠的計算
可以看到PORT為 10,0,0,2,8,6
隨機埠計算為: 8*256+6=2054
(3)客戶端通過控制連接發送 PORT 命令(在應用層數據中帶有自己的 ip 地址和臨時埠),將客戶端數據連接的臨時埠號告訴伺服器
(4)伺服器的 20 號埠與客戶端建立起數據連接,使用TCP 三次握手(第二次TCP三次握手);
點擊登出後控制埠斷開連接
FTP三次握手有兩次,第一次的TCP三次握手是控制層的握手,第二次是數據層的TCP三次握手
(1)伺服器打開埠 21,等待連接
(2)客戶端發起控制連接的建立請求,伺服器響應連接,控制連接建立,使用TCP 三次握手(第一次TCP三次握手);
(3)客戶端通過控制連接發送命令字 PASV,告知伺服器處於被動模式;
(4)伺服器回應,將伺服器數據連接的臨時埠號(2060)告訴客戶端;
(5)客戶端與伺服器的臨時埠建立起數據連接,使用TCP 三次握手(第二次TCP三次握手);
B. FTP伺服器的工作模式
FTP是僅基於TCP的服務,不支持UDP。與眾不同的是FTP使用2個埠,一個數據埠和一個命令埠(也可叫做控制埠)。通常來說這兩個埠是21(命令埠)和20(數據埠)。但FTP 工作方式的不同,數據埠並不總是20。這就是主動與被動FTP的最大不同之處。主要有兩種工作模式: 在主動模式下:FTP伺服器的控制埠是21,數據埠是20,所以在做靜態映射的時候只需要開放21埠即可,他會用20埠和客戶端主動的發起連接。
在被動模式下:FTP伺服器的控制埠是21,數據埠是隨機的,且是客戶端去連接對應的數據埠,所以在做靜態的映射話只開放21埠是不可以的。此時需要做DMZ。
C. 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客戶端的管理有利,但對伺服器端的管理不利。因為客戶端要與伺服器端建立兩個連接,其中一個連到一個高位隨機埠,而這個埠很有可能被伺服器端的防火牆阻塞掉。
D. ftp被動模式和主動模式哪個好
看你的需求了
(一)主動FTP
主動方式的FTP是這樣的:客戶端從一個任意的非特權埠N(N>1024)連接到FTP伺服器的命令埠,也就是21埠。然後客戶端開始監聽埠N+1,並發送FTP命令「port N+1」到FTP伺服器。接著伺服器會從它自己的數據埠(20)連接到客戶端指定的數據埠(N+1)。
(二)被動FTP
為了解決伺服器發起到客戶的連接的問題,人們開發了一種不同的FTP連接方式。這就是所謂的被動方式,或者叫做PASV,當客戶端通知伺服器它處於被動模式時才啟用。
在被動方式FTP中,命令連接和數據連接都由客戶端發起,這樣就可以解決從伺服器到客戶端的數據埠的入方向連接被防火牆過濾掉的問題。
當開啟一個 FTP連接時,客戶端打開兩個任意的非特權本地埠(N > 1024和N+1)。第一個埠連接伺服器的21埠,但與主動方式的FTP不同,客戶端不會提交PORT命令並允許伺服器來回連它的數據埠,而是提交 PASV命令。這樣做的結果是伺服器會開啟一個任意的非特權埠(P > 1024),並發送PORT P命令給客戶端。然後客戶端發起從本地埠N+1到伺服器的埠P的連接用來傳送數據。
(三)主動與被動FTP優缺點:
主動FTP對FTP伺服器的管理有利,但對客戶端的管理不利。因為FTP伺服器企圖與客戶端的高位隨機埠建立連接,而這個埠很有可能被客戶端的防火牆阻塞掉。被動FTP對FTP客戶端的管理有利,但對伺服器端的管理不利。因為客戶端要與伺服器端建立兩個連接,其中一個連到一個高位隨機埠,而這個埠很有可能被伺服器端的防火牆阻塞掉。
E. ftp客戶端有主動模式和被動模式是什麼意思
通常21埠是命令埠,20埠是數據埠。當混入主動/被動模式的概念時,數據埠就有可能不是20了。
F. ftp伺服器是什麼
在有很多人喜歡創建個人網站、博客,那麼對電腦也就有一定的了解,ftp應該也是很熟悉的了。那麼ftp伺服器是什麼?
1、 FTP伺服器(File Transfer Protocol Server)是在互聯網上提供文件存儲和訪問服務的計算機,它們依照FTP協議提供服務。 FTP是File Transfer Protocol(文件傳輸協議)。顧名思義,就是專門用來傳輸文件的協議。簡單地說,支持FTP協議的伺服器就是FTP伺服器。
2、 FTP是用來在兩台計算機之間傳輸文件,是Internet中應用非常廣泛的服務之一。它可根據實際需要設置各用戶的使用許可權,同時還具有跨平台的特性,即在UNIX、Linux和Windows等操作系統中都可實現FTP客戶端和伺服器,相互之間可跨平台進行文件的傳輸。因此,FTP服務是網路中經常採用的資源共享方式之一。FTP協議有PORT和PASV兩種工作模式,即主動模式和被動模式。
3、 FTP(File Transfer Protocol)即文件傳輸協議,是一種基於TCP的協議,採用客戶/伺服器模式。通過FTP協議,用戶可以在FTP伺服器中進行文件的上傳或下載等操作。雖然現在通過HTTP協議下載的站點有很多,但是由於FTP協議可以很好地控制用戶數量和寬頻的分配,快速方便地上傳、下載文件,因此FTP已成為網路中文件上傳和下載的首選伺服器。同時,它也是一個應用程序,用戶可以通過它把自己的計算機與世界各地所有運行FTP協議的伺服器相連,訪問伺服器上的大量程序和信息。FTP服務的功能是實現完整文件的異地傳輸。
4、 特點如下:(一)FTP使用兩個平行連接:控制連接和數據連接。控制連接在兩主機間傳送控制命令,如用戶身份、口令、改變目錄命令等。數據連接只用於傳送數據。(二)在一個會話期間,FTP伺服器必須維持用戶狀態,也就是說,和某一個用戶的控制連接不能斷開。另外,當用戶在目錄樹中活動時,伺服器必須追蹤用戶的當前目錄,這樣,FTP就限制了並發用戶數量。(三)FTP支持文件沿任意方向傳輸。當用戶與一遠程計算機建立連接後,用戶可以獲得一個遠程文件也可以將一本地文件傳輸至遠程機器。
以上就是ftp伺服器是什麼的全部內容。
G. 如何為被動模式FTP伺服器配置Windows防火牆 詳細�0�3
通過打開到 TCP 埠號 21 的「命令通道」連接,標准模式 FTP 客戶端會啟動到伺服器的會話。客戶端通過將 PORT 命令發送到伺服器請求文件傳輸。然後,伺服器會嘗試啟動返回到 TCP 埠號 20 上客戶端的「數據通道」連接。客戶端上運行的典型防火牆將來自伺服器的此數據通道連接請求視為未經請求,並會丟棄數據包,從而導致文件傳輸失敗。 Windows Vista 和 Windows Server 2008 中的 高級安全 Windows 防火牆 支持有狀態 FTP ,該 FTP 允許將埠 20 上的入站連接請求與來自客戶端的先前出站 PORT 命令相匹配。但是,如果您通過 SSL 使用 FTP 來加密和保護 FTP 通信,則防火牆不再能夠檢查來自伺服器的入站連接請求,並且這些請求會被阻止。 為了避免此問題, FTP 還支持「被動」操作模式,客戶端在該模式下啟動數據通道連接。客戶端未使用 PORT 命令,而是在命令通道上發送 PASV 命令。伺服器使用 TCP 埠號進行響應,客戶端應連接到該埠號來建立數據通道。默認情況下,伺服器使用極短范圍( 1025 到 5000 )內的可用埠。為了更好保護伺服器的安全,您可以限制 FTP 服務使用的埠范圍,然後創建一個防火牆規則:僅在那些允許的埠號上進行 FTP 通信。 本主題將討論執行以下操作的方法: 1. 配置 FTP 服務以便僅將有限數量的埠用於被動模式 FTP 2. 配置入站防火牆規則以便僅在允許的埠上進行入站 FTP 連接 以下過程顯示在 Internet 信息服務 (IIS) 7.0 版上配置 FTP 服務的步驟。如果您使用其他 FTP 服務,請查閱產品文檔以找到相應的步驟。配置對 SSL 的支持不在本主題的討論范圍之內。有關詳細信息,請參閱 IIS 文檔。 配置 FTP 服務以便僅將有限數量的埠用於被動模式 FTP 1. 在 IIS 7.0 管理器中的「連接」窗格中,單擊伺服器的頂部節點。 2. 在細節窗格中,雙擊「FTP 防火牆支持」。 3. 輸入您希望 FTP 服務使用的埠號的范圍。例如,41000-41099 允許伺服器同時支持 100 個被動模式數據連接。 4. 輸入防火牆的外部 IPv4 地址,數據連接通過該地址到達。 5. 在「操作」窗格中,單擊「應用」保存您的設置。 還必須在 FTP 伺服器上創建防火牆規則,以在前一過程中配置的埠上允許入站連接。盡管您可以創建按編號指定埠的規則,但是,創建打開 FTP 服務所偵聽的任何埠的規則更為容易。通過按前一過程中的步驟操作,您可限制 FTP 偵聽的埠。 配置入站防火牆規則以便僅允許到 FTP 所偵聽埠的入站 FTP 連接 1. 打開管理員命令提示符。依次單擊「開始」、「所有程序」和「附件」,右鍵單擊「命令提示符」,然後單擊「以管理員身份運行」。 2. 運行下列命令: 復制代碼 netsh advfirewall firewall add rule name=」FTP Service」 action=allow service=ftpsvc protocol=TCP dir=in 3. 最後,禁用有狀態 FTP 篩選,以使防火牆不會阻止任何 FTP 通信。 復制代碼 netsh advfirewall set global StatefulFTP disable Windows Firewall and non-secure FTP traffic Windows firewall can be configured from command line using netsh command. 2 simple steps are required to setup Windows Firewall to allow non-secure FTP traffic 1) Open port 21 on the firewall netsh advfirewall firewall add rule name="FTP (no SSL)" action=allow protocol=TCP dir=in localport=21 2) Activate firewall application filter for FTP (aka Stateful FTP) that will dynamically open ports for data connections netsh advfirewall set global StatefulFtp enable