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能夠良好的工做。