ftp被動模式埠范圍和並發量
⑴ 什麼是ftp主動模式和被動模式
FTP是僅基於TCP的服務,不支持UDP。 與眾不同的是FTP使用2個埠,一個數據埠和一個命令埠(也可叫做控制埠)。通常來說這兩個埠是21(命令埠)和20(數據埠)。但FTP 工作方式的不同,數據埠並不總是20。這就是FTP主動與被動模式的最大不同之處。
(一)主動FTP
主動方式的FTP是這樣的:客戶端從一個任意的非特權埠N(N>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 > 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優缺點
主動FTP對FTP伺服器的管理有利,但對客戶端的管理不利。因為FTP伺服器企圖與客戶端的高位隨機埠建立連接,而這個埠很有可能被客戶端的防火牆阻塞掉。被動FTP對FTP客戶端的管理有利,但對伺服器端的管理不利。因為客戶端要與伺服器端建立兩個連接,其中一個連到一個高位隨機埠,而這個埠很有可能被伺服器端的防火牆阻塞掉。
幸運的是,有折衷的辦法。既然FTP伺服器的管理員需要他們的伺服器有最多的客戶連接,那麼必須得支持被動FTP。我們可以通過為FTP伺服器指定一個有 限的埠范圍來減小伺服器高位埠的暴露。這樣,不在這個范圍的任何埠會被伺服器的防火牆阻塞。雖然這沒有消除所有針對伺服器的危險,但它大大減少了危 險。
簡而言之:
主動模式(PORT)和被動模式(PASV)。主動模式是從伺服器端向客戶端發起連接;被動模式是客戶端向伺服器端發起連接。兩者的共同點是都使用 21埠進行用戶驗證及管理,差別在於傳送數據的方式不同,PORT模式的FTP伺服器數據埠固定在20,而PASV模式則在1025-65535之間隨機
FTP主動模式與被動模式的解決與原理
FTP是File Transfer Protocol(文件傳輸協議)的縮寫,用來在兩台計算機之間互相傳送文件。相比於HTTP,FTP協議要復雜得多。復雜的原因,是因為FTP協議要用到兩個TCP連接,一個是命令鏈路,用來在FTP客戶端與伺服器之間傳遞命令;另一個是數據鏈路,用來上傳或下載數據。
FTP協議有兩種工作方式:PORT方式和PASV方式,中文意思為主動式和被動式。
PORT(主動)方式的連接過程是:客戶端向伺服器的FTP埠(默認是21)發送連接請求,伺服器接受連接,建立一條命令鏈路。當需要傳送數據時,客戶端在命令鏈路上用PORT命令告訴伺服器:「我打開了XXXX埠,你過來連接我」。於是伺服器從20埠向客戶端的XXXX埠發送連接請求,建立一條數據鏈路來傳送數據。
PASV(被動)方式的連接過程是:客戶端向伺服器的FTP埠(默認是21)發送連接請求,伺服器接受連接,建立一條命令鏈路。當需要傳送數據時,伺服器在命令鏈路上用PASV命令告訴客戶端:「我打開了XXXX埠,你過來連接我」。於是客戶端向伺服器的XXXX埠發送連接請求,建立一條數據鏈路來傳送數據。
概括:
--------------------------------------------------------------------------------
主動模式:伺服器向客戶端敲門,然後客戶端開門
被動模式:客戶端向伺服器敲門,然後伺服器開門
所以,如果你是如果通過代理上網的話,就不能用主動模式,因為伺服器敲的是上網代理伺服器的門,而不是敲客戶端的門
而且有時候,客戶端也不是輕易就開門的,因為有防火牆阻擋,除非客戶端開放大於1024的高端埠
⑵ ftp的三種埠模式都是哪些如何工作的
FTP是File Transfer Protocol(文件傳輸協議)的縮寫,用來在兩台計算機之間互相傳送文件。相比於HTTP,FTP協議要復雜得多。復雜的原因,是因為FTP協議要用到兩個TCP連接,一個是命令鏈路,用來在FTP客戶端與伺服器之間傳遞命令;另一個是數據鏈路,用來上傳或下載數據。
FTP協議有兩種工作方式:PORT方式和PASV方式,中文意思為主動式和被動式。
1. PORT(主動)方式的連接過程是:
客戶端向伺服器的FTP埠(默認是21)發送連接請求,伺服器接受連接,建立一條命令鏈路。當需要傳送數據時,客戶端在命令鏈路上用PORT命令告訴伺服器:「我打開了XXXX埠,你過來連接我」。於是伺服器從20埠向客戶端的XXXX埠發送連接請求,建立一條數據鏈路來傳送數據。
2. PASV(被動)方式的連接過程是:
客戶端向伺服器的FTP埠(默認是21)發送連接請求,伺服器接受連接,建立一條命令鏈路。當需要傳送數據時,伺服器在命令鏈路上用PASV命令告訴客戶端:「我打開了XXXX埠,你過來連接我」。於是客戶端向伺服器的XXXX埠發送連接請求,建立一條數據鏈路來傳送數據。
概括:
--------------------------------------------------------------------------------
主動模式:伺服器向客戶端敲門,然後客戶端開門
被動模式:客戶端向伺服器敲門,然後伺服器開門
所以,如果你是如果通過代理上網的話,就不能用主動模式,因為伺服器敲的是上網代理伺服器的門,而不是敲客戶端的門
而且有時候,客戶端也不是輕易就開門的,因為有防火牆阻擋,除非客戶端開放大於1024的高端埠
--------------------------------------------------------------------------------
3.單埠模式
除上述兩種模式之外,還有一種單埠模式。該模式的數據連接請求由FTP伺服器發起。使用該傳輸模式時,客戶端的控制連接埠和數據連接埠一致。因為這種模式無法在短時間連續輸入數據、傳輸命令,因此並不常用。
⑶ 請問用IIS搭建FTP伺服器,在哪裡設置"主動模式"和"被動模式"
FTP兩種工作模式:主動模式(Active FTP)和被動模式(Passive FTP)
在主動模式下,FTP客戶端隨機開啟一個大於1024的埠N向伺服器的21號埠發起連接,然後開放N+1號埠進行監聽,並向伺服器發出PORT N+1命令。伺服器接收到命令後,會用其本地的FTP數據埠(通常是20)來連接客戶端指定的埠N+1,進行數據傳輸。
在被動模式下,FTP庫戶端隨機開啟一個大於1024的埠N向伺服器的21號埠發起連接,同時會開啟N+1號埠。然後向伺服器發送PASV命令,通知伺服器自己處於被動模式。伺服器收到命令後,會開放一個大於1024的埠P進行監聽,然後用PORT P命令通知客戶端,自己的數據埠是P。客戶端收到命令後,會通過N+1號埠連接伺服器的埠P,然後在兩個埠之間進行數據傳輸。
總的來說,主動模式的FTP是指伺服器主動連接客戶端的數據埠,被動模式的FTP是指伺服器被動地等待客戶端連接自己的數據埠。
被動模式的FTP通常用在處於防火牆之後的FTP客戶訪問外界FTp伺服器的情況,因為在這種情況下,防火牆通常配置為不允許外界訪問防火牆之後主機,而只允許由防火牆之後的主機發起的連接請求通過。因此,在這種情況下不能使用主動模式的FTP傳輸,而被動模式的FTP可以良好的工作。
很多人誤認為利用WINDOWS組件IIS來構建的FTP伺服器沒有實用價值,只能做一些測試和學習。主要是FTP服務的PORT和PASV兩種連接模式下防火牆難以設置。對於PORT模式,客戶端無法在此環境下運行,因為 FTP 服務必須向 FTP 客戶端發出新的連接請求,防火牆會將這些連接檢測為未經請求的連接嘗試,並因此而將它們斷開。防火牆管理員可能也不希望使用PASV模式 FTP 伺服器,因為該 FTP 服務可以打開任何短暫的埠號。如果防火牆配置允許未經請求的連接完全訪問所有的短暫埠,則可能會是不安全的。
從實用的角度來看,建立一個默認短暫埠范圍有限制的PASV模式 FTP 服務方案應該是較好的選擇。下面通過一個實例,說明如何在Windows 2003 中利用IIS組件架設PASV模式FTP服務。
1建立一個PORT模式的FTP服務
1.1安裝「文件傳輸協議(FTP)服務」組件
安裝步驟:
控制面板--->添加刪除程序--->添加刪除windows組件--->應用程序伺服器--->Internet信息服務(IIS)--->文件傳輸協議(FTP)服務
將「文件傳輸協議(FTP)服務」復選框鉤上,插入windows 2003安裝盤或選擇windows 2003安裝路徑,直至安裝結束。
1.2FTP主目錄及用戶許可權的配置
主目錄:D:/soft/ftpup
擁有讀寫許可權而不允許其它用戶訪問的用戶:
ww1用戶擁有 ww1目錄的讀寫許可權,位置在:D:/soft/ftpup/LocalUser/ww1
XX1用戶擁有 XX1目錄的讀寫許可權,位置在:D:/soft/ftpup/LocalUser/XX1
允許匿名用戶只讀訪問:
Everyone 擁有 public目錄的只讀許可權,位置在:D:/soft/ftpup/LocalUser/public
創建 ww1和xx1用戶並設置密碼。
建立相應的目錄,並設置對應的許可權。
1.3創建FTP站點
通過「控制面板 ---> 管理工具 ---> Internet信息服務(IIS)管理器 ---> Internet信息服務--->本地計算機---> FTP 站點」標簽,右擊「FTP 站點」--->新建--->FTP 站點,進入FTP站點建立向導:站點描述--->IP地址和埠設置--->隔離用戶--->FTP站點主目錄(D:/soft/ftpup ),直到向導結束。
右擊剛建立的FTP站點,在「安全帳戶」選項卡上選中「允許匿名用戶連接」。至此,一個PORT模式的FTP站點架設完成。
可以關閉防火牆在客戶端進行測試是否符合要求。
2將FTP站點設置成PASV模式
2.1啟用直接編輯元資料庫
打開 IIS Microsoft 管理控制台 (MMC):控制面板 ---> 管理工具---> Internet信息服務(IIS)管理器 ---> Internet信息服務--->本地計算機
右擊本地計算機節點,選擇屬性,選擇啟用直接編輯元資料庫復選框。
2.2 修改埠號 方法 1 通過 ADSUTIL 腳本配置 PassivePortRange
運行cmd.exe程序進入命令行模式,並輸入以下命令:
C:/Inetpub/AdminScripts/adsutil.vbs set /MSFTPSVC/PassivePortRange "5500-5550"
這樣就將FTP伺服器上TCP 默認短暫埠范圍限制在5500-5550范圍內,如果同時連接數量較多,可適當進行調整。
用以下命令查看PassivePortRange:
C:/Inetpub/AdminScripts/adsutil.vbs get /MSFTPSVC/PassivePortRange 方法 2 通過修改配置文件 打開下面這個文件 : 1. C:/WINDOWS/system32/inetsrv/MetaBase.xml 搜索 MaxConnections 這個欄位 在 MaxConnections 下面新加一行被動模式的配置信息,修改後的配置文件為 LogType="1" MSDOSDirOutput="TRUE" MaxClientsMessage=" " MaxConnections="100000" PassivePortRange="5500-5550"
3.windows 2003 中防火牆的設置
3.1打開FTP控制埠TCP 21(如果更改埠號,這里要做相應的更改)
在命令行輸入:
NETSH FIREWALL ADD PORTOPENING TCP 21 FTPPort21
3.2打開PassivePortRange 5500-5550的TCP埠
建立以下批處理文件並運行(例如:ftpport.bat):
ECHO OPENING FIREWALL PORTS 5500-5550
FOR /L %%I IN (5500,1,5550) DO NETSH FIREWALL ADD PORTOPENING TCP %%I FTPPort%%I
iisreset /restart
ECHO FINISHED
Pause
至此,整個服務架設完成,可在啟用防火牆的情況下進行測試。
⑷ linux上的ftp服務,要打開防火牆的哪些埠
在 Linux 上搭建 FTP 服務時,默認情況下 FTP 採用的是兩種模式:被動模式和主動模式。對應地,需要打開的埠也不同。
- 被動模式:FTP 客戶端向 FTP 伺服器請求鎮茄數據埠,並通過此埠傳輸數據。FTP 伺服器向客戶端發送數據之前,先在本地開蔽旅旅放一個臨時埠,與客戶端准備建立連接。
在被動模式下,需要打開以下埠:
FTP 數據埠范圍:默認是 20 ~ 21,不過建議自定義埠號。需要在防火牆中將此段埠打開。
FTP 伺服器為客戶端開放的臨時埠:由 FTP 伺服器隨機分配,可以配置指定范圍,需要將此埠范圍在防火牆中打開。
- 主動模式:FTP 客戶端向 FTP 伺服器請求數據,FTP 伺服器向客戶端發送數據時,將客戶端指定的數據埠作為伺服器的數據源埠,通過建立和客戶端的數據連接,並在此埠傳輸數據。
在主動模式下,需要打開以下埠:
FTP 控制埠:默認是 21,建議自定義埠。需要將此埠號在防火牆中打開。
另外,如果在 FTP 伺服器上啟用了 SSL/TLS 安全連接,FTP 傳輸過程中宏凳所使用的埠需要使用 TLS 認證,一般情況下使用的埠號是 990。
綜上所述,打開 FTP 服務需要的埠有:FTP 控制埠、FTP 數據埠范圍、FTP 伺服器為客戶端開放的臨時埠、TLS 認證埠(若使用 SSL/TLS 安全連接)。需要將這些埠在防火牆中打開。
⑸ FTP伺服器的工作模式
FTP是僅基於TCP的服務,不支持UDP。與眾不同的是FTP使用2個埠,一個數據埠和一個命令埠(也可叫做控制埠)。通常來說這兩個埠是21(命令埠)和20(數據埠)。但FTP 工作方式的不同,數據埠並不總是20。這就是主動與被動FTP的最大不同之處。主要有兩種工作模式: 在主動模式下:FTP伺服器的控制埠是21,數據埠是20,所以在做靜態映射的時候只需要開放21埠即可,他會用20埠和客戶端主動的發起連接。
在被動模式下:FTP伺服器的控制埠是21,數據埠是隨機的,且是客戶端去連接對應的數據埠,所以在做靜態的映射話只開放21埠是不可以的。此時需要做DMZ。
⑹ frp外網穿透ftp服務
FTP協議有兩種工作方式:PORT方式和PASV方式,中文意思為主動式和被動式。如果要用ftp外網穿透,需要使用被動模式。
被動模式(PASV)連接過程是:客戶端向伺服器的FTP埠(默認是21)發送連接請求,伺服器接受連接,建立一條命令鏈路。當需要傳送數據時,伺服器在命令鏈路上用PASV命令告訴客戶端:「我打開了XXXX埠,你過來連接我」。於是客戶端向伺服器的XXXX埠發送連接請求,建立一條數據鏈路來傳送數據。
所以,在使用ftp的時候,不僅需要轉發默認的21埠,還需要轉發數據埠。
考慮到frp轉發的情況,所以數據埠最好是固定的,所以這里需要修改ftp伺服器的配置,這里以vsftpd服務為例。修改 vsftpd.conf 文件,固定被動模式埠范圍
這里只開啟了50000、50001、50002三個埠,意思就是同時只能有三個用戶連接,如果需要更多用戶可以配置更多的埠。
在frp的配置中,需要添加默認埠21和被動數據埠50000、50001、50002四個埠配置
⑺ ftp伺服器在被動模式下,開放埠數與並發連接數有什麼關系
一般關系不大 ,自己用的話 ,開放60000以上的埠足夠了。
⑻ 如何在IIS上設置FTP被動模式的埠范圍
單擊 開始 、 運行 , 鍵入 cmd, 和然後 確定 。 鍵入 cd C:\Inetpub\AdminScripts, 然後按 Enter。 鍵入以下命令從命令提示符。 Cscript.exe adsutil.vbs set /MSftpSVC/PassivePortRange "30000-30005" 重啟iis msftp設置被動模式方法 30000-...
⑼ 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三次握手);
⑽ liunx6.5怎麼開啟ftp支持被動數據傳輸模式
您好凱和,在/etc/vsftpd/vsftpd.conf配置文件下編輯:橘基
[vsftpd.conf]
#開啟被動模式盯伍盯傳輸
pasv_enable=yes
#設置被動模式埠范圍,這里是4000-5000(TCP)
pasv_min_port=4000
pasv_max_port=5000
注意,如果您需要配合防火牆使用,請您在防火牆規則中設置放行21埠和4000-5000埠。