FTP協(xié)議有兩種工作方式:PORT(主動(dòng))方式和PASV(被動(dòng))方式。連接是采用哪種模式是由客戶端采用哪種方式連接服務(wù)端來(lái)決定的。 目前,我們使用較為廣泛的是PASV(被動(dòng)為出于對(duì)服務(wù)器安全方面的考慮,我們一般會(huì)更改默認(rèn)的FTP21端口,并提供幾個(gè)被動(dòng)模式端口用于FTP傳輸。
ftp的主動(dòng)模式
主動(dòng)模式的工作原理:
- 客戶端發(fā)起請(qǐng)求,從非特殊端口(N>=1024)連接服務(wù)端的21號(hào)端口。
- 客戶端開(kāi)始監(jiān)聽(tīng)N+1端口,并發(fā)送PORT命令告知服務(wù)端。
- 服務(wù)器會(huì)數(shù)據(jù)端口20連接到客戶端在第二步中監(jiān)控的N+1端口。
ftp的被動(dòng)模式
被動(dòng)模式的工作原理:
- 客戶端發(fā)起請(qǐng)求時(shí),會(huì)打開(kāi)兩個(gè)非特殊端口(N>=1024,N+1)。
- 第一個(gè)端口N連接服務(wù)端的21端口,發(fā)送PAST命令,這樣服務(wù)端會(huì)開(kāi)啟一個(gè)非特殊端口(P>=1024)。
- 服務(wù)端發(fā)送POST命令給客戶端,客戶端會(huì)從N+1端口去連接服務(wù)端的P端口。