1、FTP的PORT(主動模式):
PORT中文稱為主動模式,工作的原理: FTP客戶端(1024以上端口)連接到FTP服務器的21端口,發送用戶名和密碼登錄,
登錄成功后要list列表或者讀取數據時,客戶端隨機開放一個端口(1024以上),發送 PORT命令到FTP服務器,告訴服務器客戶端采用主動模式並開放端口;
FTP服務器收到PORT主動模式命令和端口號后,通過服務器的20端口和客戶端開放的端口連接,發送數據,原理如下圖:
2、PASV(被動模式):
PASV是Passive的縮寫,中文成為被動模式,工作原理:FTP客戶端(1024以上端口)連接到FTP服務器的21端口,發送用戶名和密碼登錄,登錄成功后要list列表或者讀取數據時,
發送PASV命令到FTP服務器, 服務器在本地隨機開放一個端口(1024以上),然后把開放的端口告訴客戶端, 客戶端再連接到服務器開放的端口進行數據傳輸,原理如下圖:
兩種模式的比較:
從上面的運行原來看到,主動模式與被動模式,建立連接的過程是一樣的,差別在於數據傳輸。
主動模式傳送數據時是“服務器(20端口)連接到客戶端的端口;
被動模式傳送數據是客戶端連接到服務器的端口(1024以上端口)。
主動模式需要客戶端必須開放端口給服務器,很多客戶端都是在防火牆內,開放端口給FTP服務器訪問比較困難。被動模式只需要服務器端開放端口給客戶端連接就行了。