Ⅰ java 連接ftp是主動模式還是被動模式
一.FTP的PORT(主動模式)和PASV(被動模式)
1.
PORT(主動模式)
PORT中文稱為主動模式,工作的原理:
FTP客戶端連接到FTP伺服器的21埠,發送用戶名和密碼登錄,登錄成功後要list列表或者讀取數據時,客戶端隨機開放一個埠(1024以上),發送
PORT命令到FTP伺服器,告訴伺服器客戶端採用主動模式並開放埠;FTP伺服器收到PORT主動模式命令和埠號後,通過伺服器的20埠和客戶端開放的埠連接,發送數據.
2.
PASV(被動模式)
PASV是Passive的縮寫,中文成為被動模式,工作原理:FTP客戶端連接到FTP伺服器的21埠,發送用戶名和密碼登錄,登錄成功後要list列表或者讀取數據時,發送PASV命令到FTP伺服器,
伺服器在本地隨機開放一個埠(1024以上),然後把開放的埠告訴客戶端,
客戶端再連接到伺服器開放的埠進行數據傳輸。
二.兩種模式的比較
從上面的運行原來看到,主動模式和被動模式的不同簡單概述為:
主動模式傳送數據時是「伺服器」連接到「客戶端」的埠;被動模式傳送數據是「客戶端」連接到「伺服器」的埠。
主動模式需要客戶端必須開放埠給伺服器,很多客戶端都是在防火牆內,開放埠給FTP伺服器訪問比較困難。
被動模式只需要伺服器端開放埠給客戶端連接就行了。
三.不同工作模式的網路設置
實際項目中碰到的問題是,FTP的客戶端和伺服器分別在不同網路,兩個網路之間有至少4層的防火牆,伺服器端只開放了21埠,
客戶端機器沒開放任何埠。FTP客戶端連接採用的被動模式,結果客戶端能登錄成功,但是無法LIST列表和讀取數據。很明顯,是因為伺服器端沒開放被動模式下的隨機埠導致。
由於被動模式下,伺服器端開放的埠隨機,但是防火牆要不能全部開放,解決的方案是,在ftp伺服器配置被動模式下開放隨機埠在
50000-60000之間(范圍在ftp伺服器軟體設置,可以設置任意1024上的埠段),然後在防火牆設置規則,開放伺服器端50000-60000之間的埠端。
主動模式下,客戶端的FTP軟體設置主動模式開放的埠段,在客戶端的防火牆開放對應的埠段。
四.如何設置
工作模式
實時上FTP伺服器一般都支持主動和被動模式,連接採用何種模式是有FTP客戶端軟體決定。
Ⅱ 什麼是ftp主動模式和被動模式
FTP主動模式就是FTP會用自己的20埠去主動得跟客戶端建立連接,當客戶端網路做NAT的時候會發生錯誤。把NAT的埠認為是客戶端與FTP 20埠建立連接的
被動模式就是當建立ftp連接後,客戶端發送一個被動模式請求給伺服器,伺服器選擇一個數據埠監聽,並把埠告訴客戶端,客戶端直接向數據埠發起連接,這樣,即使中間有做NAT也不影響FTP數據傳輸通道建立
Ⅲ 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
至此,整個服務架設完成,可在啟用防火牆的情況下進行測試。
Ⅳ FTP的PASV模式是什麼意思
FTP是File Transfer Protocol(文件傳輸協議)的縮寫,用來在兩台計算機之間互相傳送文件。相比於HTTP,FTP協議要復雜得多。復雜的原因,是因為FTP協議要用到兩個TCP連接,一個是命令鏈路,用來在FTP客戶端與伺服器之間傳遞命令;另一個是數據鏈路,用來上傳或下載數據。
在被動方式FTP中,命令連接和數據連接都由客戶端,這樣就可以解決從伺服器到客戶端的數據埠的入方向連接被防火牆過濾掉的問題。
當開啟一個FTP連接時,客戶端打開兩個任意的非特權本地埠。第一個埠連接伺服器的21埠,但與主動方式的FTP不同,客戶端不會提交PORT命令並允許伺服器來回連它的數據埠,而是提交PASV命令。
(5)主動式訪問和被動式訪問擴展閱讀:
工作方式
FTP支持兩種模式,一種方式叫做Standard (也就是 PORT方式,主動方式),一種是 Passive(也就是PASV,被動方式)。 Standard模式 FTP的客戶端發送 PORT 命令到FTP伺服器。Passive模式FTP的客戶端發送 PASV命令到 FTP Server。
下面介紹一下這兩種方式的工作原理:
Port
FTP 客戶端首先和FTP伺服器的TCP 21埠建立連接,通過這個通道發送命令,客戶端需要接收數據的時候在這個通道上發送PORT命令。 PORT命令包含了客戶端用什麼埠接收數據。在傳送數據的時候,伺服器端通過自己的TCP 20埠連接至客戶端的指定埠發送數據。 FTP server必須和客戶端建立一個新的連接用來傳送數據。
Passive
在建立控制通道的時候和Standard模式類似,但建立連接後發送的不是Port命令,而是Pasv命令。FTP伺服器收到Pasv命令後,隨機打開一個高端埠(埠號大於1024)並且通知客戶端在這個埠上傳送數據的請求,客戶端連接FTP伺服器此埠,通過三次握手建立通道,然後FTP伺服器將通過這個埠進行數據的傳送。
Ⅵ 獨家:主動模式FTP與被動模式FTP該如何選擇
如果企業FTP伺服器的用戶都是在內部網路中的,即不用像外部網路的用戶提供FTP連接的需求,那麼採用這個默認操作方式就可以了。但是如果一些出差在外的員工或者員工在家庭辦公時也需要訪問企業內部的FTP伺服器,而此時出於安全的考慮或者公網IP地址數量的限制,企業往往會把FTP伺服器部署在防火牆或者NAT伺服器的後面,此時這個主動操作模式就不行了。如果企業中通過互聯網來訪問企業內部FTP伺服器的員工比較多的時候,那麼最好能夠一勞永逸的解決這個問題,即在FTP伺服器上進行設置,強制客戶端在連接的時候採用被動操作模式。相反如果用戶比較少的話,而且用戶又具有一定的計算機知識,那麼可以不在伺服器上進行設置。而是在連接的過程中,通過FTP客戶端來設置。如在某些FTP客戶端上,會有一個Passive Transfers等類似的選項。選中這個選項就表示以被動操作方式進行傳輸。而沒有選中這個選項的客戶端則仍然採用主動操作模式來進行連接。 總之,在FTP伺服器部署的時候考慮是要採用主動操作模式還是被動操作模式,只需要記住一個原則,即如果把FTP伺服器部署在防火牆或者NAT伺服器的背後,則採用主動操作模式的客戶端只能夠建立命令連接而無法進行文件傳輸。如果部署完FTP伺服器後,系統管理員發現用戶可以連接上FTP伺服器,可以查看目錄下的文件,但是卻無法下載或者上傳文件,如果排除許可權方面的限制外,那麼很有可能就是這個操作模式選擇錯誤。系統管理員告訴用戶選擇合適的操作模式,基本上就可以解決文件傳輸的問題了。
Ⅶ ftp數據傳輸模式中的主動模式與被動模式在實際中的是怎麼應用的
你為什麼對這個問題感興趣?
簡單介紹一下:
Standard,也就是Active,主動方式,客戶端發送PORT命令到伺服器。
Passive,也就是PASV,被動方式,客戶端發送PASV命令到伺服器。
兩者不同(有點枯燥,簡單看看就行)
不同之處是由於PORT(主動)這個方式需要在接上TCP 21埠後,伺服器通過自己的TCP 20來發出數據。並且需要建立一個新的連接來傳送檔案。而PORT的命令包含一些客戶端沒用的資料,所以有了PASv的出現。而PASV模式擁有PORT 模式的優點,並去掉一些PORT的缺點。PASV運行方式就是當伺服器接收到客戶端連接請求時,就會自動從埠1024到5000中隨機選擇一個和客戶端 建立連接傳遞數據。由於被動且自動建立連接,容易受到攻擊,所以安全性差。
簡單點:
很多防火牆在設置的時候都是不允許接受外部發起的連接的,所以FTP的Standard主動模式在內部網路的機器通過防火牆出去的時候受到了限制。因此常用的是被動模式,這樣更為安全,對於網路管理員來說也易於操作。
如果你知道防火牆的原理和網路結構,那麼主動和被動模式就比較好理解了。
Ⅷ ftp客戶端有主動模式和被動模式是什麼意思
主動FTP
主動方式的FTP是這樣的:客戶端從一個任意的非特權埠N(N>1024)連接到FTP伺服器的命令埠,也就是21埠。然後客戶端開始監聽端
口N+1,並發送FTP命令「port N+1」到FTP伺服器。接著伺服器會從它自己的數據埠(20)連接到客戶端指定的數據埠(N+1)。
針對FTP伺服器前面的防火牆來說,必須允許以下通訊才能支持主動方式FTP:
1. 任何埠到FTP伺服器的21埠 (客戶端初始化的連接 S<-C)
2. FTP伺服器的21埠到大於1024的埠(伺服器響應客戶端的控制埠 S->C)
3. FTP伺服器的20埠到大於1024的埠(伺服器端初始化數據連接到客戶端的數據埠 S->C)
4. 大於1024埠到FTP伺服器的20埠(客戶端發送ACK響應到伺服器的數據埠 S<-C)
在第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連接方式。這就是所謂的被動方式,或者叫做PASV,當客戶端通知伺服器它處於被動模式時才啟用。
在被動方式FTP中,命令連接和數據連接都由客戶端,這樣就可以解決從伺服器到客戶端的數據埠的入方向連接被防火牆過濾掉的問題。當開啟一個
FTP連接時,客戶端打開兩個任意的非特權本地埠(N >
1024和N+1)。第一個埠連接伺服器的21埠,但與主動方式的FTP不同,客戶端不會提交PORT命令並允許伺服器來回連它的數據埠,而是提交
PASV命令。這樣做的結果是伺服器會開啟一個任意的非特權埠(P > 1024),並發送PORT
P命令給客戶端。然後客戶端發起從本地埠N+1到伺服器的埠P的連接用來傳送數據。
對於伺服器端的防火牆來說,必須允許下面的通訊才能支持被動方式的FTP:
1. 從任何埠到伺服器的21埠 (客戶端初始化的連接 S<-C)
2. 伺服器的21埠到任何大於1024的埠 (伺服器響應到客戶端的控制埠的連接 S->C)
3. 從任何埠到伺服器的大於1024埠 (入;客戶端初始化數據連接到伺服器指定的任意埠 S<-C)
4. 伺服器的大於1024埠到遠程的大於1024的埠(出;伺服器發送ACK響應和數據到客戶端的數據埠 S->C)
畫出來的話,被動方式的FTP連接過程大概是下圖的樣子:
在第1步中,客戶端的命令埠與伺服器的命令埠建立連接,並發送命令「PASV」。然後在第2步中,伺服器返回命令"PORT
2024",告訴客戶端(伺服器)用哪個埠偵聽數據連接。在第3步中,客戶端初始化一個從自己的數據埠到伺服器端指定的數據埠的數據連接。最後服
務器在第4 步中給客戶端的數據埠返回一個"ACK"響應。
被動方式的FTP解決了客戶端的許多問題,但同時給伺服器端帶來了更多的問題。最大的問題是需要允許從任意遠程終端到伺服器高位埠的連接。幸運的是,許多FTP守護程序,包括流行的WU-FTPD允許管理員指定FTP伺服器使用的埠范圍。詳細內容參看附錄1。
第二個問題是客戶端有的支持被動模式,有的不支持被動模式,必須考慮如何能支持這些客戶端,以及為他們提供解決辦法。例如,Solaris提供的FTP命令行工具就不支持被動模式,需要第三方的FTP客戶端,比如ncftp。
隨著WWW的廣泛流行,許多人習慣用web瀏覽器作為FTP客戶端。大多數瀏覽器只在訪問ftp://這樣的URL時才支持被動...??的配置。
被動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命令與主動FTP例子的不同。這里,我們看到是伺服器(192.168.150.90)而不是客戶端的一個埠被打開了。可以跟上面的主動FTP例子中的PORT命令格式對比一下。
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> passive
Passive mode on.
ftp> ls
ftp: setsockopt (ignored): Permission denied
---> PASV
227 Entering Passive Mode (192,168,150,90,195,149).
---> 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:
命令連接:客戶端 >1024埠 -> 伺服器 21埠
數據連接:客戶端 >1024埠 <- 伺服器 20埠
被動FTP:
命令連接:客戶端 >1024埠 -> 伺服器 21埠
數據連接:客戶端 >1024埠 -> 伺服器 >1024埠
下面是主動與被動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.e/documents/rfc/rfc0959.txt 。
Active FTP vs. Passive FTP, Appendix 1
Ⅸ ftp客戶端有主動模式和被動模式是什麼意思
FTP協議有兩種工作方式:PORT方式和PASV方式,中文意思為主動式和被動式。 PORT(主動)方式的連接過程是:客戶端向伺服器的FTP埠(默認是21)發送連接請 求,伺服器接受連接,建立一條命令鏈路。當需要傳送數據時,客戶端在命令鏈路上用PORT 命令告訴伺服器:「我打開了XXXX埠,你過來連接我」。於是伺服器從20埠向客戶端的 XXXX埠發送連接請求,建立一條數據鏈路來傳送數據。 PASV(被動)方式的連接過程是:客戶端向伺服器的FTP埠(默認是21)發送連接請 求,伺服器接受連接,建立一條命令鏈路。當需要傳送數據時,伺服器在命令鏈路上用PASV 命令告訴客戶端:「我打開了XXXX埠,你過來連接我」。於是客戶端向伺服器的XXXX埠 發送連接請求,建立一條數據鏈路來傳送數據。 從上面可以看出,兩種方式的命令鏈路連接方法是一樣的,而數據鏈路的建立方法就完 全不同。而FTP的復雜性就在於此。